暂无图片
oracle rac出现control file sequential read等待事件的原因
我来答
分享
nirvana
2022-09-02
oracle rac出现control file sequential read等待事件的原因

oracle 11.1.0.6 的rac环境,配有ogg 到单机,但ogg并未启动。查询v$session,发现有很多等待事件control file sequential read,持续时间均为几秒钟,但很频繁,同时伴有enq: MN - contention等待事件。

查询出引起此事件的语句均为create global temporary table TMPLOGMINER127275726870657136 on commit preserve rows as SELECT scn, XIDUSN , XIDSLT ,XIDSQN, OPERATION_CODE, TABLE_NAME,SQL_REDO, SEG_OWNER , CSF,TIMESTAMP,ROW_ID FROM v$logmnr_contents WHERE(())

因此我想知道,

1.rac在什么情况下会出现control file sequential read?

2.什么情况下会基于v$logmnr_contents这个表创建全局临时表,创建这个全局临时表的目的是什么?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
布衣
暂无图片

问题1:

control file sequence read :控制文件顺序读
当数据库需要读取控制文件上的信息时,会出现这个等待事件,因为控制文件的信息是顺序写的,所以读取的时候也是顺序的,因此称为控制文件顺序读,它经常发生在以下情况:
1、备份控制文件
2、RAC环境下不同实例之间控制文件的信息共享
3、读取控制文件的文件头信息
4、读取控制文件其他信息
读取控制文件的时候遇到I/O等待就会出现这个等待事件,例如备份控制文件的时候、读取BLOCK头部都会引起这个等待事件,等待的时间就是消耗在读取控制文件上的时间。

如果这个等待事件等待的时间比较长,则需要检查控制文件所在的磁盘是否很繁忙,如果是,将控制文件移动到负载比较低,速度比较快的磁盘上去。如果系统支持异步I/O,则启用异步I/O。对于并行服务器来说,如果这种等待比较多,会造成整个数据库性能下降,因为并行服务器之间的一些同步是通过控制文件来实现的。

问题2:

视图 v$logmnr_contents 中的分析结果仅在我们运行过程’dbms_logmrn.start_logmnr’这个会话的生命期中存在。这是因为所有的 LogMiner 存储都在PGA 内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。最后, 使用过程 DBMS_LOGMNR.END_LOGMNR 终止日志分析事务,此时 PGA 内存区域被清除,分析结果也随之不再存在。

image.png

所以你的库是不是再做日志分析,(11.1.0.6)这个版本我没用过。这只是猜测。

希望对你的思路有所帮助,如有帮助请采纳。

暂无图片 评论
暂无图片 有用 0
暂无图片
刘贵宾

该等待事件的出现并不表明数据库有问题。一个健康的系统,物理读时间应是除空闲等待时间外的最大等待事件。而该事件在rac中尤其明显,在一个正常的rac集群中,该事件应该排在top10中,因为实例间共享同一控制文件,对控制文件读取是很频繁的,如果被其他等待事件挤出top10,那就得查看是哪些等待事件了。

出现该等待事件的情况:

  1. 备份控制文件
  2. RAC环境下不同实例之间控制文件的信息共享
  3. 读取控制文件的其他信息
  4. 读取控制文件的文件头信息
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏