log file switch

今天接到一資料庫運行非常緩慢﹐登陸到主機查看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博客 ” ,链接:http://blog.itpub.net/13790829/viewspace-325145/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13790829/viewspace-325145/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值