千家信息网

频繁产生归档日志处理报告

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,频繁产生归档日志处理报告2017年10月27日,客户数据库突然间频繁产生大量归档日志,导致数据库hang住,影响现场生产!由于oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁。
千家信息网最后更新 2025年02月04日频繁产生归档日志处理报告

频繁产生归档日志处理报告

20171027日,客户数据库突然间频繁产生大量归档日志,导致数据库hang住,影响现场生产!由于oracle归档日志一般由dml语句产生,所以增加太快应该是dml太频繁。

首先查询以下每小时连接日志切换频率的情况:

select to_char(first_time,'yyyy-mm-ddhh34') first_time,count(*)

from v$log_history

WHERE TO_CHAR(FIRST_TIME, 'yyyymmdd')

group by to_char(first_time,'yyyy-mm-ddhh34') order by FIRST_TIME desc


可以看到数据库每个小时切换的联机日志的次数达650多次,每个连接日志大小是50M,发生切换时会将联机日志写入归档日志,所以归档日志增加很快。一小时产生的归档日志高达30G多。

首先通过AWR报告可以看到数据库的主要负载是产生大量的redo日志:

关键是要找到相应的sql语句,来判断问题发生的情况。所以我们使用logminer工具来分析相应的归档日志,来找到相应的sql语句:

查看磁盘上的归档日志文件的路径和名称:

路径查看语句:show parameter db_recovery

在相应的目录下找到归档日志:

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=> '+recoverydata/orcl/adchivelog/2017_10_27/thread_2_seq_148046.384.958475205',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(*) fromv$logmnr_contents group by seg_owner;

select count(1),substr(sql_redo,1,30) fromv$logmnr_contents group by substr(sql_redo,1,30) order by count(1) desc ;


通过上图可以看到数据库中大量的回滚操作,回滚一般是由于数据库DML语句失败所致,所以再去查看trace日志,发现数据库存在大量的报错信息!如下图所示:

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 128 in tablespace MESDB_BASE_DATA01

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 1024 in tablespace MESDB_BASE_DATA01

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 128 in tablespace MESDB_BASE_DATA01

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 1024 in tablespace MESDB_BASE_DATA01

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 128 in tablespace MESDB_BASE_DATA01

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 1024 in tablespace MESDB_BASE_DATA01

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 128 in tablespace MESDB_BASE_DATA01

ORA-1654: unable to extend indexMES.PK_BBM_TRACE_INFO by 1024 in tablespace MESDB_BASE_DATA01

报错已经很清楚的说明,是由于在表空间中无法扩大索引所致!查询相应的表空间,发现表空间只有2G大小,增加表空间到30G,并设置表空间自动增长,最大无限大!



更改完后再次查询联机日志切换频率如下所示:


此时再查询归档日志的增加大小发现已经不增加了。



日志 数据 数据库 空间 语句 分析 查询 文件 切换 频繁 大小 小时 脚本 报告 最大 字典 情况 路径 频率 处理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 tbc怀旧服奥金斧服务器公会排行 安徽大数据软件开发报价 面向对象嵌入式软件开发 南威互联网科技集团执行总裁 云原神服务器连接中断 工控机嵌入式软件开发 上海市服务器机房精密空调系统 青岛地区app软件开发公司 不属于软件开发工具是什么 静安区常规软件开发参考价格 中国台湾麻将软件开发编程 国产4路和8路服务器 恒大高科技互联网 街道小学网络安全教育活动 浙江多功能软件开发单价 河北软件开发招标报价 刷脸支付软件开发包含什么 网络安全学生演讲稿 无悔华夏哪个服务器好 白云区正规网络技术开发服务价格 包装识别软件开发 面向对象嵌入式软件开发 中国电信网络安全责任人 mysql 新增数据库 数据库设计器有哪些 echo服务器 的应用 渠成网络技术服务有限公司 服务器怎么用不了合成表 为什么进入游戏看不到服务器 app订制软件开发如何收费
0