[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; ...
随机推荐
- Photoshop Cs5 64位系统破解版下载(内含破解方法)
Photoshop Cs5 64位系统是电影.视频和多媒体领域的专业人士, 使用 3D 和动画的图形和 Web 设计人员, 以及工程和科学领域的专业人士的理想选择,下面提供Photoshop Cs5 ...
- Unity AssetBundles and Resources指引 (二) Resources文件夹
本文内容主要翻译自下面这篇文章 https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and- ...
- JFrame 实现全屏透明背景
JFrame f=new JFrame(); f.setUndecorated(true); f.setBackground(new Color(0,0,0,0)); To ...
- flex的Cairngorm框架
由于要写flex的项目,接触了一段时间的Cairngorm框架,初步认识它是flex的一个mvc结构的框架实现了页面,调用相应方法的控制,和后台交互之间的三层之间的联系.Cairngorm框架主要包括 ...
- fastCGI (二)各方优劣
1. 克服 CGI 的瓶颈 1.1 令人头痛的效率问题 拜 CGI 之赐,网站不再只有固定不变的图形和文字,藉由程序动态产生的网页可以让网站好象『活』了起来.小从简单的网页计数器,留言版,大至处理众多 ...
- 普通session vs MemcachedSession vs RedisSession
一.普通session(数据存储在内存中) #!/usr/bin/env python # -*- coding:utf-8 -*- from hashlib import sha1 import o ...
- 洛谷P1204 [USACO1.2]挤牛奶Milking Cows
P1204 [USACO1.2]挤牛奶Milking Cows 474通过 1.4K提交 题目提供者该用户不存在 标签USACO 难度普及- 提交 讨论 题解 最新讨论 请各位帮忙看下程序 错误 ...
- 揭秘TPM安全芯片技术及加密应用
揭秘TPM安全芯片技术及加密应用 首发:http://safe.it168.com/a2012/0912/1396/000001396884.shtml 从2003年开始,重要数据丢失已经成为严重的信 ...
- 【drp 11】使用Junit简单测试接口方法
一.Junit简介 JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUn ...
- 百度编辑器Ueditor自动换行,添加<p>的问题
百度编辑器Ueditor其实蛮好用的,后来使用了一段时间发现,每次打开后又保存,发现都会往内容的前后都增加一个空白的<p></p>.刚开始以后是百度编辑器的问题,找了很长时间也 ...