现在的位置: 首页 > 综合 > 正文

为什么不能分配一个新日志checkpoint not complete

2013年12月22日 ⁄ 综合 ⁄ 共 667字 ⁄ 字号 评论关闭

alter.log文件中,警告消息Checkpoint not complete或者Archival required。数据库试图重用一个在线重做日志文件,发现做不到。

如果DBWR还没有完成重做日志所保护数据的检查点(checkpointing),或者ARCH还没有把重做日志文件复制到归档目标,会发生这种情况。
对用户来说,这个时间点DB实际上停止了,它会原地不动。ARCH 或DBWR将得到最大优先级以将redo块刷新输出到磁盘。完成检查点或归档之后,一切又回归正常。
如会话因一个“日志文件切换”、“日志缓冲区空间”、“日志文件切换检查点或归档未完成”等待很长时间,可能遇到这个问题。如日志文件大小不合适,或DBWR和ARCH太慢,会注意到这个问题。
解决问题:
#让DBWR更快一些。对DBWR调优,可启用ASYNC I/O、 使用DBWR I/O从属进程,或者使用多个DBWR进程。看系统产生I/O,查看 是否有磁盘“太热”,相应将数据散布开(适用ARCH)
#增加更多重做日志文件(适用Archival required)。
#重新创建更大日志文件。如重做日志文件使用呈“喷射状”,一段时间内大量生成日志,一段时间平静。
#让检查点发生得更频繁、更连续。设置FAST_START_MTTR_TARGET、LOG_CHECKPOINT_INTERVAL和LOG_CHECKPOINT_TIMEOUT参数。强制DBWR频繁刷新输出脏块。失败恢复时间减少,在线重做日志上应用工作肯定更少,更频繁写磁盘,导致缓冲区缓存不充分发挥作用,影响下一节讨论块清除机制

抱歉!评论已关闭.