您好,登錄后才能下訂單哦!
這篇“log buffer日志緩沖區問題怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“log buffer日志緩沖區問題怎么解決”文章吧。
log buffer(日志緩沖區)
change vector is a modification applied to something; executing DML statements
generates change vectors applied to data.
日志緩沖區是一個很小的,短期集結(change vectors)改變量的地方。
日志文件用于確保數據庫中的數據不會丟失。應用于數據塊的(change vectors)將會寫
入日志文件中。會話產生日志信息到日志緩沖區,日志信息是通過后臺進程LGWR寫入日
志文件的。因為重做日志信息幾乎實時的寫入重做日志文件中,所以它比一般的oracle
內存結構組件小。所以該緩沖區不需要很大,接受推薦的大小就可以了(基于服務器的
CPU個數的推薦值)。但是不能設置重做日志緩沖區小于默認的值,如果這樣oracle會自
動的設置為默認的值。調優的時候也是從默認值開始調整。日志緩沖區的大小在系統運
行期間是不可調整的,除非重啟系統。可能在DML操作的高峰,日志信息產生的速度快于
LGWR的速度,這是DML操作會暫停毫秒。DML的操作速度不可能快過LGWR寫重做日志的速度
(The process of flushing the log buffer to disk is one of the ultimate
bottlenecks in the Oracle architecture.)
If redo generation is the limiting factor in a database’s performance, the only
option is to go to RAC. In a RAC database, each instance has its own log buffer,
and its own LGWR. This is the only way to parallelize writing redo data to disk.
The size of the log buffer is static, fixed at instance startup. It cannot be
automatically managed.
查看日志緩沖區大小
SQL> show parameter log_buffer;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_buffer integer 5603328
注:觸發LGWR寫日志緩沖區的條件是:
一個會話執行了commit。
日志信息達到了日志緩沖區大小的三分之一,或者日志信息達到1mb。
DBWR打算寫數據緩沖區中的臟數據(沒有commit的數據)。
SQL> alter system set log_buffer=5m scope=spfile;
alter system set log_buffer=5m scope=spfile
ORA-02095: 無法修改指定的初始化參數
log_buffer是不能動態調整的。最簡單的方法就是在init.ora文件中添加一句 "log_buffer=value"。
然后用這個init.ora重啟Oracle(SQL>startup pfile=init.ora)
以上就是關于“log buffer日志緩沖區問題怎么解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。