[terry笔记]ArchiveLog归档日志激增解决思路
归档日志激增的危害是巨大的,最严重的结果就是数据库无法正常工作,导致整个系统无法正常工作,其次就算数据库可以正常工作,但激增的归档会对磁盘产生大量消耗,导致性能下降。
归档日志激增一般是因为异常的dml导致,异常的dml使数据被频繁的增删改,以至redo日志频繁切换,再至归档日志激增,最终磁盘爆满,数据库无法正常工作。
1.首先查询每天的redo日志切换频率,定位异常的时间点,并且还可以粗滤计算出日志量(就算无法解决程序问题,也可以暂时扩大磁盘容量,先让数据库正常归档工作,甚至切换到无归档模式)。
- select to_char(first_time,'mmdd hh24'),count(*) from v$log_history group by to_char(first_time,'mmdd hh24') order by 1;
2.查询产生日志最多的会话,基本可以确定是什么方向的应用
- col program for a30
- col machine for a30
- select a.sid,a.logon_time,a.username,a.program,a.machine,a.status,round(b.value/1024/1024) mb from v$session a,(select * from (select * from v$sesstat where statistic# = (select statistic# from v$statname where name='redo size') order by value desc) where rownum<=100) b where a.sid=b.sid;
3.截取归档日志激增时候的AWR报告,在sql统计中仔细排查dml类型sql,并查询嫌疑的sql的执行计划、统计信息等(@?/rdbms/admin/awrsqrpi),还可以找出嫌疑sql所对应的表信息是否有异常。还可以对应之前正常时候其sql的统计信息进行对比。
4.查看产生大量归档日志的会话所打开的游标(所执行的sql),这样更加确定了异常sql和异常会话的关系。
- select sql_id,sql_text from v$open_cursor where sid=xxx;
5.查看异常表的信息:
- select avg_row_len from dba_tables where table_name=upper('table_name'); /*表的长度(字节)*/
- select index_name from dba_indexes where table_name=upper('table_name'); /*其拥有的索引,索引越多,归档越多*/
6.挖掘归档内容:
- exec dbms_logmnr.ADD_LOGFILE('/datavg/archive/1_11111.dbf');
- exec DBMS_LOGMNR.START_LOGMNR;
- select substr(sql_redo,1,30),count(*) from v$logmnr_contents group by substr(sql_redo,1,30) ;
通过以上的步骤,异常的sql、异常的会话、异常的表,和实施人员或者开发人员共同探讨一下,基本可以确定是什么问题导致,然后修正即可。
以上步骤算是简单记录下问题的追溯过程,最后还需要具体问题具体分析。
[terry笔记]ArchiveLog归档日志激增解决思路的更多相关文章
- rman删除归档日志无法释放
背景 当Oracle 归档日志满了后,将无法正常登入oracle,需要删除一部分归档日志才能正常登入ORACLE.最近遇到一个问题,一套Oracle 11g数据库使用RMAN删除了归档日志,但是仍然无 ...
- oracle从备份归档日志的方法集中回收
oracle从备份集中抓出归档日志方法 在大连医院遇到这个问题,数据库为归档状态,但归档完成后rman通过crontab自己主动备走归档日志并删除存在系统上的归档日志文件.在RealSync程序停止一 ...
- 解决oracle归档日志写满了(ORA-00257)的问题
解决ORA-00257: archiver error. Connect internal only, until freed 此问题属于归档日志满了. 解决办法: SQL> select * ...
- DG日志不应用,GAP,主备切换解决思路与办法
环境ORACLE 10G OS WINDOWS 对于DG故障解决思路,DG日志切换不进行应用,DG出现GAP解决方法,DG主备库切换, 当DG出现故障时,第一时间检测alert日志,服务器OS日志,网 ...
- ORA-00257归档日志写满的解决方法
背景: 在前一篇博客中我们提到了如何启动或关闭oracle的归档(ARCHIVELOG)模式,在我成功设定数据库为归档模式以后, 第二天再次尝试连接数据库,报错:ORA-00257.在网上找到了一圈资 ...
- oracle归档日志写满错误解决方法
最近一年,手头上负责的项目要部署到很多个地方,由于项目组里没有人对oracle比较熟悉,只能给自己增加一个DBA的角色了.由于短时间内要部署很多单位,备份策略没有设置好,结果过了一个月,用户报告程序开 ...
- delete archivelog all 无法彻底删除归档日志?
最近在因归档日志暴增,使用delete archivelog all貌似无法清除所有的归档日志,到底是什么原因呢? 1.演示环境 SQL> select * from v$version whe ...
- Oracle Logminer 分析重做日志RedoLog和归档日志ArchiveLog
在实际开发过程中,有时我们很有可能需要某个表的操作痕迹,或通过记录的SQL语句进行有目的性的数据恢复(此时POINT-IN-TIME恢复已经满足不了更细的粒度).或仅仅是查看: 据说Oracle8i之 ...
- 【Oracle】开、关、删归档日志(archivelog)
归档日志:当redo日志发生切换时,归档进程(ARCn)会把redo日志自动归档,产生归档日志. 1.启动归档模式 –确定数据库为非归档模式 SYS@LGR> archive log list; ...
随机推荐
- 项目积累——Strus、Hibernate
在Struts-config.xml中对ActionForm Bean的生命周期用scope进行定义,可用的选项有:pageContext(缺省).request(常用).session.applic ...
- JavaScript对象的创建之工厂方法
通过工厂的方式来创建Person对象,在createPerson中创建一个对象,然后为这个对象设置相应的属性和方法,之后返回这个对象. function createPerson(name, age) ...
- react与jQuery对比,有空的时候再翻译一下
参考资料:http://reactfordesigners.com/labs/reactjs-introduction-for-people-who-know-just-enough-jquery-t ...
- cocos2dx lua 绑定之二:手动绑定自定义类中的函数
cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一 ...
- tomcat下部署可以访问的文件夹
项目名#文件夹名#文件夹名.xml <Context docBase="D:\文件夹名\r文件夹名"/> 例如: test#zhang#test1.xml <Co ...
- 安装office2013时弹出microsoft setup bootstrapper已停止工作,接着就不能安装了
只是说一下自己的解决方法: 我的原因是注册表没有删除改进. 1.输入regedit 2.找到HKEY_LOCAL_MACHINE\software\microsoft\windows\CurrentV ...
- com学习 2015-10-16
Com对象类似于C++类对象的概念, interface IX { virtral void fx()=0: } class CA:IX { virtual fx(){ printf("he ...
- 用Ossim管理IT资产(视频)
用Ossim管理IT资产 在Ossim中集成了Ocs Server,OCS用于帮助网络或系统管理员来跟踪网络中计算机配置与软件安装情况的应用程序.收集到硬件和系统信息,OCS Inventory 也可 ...
- 图解CISCO 3550忘记密码解决方法
图解CISCO3550忘记密码解决方法 Cisco网络设备密码忘记怎么初始出厂默认值?这时网友常常会提出的问题,怎么解决,有人说啦,去百度去谷歌一下不就行啦,然而这对初学者任是个挑战,虽然步骤只有简单 ...
- HTML5-新API选择器
新的选择器document.querySelector("selector");selector:根据CSS选择器返回第一个匹配到的元素,如果没有匹配到,则返回null;支持: C ...