暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

性能优化之等待事件control file parallel write的解决方法

Oracle微学堂 2017-11-17
1358
class
control file parallel write

1.control file parallel等待事件往往是高日志切换的症状。


2.带有该等待事件的会话表明它已经执行了控制文件事务,例如:日志切换、添加或删除数据文件的操作、一些LOB操作。


3.CKPT进程按每3秒钟一次将位于重做日志中的检查点写入控制文件,ORACLE在数据库恢复操作中使用该信息。


4.ARCH后台进程更新控制文件有关归档日志相关的信息。


5.LGWR后台进程在每次日志切换产生时更新控制文件。


6.显示执行控制文件事务的会话:

SELECT a.sid,

 decode(a.TYPE,  'BACKGROUND',
   'BACKGROUND-' ||substr(a.program, instr(a.program, '(', 1, 1)),
   'FOREGROUND') TYPE, b.time_waited,
 round(b.time_waited b.total_waits, 4) average_wait,
 round((SYSDATE - a.logon_time) * 24) hours_connected
FROM v$session_event b, v$session a
WHERE a.sid = b.sid
AND b.event = 'control file parallel write'
ORDER BY TYPE, time_waited

注一:如果LGWR进程显示在该事件上有较高的TIME_WAITED,则意味着存在过多的日志切换,可通过v$log视图查看重做日志的大小,对于进入数据库的事务来说,日志可能过小。

使用下面查询检查日志多长时间切换一次:

SELECT s.thread#, to_char(s.first_time, 'YYYY-MM-DD') creation_date, to_char(s.first_time, 'HH24:MI') TIME,
 s.sequence#,
 s.first_change# lowest_scn_in_log,
 s.next_change# highest_scn_in_log,
 s.recid controlfile_record_id,
 s.stamp controlfile_record_stamp
FROM v$log_history s
ORDER BY s.first_time

注二:如果前台进程在control file parallel write事件上有较高的TIME_WAITED,检查应用是否正在改变为NOLOGGING LOB。当NOLOGGING操作改变数据文件时,为了RMAN,它位于控制文件中的不可恢复的SCN必须被更新。


7.当使用NOLOGGING选项执行DML操作时,ORACLE在控制文件中记录不可恢复的SCN(系统提交号)。


8.RMAN在控制文件中记录备份与恢复信息。


9.该事件的处理方式:对控制文件的写入会话被保持在CF队列中,依次进行控制文件写操作。


10.如果对该等待事件的等待时间很显著,则说明大量对控制文件的写入操作或写入控制文件缓慢。


11.参数说明:

事件号:132

事件名称:control file parallel write

参数一:正在写入的控制文件号码。

参数二:写入控制文件的块总数。

参数三:I/O请求的号码。


12.等待时间:无超时


扫描二维码关注我的微学堂

搜索刘老师微信号:Rman-2014,备注“Oracle学习与咨询”,即可添加好友;或者扫描下面二维码,关注我的“微学堂”公众号,了解最新OCP认证动态、题库及答案解析、培训机构及讲师介绍、课堂授课内容等。每天还有一篇技术文章发布哦!



最后修改时间:2019-12-20 16:40:13
文章转载自Oracle微学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论