OS:redhat as 4    ORACLE:9207

我们的生产库正常情况下一天产生400-500个日志.每个日志大小20M.

最近发现日志量大量增加.更加奇怪的是白班(07:30--19:30)的日志是正常的.晚班(19:30--07:30)的日志就大量增加了(1小时就能产生200个日志).第一反应就是怀疑有人在晚班做了大量的DML操作.所以就去问开发人员有没有做什么动作.一致都说没有什么动作.也查看了下JOB,没有发现有JOB在晚班跑.

没办法.只能利用LOGMNR分析日志了.

但是问题又来了.发现之前还没有设置utl_file_dir这个参数呢.此参数为静态参数.生产库是没办法停机重启的.所以就想到了将日志移至测试库(与生产库环境是相同的)进行分析.以下就是在测试环境下的分析过程.

1.创建正式库数据字典文件到归档日志中,并找出是哪个日志,将它拷贝至测试库.

execute DBMS_LOGMNR_D.BUILD(options=>DBMS_LOGMNR_D.store_in_redo_logs);

SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES';

SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_END='YES';

我这里得出的归档日志是1_268157.dbf.

2.拷贝晚班大量产生的日志(1_267220.dbf--1_267225.dbf)6个日志来分析.

3.在测试库上创建列表(先将以上包含数据字典的日志添加进来):

exec dbms_logmnr.add_logfile('/home/oracle/logminer/1_268157.dbf',dbms_logmnr.new);

4.添加另外的日志文件到列表:

exec dbms_logmnr.add_logfile('/home/oracle/logminer/1_267220.dbf',dbms_logmnr.addfile);

exec dbms_logmnr.add_logfile('/home/oracle/logminer/1_267221.dbf',dbms_logmnr.addfile);

exec dbms_logmnr.add_logfile('/home/oracle/logminer/1_267222.dbf',dbms_logmnr.addfile);

exec dbms_logmnr.add_logfile('/home/oracle/logminer/1_267223.dbf',dbms_logmnr.addfile);

exec dbms_logmnr.add_logfile('/home/oracle/logminer/1_267224.dbf',dbms_logmnr.addfile);

exec dbms_logmnr.add_logfile('/home/oracle/logminer/1_267225.dbf',dbms_logmnr.addfile);

5.开始分析日志文件:

EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_REDO_LOGS);

6.将分析结果转储在表里:

create table logmnr_090415 tablespace users as select * from v$logmnr_contents;

7.结束分析:

exec dbms_logmnr.end_logmnr;

8.日志都分析出来了.那就看看产生这6个日志的2分钟之间.都有人做了什么吧.

select sql_redo,count(*) from logmnr_090415  group by sql_redo order by count(*) desc;

结果吓了一跳.平均1秒就会更新kanbantable 10000笔记录.

那为什么白班的时候没有这种现象呢.带着这个问题及logmnr_090415  中sql_redo的语句去让开发人员分析.很快就得出结论了.原来是有人通过一个触发器对kanbantable这张表做了错误的insert动作.造成了kanbantable这张表中的B班数据大量重复.从而造成了数据的大量重复UPDATE.

问题找到了.原来是表的数据有大量重复.解决方法就简单了.删除这些重复数据就可以了.

oracle 归档日志激增,一次归档日志激增的分析.相关推荐

  1. Oracle Dataguard中备库中归档日志不同步

    环境:RAC+单机 Dataguard 问题:启动备库到ADG模式时,发现后台归档日志并不同步 1.在备库中发现日志的归档日志不同步,内容如下: MRP0: Background Media Reco ...

  2. 一 如何检查oracle的归档日志及空间占用率,清除归档日志、Oracle归档日志使用情况查询、查看oracle数据库一周产生的归档日志

    一 如何解决"归档日志已满问题" 问题描述:所用数据库为 Oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文 ...

  3. rman打开oracle归档日志,Oracle RAC中使用RMAN管理归档日志

    RMAN归档配置的两种方案1.在Oracle asm和集群文件系统时的归档方案 对于Oracle RAC来说首选是使用Oracle asm作为reocvery区域.可选择的你也可以使用集群文件系统的归 ...

  4. 查看oracle归档大小,ORACLE RAC按实例统计每天归档日志大小

    ORACLE RAC按实例统计每天归档日志大小: ? SELECT ? TRUNC (COMPLETION_TIME) ARCHIVED_DATE, ? ? ? ? ? ?THREAD#, ? ? ? ...

  5. 在Oracle中,如何定时删除归档日志文件?

    在Oracle中,如何定时删除归档日志文件?    对于单实例的数据库可以使用如下的脚本: 1.在Oracle用户下,创建归档日志删除文件del_OCPLHR1_arch.sh 文件位置:/home/ ...

  6. PostgreSQL归档配置及自动清理归档日志

    PostgreSQL归档配置及自动清理归档日志 在生产环境中,数据库都需要开启归档模式,那么PG该如何开始归档呢? PG中归档配置涉及几个参数: # - Archiving - #是否开启归档 #ar ...

  7. oracle 创建模式语句,ORACLE基本使用SQL语句以及归档模式的操作

    --1.查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tabl ...

  8. oracle 安装时的日志文件,oracle10g安装的日志文件 Oracle10g怎么查看操作日志

    如何查看oracle 10g 的操作日志 归档模式下怎么查询oracle 10g归档日志存放的路径? SQL> select name from v$archived_log; NAME /u0 ...

  9. 我的Oracle 9i学习日志(11)--重做日志文件及练习

    一.重做日志文件特征:   记录对数据所做的所有更改:提供恢复机制:可以划分成组:至少需要两个组(每个组至少一个成员). 二.结构 联机重做日志文件组: • 一组相同的联机重做日志文件副本称作联机重做 ...

最新文章

  1. 开发人员最喜爱的十大免费的Visual Studio插件
  2. IDEA 快捷键 (长期更新)
  3. 妙用Windows安全模式执行杀毒
  4. pass4side IBM 000-M15
  5. 成功解决python\ops\seq2seq.py TypeError: ms_error() got an unexpected keyword argument 'labels'
  6. c语言中0到9的as编码c2,(全国计算机等级考试二级笔试样卷VsualBasc语言程序设计.doc...
  7. 【IT笔试面试题整理】给定一个数组a[N]构造数组b [N]
  8. java连接zookeeper_java 学习笔记(四) java连接ZooKeeper
  9. C Tricks(十九)—— 求以任意数为底的对数
  10. 百万 Go TCP 连接的思考: epoll方式减少资源占用
  11. voip和rtc_WebRTC与VoIP的对比
  12. 挑战程序设计竞赛2:算法与数据结构(电子书与代码)
  13. Leetcode五大常用算法
  14. Mybatis常用的OGNL表达式
  15. 下载新版火狐后无法同步书签_火狐浏览器书签同步设置教程
  16. Centos 7 WPS简单安装方法
  17. 金山文字应用技巧两则(转)
  18. html当前页面的脚本发生错误,如何解决“当前页面脚本发生错误”的问题
  19. 如何系统性地学习分布式系统
  20. 打印显示服务器脱机win10,win10网络打印机脱机怎么办?

热门文章

  1. mysql因计算机丢失vcr_Missvcr100.dll丢失的原因和快速修复解决方案
  2. 查看mysql单个表大小限制_查看单个mysql数据库中各个表的大小
  3. Cookie、Session
  4. 一些常用的简单的Lambda写法
  5. linux dialog详解(图形化shell)
  6. 循环队列 - 顺序存储结构
  7. MySQL5.6基于GTID同步复制,与如何实现MySQL负载均衡、读写分离。
  8. pymol安装教程linux,PyMOL | Pymol绘图教程(一)
  9. 雅虎又泄露 3200 万账户数据,因cookie伪造攻击
  10. java socket编程 聊天_基于java的socket简单聊天编程