【轉】Oracle的log_buffer該設為多大?

ljm0211發表於2012-06-20
各地現場的log_buffer都不一樣,有的現場設定為200M,有的現場設定500K。到底應該設多大呢?

   log_buffer是Redo log的buffer。
   因此在這裡必須要了解Redo Log的觸發事件(LGWR)
       1、當redolog buffer的容量達到1/3
        2、設定的寫redolog時間間隔到達,一般為3秒鐘。
        3、redolog buffer中重做日誌容量到達1M
        4、在DBWn將緩衝區中的資料寫入到資料檔案之前
        5、每一次commit--提交事務。
   上面的結論可以換句話說
       1、log_buffer中的內容滿1/3,快取重新整理一次。
       2、最長間隔3秒鐘,快取重新整理一次
       3、log_buffer中的資料到達1M,快取重新整理一次。
       4、每次提交一個“事務”,快取重新整理一次

   由此可以得出log_buffer一般在3-5M就足夠了。超過3-5M,僅僅是浪費記憶體;當然太小了,也可能影響效能。在記憶體不太昂貴的今天,且如果你有大量“大事務”,log_buffer就設定為5M吧。

   1、如何檢視log_buffer大小?
       SQL>show parameter log_buffer
   2、如何設定log_buffer?
       log_buffer是不能線上調整的。最簡單的方法就是在init.ora檔案中新增一句 "log_buffer=5000000"。然後用這個init.ora重啟Oracle(SQL>startuppfile=init.ora)

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

相關文章