【DBA攻坚指南:左右Oracle,右手MySQL-学习总结】
处理log file sync等待事件
首先明确什么是log file sync等待事件
从用户提交会话开始,LGWR进程将redo缓存中的信息写入redo日志文件后,LGWR进程通知用户写操作完成,到用户会话接受到LGWR进程通知为止,这整个过程就是可能出现log file sync等待事件的地方。在LGWR写入日志过程中,还包括了控制文件修改操作,对于RAC节点,可能还存在节点之间的scn同步、节点之间cr块的同步。
引起log file sync等待事件的原因
1、事务提交数量过多,导致LGWR进程的任务变多,任务变多就可能产生资源的竞争,包括cpu、io、内存等的竞争,自然的LGWR速度就变慢,产生了log file sync等待事件。
2、存储io资源紧张,使得LGWR在进行物理写的时候速度变慢。
3、cpu资源紧张,导致LGWR获取不到cpu。
4、对于RAC架构数据库,为了实现不同节点数据一致性,需要将commit SCN同步到其他节点上,有两种同步方式:1)一个节点上的SCN不立即同步到其他节点,可以理解为异步SCN。2)BOC方式,一个节点的SCN需要通过本地实例的LMS进程,将SCN同步到远程实例的LMS进程,等待远程实例的LMS进程通知本地LMS同步完成后,再由本地LMS进程通知LGWR进程所有节点的SCN已经同步完成。这一步骤包含在了LGWR进程写入日志的过程中,如果SCN同步速度较慢,消耗时间较长,就会导致LGWR进程通知用户会话提交完的时间变长,也就是造成了log file sync等待事件。
5、RAC架构数据库,节点1提交事务之后,需要在本地实例上完成LGWR写入日志后,才能由LMS进程将cr块传递到其他节点上。节点2要读取这个block时,需要从有这个block的节点把cr块传递过来,节点2等待节点1传递的cr块的时间较长时,就会发生gc cr block busy。如果节点2在等待节点1传递某个block的过程中,节点2上又有其他的会话需要读取这个block,就会在节点2上发生gc buffer busy acquire。
6、控制文件争用。
7、提交方式
原文地址:https://blog.csdn.net/qianxunsiyue/article/details/143754303
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!