ITPub博客

首页 > Linux操作系统 > Linux操作系统 > log file switch

log file switch

原创 Linux操作系统 作者:benn_wpj 时间:2008-05-31 16:15:25 0 删除 编辑

今天接到一資料庫運行非常緩慢﹐登陸到主機查看alert log,發現有"Thread 1 cannot allocate new log, sequence 69271"諸多錯誤提示﹐管理員告知是standby 架構﹐首先懷疑是standby服務有問題﹐先取消遠程歸檔路徑﹐做日志切換﹐發現報錯"checkpoint not complete"﹐再進一步追蹤alert log﹐發現之前也出現了類似錯誤﹐這是發現日志切換比平時頻繁很多﹐查看日志有回退動作﹐其會寫較多的redo﹐懷疑日志切換頻繁導致archive無法正常完成﹐第二步驟﹐重啟數據庫為noarchivelog模式﹐發現問題依然。第三步驟﹐增大logfile從200M到400M﹐調整mttr從300至3600﹐問題依舊。第四步驟﹐增大dbwr進程數由一改為二﹐啟用archivelog模式﹐數據庫ok。

我想問題的原因在于﹕回退事務造成redo條目寫的過于頻繁﹐在發生checkpoing時﹐上一次checkpoing尚沒有完成﹐dbwr寫不過來﹐從wait event(log file switch (checkpoing incomplete))即可得出。

Log File Switch-日志文件切换

当这个等待出现时,表示所有的提交(commit)的请求都需要等待"日志文件切换"的完成。

Log file Switch 主要包含两个子事件:

log file switch (archiving needed)
log file switch (checkpoint incomplete)

log file switch (archiving needed)

这个等待事件出现时通常是因为日志组循环写满以后,第一个日志归档尚未完成,出现该等待。出现该等待,可能表示io 存在问题。解决办法:

可以考虑增大日志文件和增加日志组
移动归档文件到快速磁盘
调整log_archive_max_processes .

log file switch (checkpoint incomplete)-日志切换(检查点未完成)

当你的日志组都写完以后,LGWR 试图写第一个log file,如果这时数据库没有完成写出记录在第一个log file 中的dirty 块时(例如第一个检查点未完成),该等待事件出现。

该等待事件通常表示你的DBWR 写出速度太慢或者IO 存在问题。

为解决该问题,你可能需要考虑增加额外的DBWR 或者增加你的日志组或日志文件大小。

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

上一篇: reset incarnation
下一篇: 常見的等待事件
请登录后发表评论 登录
全部评论

注册时间:2008-04-26

  • 博文量
    57
  • 访问量
    137425