oracle 归档日志激增,oracle归档日志增长过快处理方法
oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁 首先查询以下每天的归档产生的情况: SELECT TRUNC(FIRST_TIME) "TIME", SUM(BLOCK_SIZE *
BLOCKS) 1024
oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁
首先查询以下每天的归档产生的情况:
SELECT TRUNC(FIRST_TIME)
"TIME",
SUM(BLOCK_SIZE * BLOCKS) / 1024 / 1024 / 1024 "SIZE(GB)"
FROM V$ARCHIVED_LOG
GROUP BY TRUNC(FIRST_TIME);
从而好判断那个时间段开始归档比较异常
从以下两种方式分析归档日志的情况
方法一:使用logminer
1,使用脚本创建相关的包
@$ORACLE_HOME/rdbms/admin/dbmslm.sql
@$ORACLE_HOME/rdbms/admin/dbmslmd.sql;
第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。
第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。
2.指定要分析的日志文件
exec sys.dbms_logmnr.add_logfile(logfilename =>
'/archivelog/node/1_771348_78836667000.arc',options => dbms_logmnr.new);
3.使用本地的在线数据字典分析归档日志
exec sys.dbms_logmnr.start_logmnr(options =>
sys.dbms_logmnr.dict_from_online_catalog);
4,查询分析出来的归档日志内容,例如统计最大修改量的Schema
select seg_owner,count(*) from v$logmnr_contents group by seg_owner;
select count(1),substr(sql_redo,1,30) from v$logmnr_contents group by substr(sql_redo,1,30)
order by count(1) desc ;
5.增加别的日志文件
exec
sys.dbms_logmnr.add_logfile(logfilename=>'/archivelog/node/1_773333_78836667000.arc');
exec
sys.dbms_logmnr.add_logfile(logfilename=>'/archivelog/node1/1_773334_78836667000.arc');
6.结束分析归档日志
exec sys.dbms_logmnr.end_logmnr;
方法二:使用toad工具查看日志信息
在database 找到logminer
然后把要分析的日志放进去,里面有详细的数据库执行记录,很直观的看到产生归档的语句
查出来语句后,然后给开发一块商量还是否可以降低一些dml语句的执行频率
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)