关于alert日志文件的几个报错

Thu Feb 21 10:07:31 2013
Thread 1 advanced to log sequence 24077 (LGWR switch)
Current log# 1 seq# 24077 mem# 0: /oradata/wmprod/redo1a.log
Current log# 1 seq# 24077 mem# 1: /oradata/wmprod/redo1b.log
Thread 1 cannot allocate new log, sequence 24078
Checkpoint not complete

[@more@]

原因:DML操作太频繁,导致日志文件切换很频繁,前面的redo log覆盖的脏数据还没有被DBWR进程写完,日志切换就需要等待,Checkpoint will flush dirty block to datafile, 从而触发DBWn书写dirty buffer,等到redo log覆盖的dirty block全部被写入datafile后才能使用redo log(循环使用),如果DBWn写入过慢,LGWR必须等待DBWn完成,则这时会出现“checkpoint not completed!”。 所以当出现checkpoint not competed的时候,还会伴随cannot allocate new log的错误。如果遇到这个问题,可以增加日志组和增大日志文件,当然也可以修改 checkpoint参数使得检查点变频繁一些。在出现这个错误的时候,数据库是短暂hang住的,等待checkpoint的完成。 在hang住的时候,没有日志产生。


Thu Feb 21 10:07:37 2013
Thread 1 advanced to log sequence 24078 (LGWR switch)
Current log# 3 seq# 24078 mem# 0: /oradata/wmprod/redo3a.log
Current log# 3 seq# 24078 mem# 1: /oradata/wmprod/redo3b.log
Thu Feb 21 10:10:42 2013
Thread 1 advanced to log sequence 24079 (LGWR switch)
Current log# 2 seq# 24079 mem# 0: /oradata/wmprod/redo2a.log
Current log# 2 seq# 24079 mem# 1: /oradata/wmprod/redo2b.log
Thu Feb 21 12:49:27 2013
Expanded controlfile section 19 from 3272 to 6544 records
Requested to grow by 3272 records; added 4 blocks of records


原因:由于日志切换,检查点频繁提交,rman备份等操作非常频繁,造成控制文件自动扩展

Thu Feb 21 18:30:02 2013
ALTER SYSTEM ARCHIVE LOG
Thu Feb 21 18:30:02 2013
Thread 1 cannot allocate new log, sequence 24084
Private strand flush not complete

“Private strand flush not complete”的大致意思是说在发生日志切换时(Switch Logfiile),没有将所有的Redo信息写到Redo Log中。有点类似“Checkpoint not Complete”,这是与Oracle系统的内部Redo缓存管理相关。总之,如果“Private Strand Flush Not Complete”不是频繁出现,就当为普通信息好了,其他一切照旧


当排查没有任何数据库异常DML操作后,以上三个问题的解决方法,基本可以用以下方式解决:
1增加DBWR 写的速度 即增加DBWR的进程数
2 增大日志文件
3 增加日志组

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17254424/viewspace-1060261/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17254424/viewspace-1060261/

你可能感兴趣的:(数据库)