热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

等待事件之日志等待事件解决办法

我坚持每天看3套RAC的AWR,总结了一下。查找日志等待事件的SQL:9i:select*fromv$event_namewherenamelike%log%;(大概14个左右)10g:selectname,wait_classfromv$event_namewherenamelike%log%;(大概35个左右)11g:selectname,wait_cl

我坚持每天看3套RAC的AWR,总结了一下。 查找日志等待事件的SQL: 9i:select * from v$event_name where name like '%log%';(大概14个左右) 10g: select name,wait_class from v$event_name where name like '%log%';(大概35个左右) 11g: select name,wait_cl

我坚持每天看3套RAC的AWR,总结了一下。

查找日志等待事件的SQL:

9i:select * from v$event_name where name like '%log%';(大概14个左右)
10g: select name,wait_class from v$event_name where name like '%log%';(大概35个左右)
11g: select name,wait_class from v$event_name where name like '%log%'; (大概30个左右)

碰到比较多的是以下几个:

一、Log file switch(archiving needed)

即日志切换时,切换到目标日志组还未完成归档,那肯定要等待嘛。

可能原因:redo,archive分区I/O性能较差、归档写出缓慢、日志组数量设置不合理

解决方法: 1、增加日志组或日志组成员的大小

2、把archive log调整到IO性能较高的磁盘上,比如存储上

3、调整log_archive_max_processes参数

二、Log file switch(checkpoint incomplete)

说明日志切换时,切换到目标日志组时,那个日志组所保护的脏数据还没写入

可能原因:DBWn写出太慢、I/O存在问题

解决方法: 1、增加额外的DBWn

2、增加日志组或日志组成员大小

三、Log File Sync

可能原因:LGWR写出效率低下、commit过于频繁等

解决方法:1、提高LGWR写出效率,使用IO性能较好的磁盘

2、使用批量提交,(实时在线业务谨慎操作)

3、使用nologging/unreoverable选项()

四、log file single write

产生原因:更新日志文件头时产生的等待

五、log file parallel write

产生原因:并行写入多个日志组成员的等待

六、log buffer space

产生原因:数据库产生的日志比LGWR写入的日志速度要快,或日志切换太慢

解决方法:1、增大log buffer

2、磁盘I/O存在瓶颈

备注一下:DB规划是redo分区,arch分区空间所占的硬盘尽量做RAID1

未完待续


推荐阅读
author-avatar
wjb201212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有