control file parallel write
(SYSTEM I/0类)(CKPT专属等待事件)
- control file parallel等待事件往往是高日志切换的症状。
- 带有该等待事件的会话表明它已经执行了控制文件事务,例如:日志切换、添加或删除数据文件的操作、一些LOB操作。
- CKPT进程按每3秒钟一次将位于重做日志中的检查点写入控制文件,ORACLE在数据库恢复操作中使用该信息。
- ARCH后台进程更新控制文件有关归档日志相关的信息。
- LGWR后台进程在每次日志切换产生时更新控制文件。
- 显示执行控制文件事务的会话:
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必须被更新。
- 当使用NOLOGGING选项执行DML操作时,ORACLE在控制文件中记录不可恢复的SCN(系统提交号)。
- RMAN在控制文件中记录备份与恢复信息。
- 该事件的处理方式:对控制文件的写入会话被保持在CF队列中,依次进行控制文件写操作。
- 如果对该等待事件的等待时间很显著,则说明大量对控制文件的写入操作或写入控制文件缓慢。
- 参数说明:
事件号:132
事件名称:control file parallel write
参数一:正在写入的控制文件号码。
参数二:写入控制文件的块总数。
参数三:I/O请求的号码。
- 等待时间:无超时
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/79291/viewspace-910222/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/79291/viewspace-910222/