您的位置:首页 > 其它

Log file switch(checkpoint incomplete)等待事件

2015-08-13 18:06 549 查看
数据库top5 events里Log file switch(checkpoint incomplete)等待事件排在了第一位。

oracle日志切换会产生一个增量检查点,但这个检查点,不同于alter system checkpoint,后者会启动dbwn进程,将内存中的已修改的数据立即写入数据文件。但前者不会,前者只需要保证整个日志组一轮切换后,比如日志组2,切换到3,然后1,在到第二组的时候,必须将“脏”数据写入数据文件(因为如果此时还没有写入数据库,再次由1切换到2的时候,假设此后实例崩溃,就造成数据的丢失)。

检查点的工作职责是通知dbwn写数据,更新某些数据文件头信息,更新控制文件信息。既然是日志切换时检查点未完成。那么基本上就是日志切换了一圈,dbwn进程还没有完成工作。由此可见原因如下

1.日志文件过小

2.日志组过少

3.dbwn进程工作的慢 (oracle11g中db_write_process参数是cpu数/8得来的,一般情况下不去修改此参数)

通过查看 v$log 视图发现日志组切换过于频繁,差不多5s左右。改进方案,采用大的日志文件并增加日志组。



增加日志组

alter database add logfile group 4 '? REDO04.LOG' size 1g;

最终是加了4组1g的日志文件

alter system switch logfile;

alter database drop logfile group 1;

对于要删除的日志组,除了当前组不能删除,还有一种active状态下的文件组不可删除,因为该日志组的信息还没有完成checkpoint。

alter system checkpoint;

在切换日志删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: