Thread 1 cannot allocate new log Private strand flush not complete 警告
CHANGES
切換日誌時,所有 private strand 都必須重新整理到當前日誌,然後才允許繼續切換。
CAUSE
此資訊表示我們在嘗試切換時,尚未完全將所有 redo 資訊寫入到日誌中。它本質上類似於“checkpoint not complete”,不同的是,它僅涉及到正在被寫入日誌的redo。在寫入所有 redo 前,無法切換日誌。
“strand”是 10g 中的新術語,它用於處理 redo 的 latch。
Strands是一種允許程式利用多個 allocation latch 更高效地將 redo 寫入 redo 緩衝區的機制,它與 9i 中出現的 log_parallelism 引數相關。
提出 Strand 的概念是為了確保例項的 redo 生成率達到最佳,並能確保在出現某種 redo 爭用時,可以動態調整 strand 的數量進行補償。
初始分配的 strand 數量取決於 CPU 的數量,最少兩個 strand,其中一個 strand 用於活動的 redo 生成。
對於大型企業系統,redo 生成的量相當大,因此當前臺程式遇到此 redo 爭用(allocated latch 競爭)時,這些 strand 會“被啟用”,這就是動態 strand 的概念開始發揮作用的時候。
shared strand 總是與多個 private strand 共存。
Oracle 10g 的 redo(和 undo)機制有一些重大變化,目的是為了減少爭用。
此機制不再實時記錄 redo,而是先記錄在一個“私有區域”,並在提交時寫到 redo 日誌緩衝區中。
與此相似,undo 可作為“in memory undo”生成併成批應用。這會影響用於管理 redo 的記憶體和分片重新整理此記憶體的可能性。您獲取的資訊與內部 Cache Redo File 管理相關。
... 該資訊是正常的,可以被忽略。
SOLUTION
這些資訊不需要特別關注,除非“cannot allocate new log”資訊和“advanced to log sequence”資訊之間有明顯的時間差。
在某些情況下,增大 db_writer_processes 的值有助於避免生成該資訊。原因:因為 DBWR 的其中一個主要功能是透過寫出髒快取塊來保持緩衝區快取的乾淨。因此,使用多個 db_writer_processes 應當能夠產生更高的吞吐量。
關於更詳細的機制
參考文章
http://blog.csdn.net/tianlesoftware/article/details/6014898
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-1155343/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Thread 1 cannot allocate new log,Checkpoint not completethread
- Thread 1 cannot allocate new logthread
- Oracle10g - Private Strand Flush Not CompleteOracle
- Thread 1 cannot allocate new log, sequence NNN 錯誤thread
- Thread 1 cannot allocate new log 的處理辦法thread
- 【轉】cannot allocate new log
- alert日誌中出現Private Strand Flush Not Complete的處理方法
- 【ASK_ORACLE】檢查點錯誤“Cannot allocate new log”和“Checkpoint not complete”Oracle
- cannot allocate new log 的解決方法
- Manual Log Switching Causing Cannot Allocate New Log in Alert Log_435887.1
- Cannot complete applications logonAPPGo
- fork failed - Cannot allocate memoryAI
- ORA-01623: log is current log for thread - cannot dropthread
- Redis 寫磁碟出錯 Cannot allocate memoryRedis
- redis 寫磁碟出錯Cannot allocate memoryRedis
- npm publish gives “unscoped packages cannot be private”NPMPackage
- Ubuntu Cannot allocate memory 錯誤解決方案Ubuntu
- redis : Can't save in background: fork: Cannot allocate memoryRedis
- innodb_flush_log_at_trx_commit和sync_binlog innodb_flush_methodMIT
- “finally block does not complete normally”的警告解決BloCORM
- innodb_flush_method和innodb_flush_log_at_trx_commitMIT
- VM warning: INFO: OS::commit_memory Cannot allocate memoryMIT
- npm A complete log of this run can be found inNPM
- innodb_flush_log_at_trx_commitMIT
- flush logs時做的操作
- gc cr request 'gcs log flush sync'GC
- redolog threadthread
- a new blog
- new Thread與執行緒建立thread執行緒
- 解決Can not allocate log問題的方法
- new Child();new Child(1);
- Exception in thread "main" java.lang.NullPointerException: Cannot invokeExceptionthreadAIJavaNull
- ORA-00322: log 3 of thread 1 is not current copythread
- ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DESTHive
- mysql sync_binlog和 innodb_flush_log_at_trx_commitMySqlMIT
- sync_binlog和innodb_flush_log_at_trx_commit解析MIT
- Oracle DG 出現 RFS[6]: No standby redo logfiles created for thread 1Oraclethread
- ORA-00392: log 15 of thread 1 is being cleared, operation not allowedthread