oracle归档日志增长过快处理方法

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语句的运行频率


posted @ 2017-08-11 17:44  jzdwajue  阅读(814)  评论(0编辑  收藏  举报