cannot allocate new log 的解決方法

Jujay發表於2011-10-09
Normal 0 false false false EN-US ZH-CN X-NONEalert.log中,有時會看到類似這樣的警告資訊:

Thread 1 cannot allocate new log, sequence #

Checkpoint not complete

Archival required

原因是當做online redo log切換時,

如果發現下一個redo log所保護的資料還未完成checkpoint (Checkpoint not complete),此時資料庫hang住,DBWR將以最大優先順序儘快把資料從緩衝區刷到磁碟;

如果發現下一個redo log所保護的資料還未被歸檔 (Archival required) (資料庫處於archived log模式下),此時資料庫hang住,ARCH將以最大優先順序儘快複製redo log至archive目錄下。

可以看到,當出現這種情況時,時間看實際上停止了,無法響應使用者的請求。這種情況最容易在業務高峰期時出現,如果只是偶然情況,可以暫時忽略,如果出現很頻繁,則可以從以下幾個方面調整:

1. 增加更多redo log檔案

2. 建立更大的redo log檔案

3. 使DBWR更快一些,比如啟用非同步I/O,使用DBWR I/O從屬程式,或者使用多個DBWR程式等等

4. 確保磁碟沒有因為競爭導致I/O變慢

5. 讓checkpoint發生的更頻繁(比如縮小log checkpoint interval等),改方法僅針對Checkpoint not complete狀況。

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26277071/viewspace-708840/,如需轉載,請註明出處,否則將追究法律責任。

相關文章