【等待事件】日志类 等待事件(4.4)--log buffer space(日志缓冲空间)

SELECT * FROM V$EVENT_NAME A WHERE A.NAME LIke 'log buffer space';

 

当数据库产生日志的速度比LGWR的写出速度快,或者当日志切换太慢时,就会发生这种等待。这个等待出现时,通常表明Redo log buffer过小,为解决这个问题,可以考虑增大日志文件的大小或者增加日志缓冲器的大小。

另一个可能的原因是磁盘I/O存在瓶颈,可以考虑使用写入速度更快的磁盘。在允许的条件下设置,可以考虑使用裸设备来存放日志文件,提高写入效率。在一般的系统中,最低的标准是,不要把日志文件和数据文件存放在一起,因为通常日志文件只写不读,分离存放可以获得性能提升,尽量使用RAID10而不是RAID5磁盘来存储日志文件。当log buffer 中没有可用空间来存放新产生的redo log数据时,就会发生log buffer space等待事件。 如果数据库中新产生的redo log的数量大于LGWR 写入到磁盘中的redo log 数量,必须等待LGWR 完成写入磁盘的操作,LGWR必须确保redo log写到磁盘成功之后,才能在redo buffer当中重用这部分信息。

如果数据库中出现大量的log buffer space等待事件,可以考虑如下方法:

(1)  增加redo buffer的大小。

(2)  提升磁盘的I/O性能

 

服务器进程生成重做记录的速度快过LGWR写出重做记录的速度,因而发生等待.日志I/O缓慢是log buffer space等待的主要原因之一.还有一点,如果日志缓存区过小,也容易出现此等待事件.将日志缓存设置的大一些,对于缓解此事件的等待会有帮助.但是,过大的日志缓存,又会降低LGWR刷新缓存的频率,这可能会使提交时必须刷新的缓存数量增多.从而造成log file sync等待.日志缓存具体应该设置为多大,这就多进行测试咯.不同的环境下,不可能有一个标准.为了缓解log buffer space等待事件,将日志缓存调节的比较大之后,可以通过_log_io_size参数来提高LGWR刷新缓存的频率.这样做既可以减少log buffer space的等待,也可以减少log file sync等待.但这样的隐藏参数 应该小心使用.


©著作权归作者所有:来自51CTO博客作者小麦苗DB宝的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【等待事件】日志类 等待事件(4.5)--log file sequential read
  2. elk7.4+filebeat收集日志
  3. 单个logstash文件收集多个filebeat日志
  4. ssh登录日志收集
  5. 【故障处理】队列等待之enq IV - contention案例
  6. 【等待事件】日志类 等待事件(4.1)--log file switch(日志文件切换)
  7. 消除11.2上的db file parallel read
  8. 【故障处理】队列等待之enq: TX - row lock contention
  9. 【故障处理】序列cache值过小导致CPU利用率过高

随机推荐

  1. Android客户端发送邮件
  2. Android(安卓)强制设置横屏或竖屏 设置全
  3. Android Junit使用
  4. 独家教程:用PHP编写Android应用程序
  5. android环境搭建步骤
  6. [PHP]通过 PHP for Android 利用PHP编写A
  7. Android下 使用百度地图sdk
  8. Unity3D研究院之Android全自动打包生成ap
  9. Android分享笔记(5) Android(安卓)与 JS
  10. android 与JS之间的交互