zoukankan      html  css  js  c++  java
  • 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语句的执行频率

    转:http://m.2cto.com/database/201410/346926.html
  • 相关阅读:
    C/C++程序员应聘常见面试题剖析(经典)
    连续几个数组在内存中的存储地址
    虚析构函数
    c++中的函数模版和类模版
    C++多态性(续)
    malloc和new的区别和联系
    深入浅出多线程系列之四:简单的同步 lock
    Silverlight_Rest_WCF系列之六:跨线程
    深入浅出多线程系列之五:一些同步构造(下篇)
    深入浅出多线程系列之五:一些同步构造(上篇)
  • 原文地址:https://www.cnblogs.com/andy6/p/5876683.html
Copyright © 2011-2022 走看看