溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

log buffer日志緩沖區(qū)問題怎么解決

發(fā)布時間:2022-01-11 17:11:51 來源:億速云 閱讀:134 作者:iii 欄目:建站服務(wù)器

這篇“l(fā)og buffer日志緩沖區(qū)問題怎么解決”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“l(fā)og buffer日志緩沖區(qū)問題怎么解決”文章吧。

log buffer(日志緩沖區(qū))

change vector is a modification applied to something; executing DML statements

generates change vectors applied to data.

日志緩沖區(qū)是一個很小的,短期集結(jié)(change vectors)改變量的地方。

日志文件用于確保數(shù)據(jù)庫中的數(shù)據(jù)不會丟失。應(yīng)用于數(shù)據(jù)塊的(change vectors)將會寫

入日志文件中。會話產(chǎn)生日志信息到日志緩沖區(qū),日志信息是通過后臺進程LGWR寫入日

志文件的。因為重做日志信息幾乎實時的寫入重做日志文件中,所以它比一般的oracle

內(nèi)存結(jié)構(gòu)組件小。所以該緩沖區(qū)不需要很大,接受推薦的大小就可以了(基于服務(wù)器

CPU個數(shù)的推薦值)。但是不能設(shè)置重做日志緩沖區(qū)小于默認(rèn)的值,如果這樣oracle會自

動的設(shè)置為默認(rèn)的值。調(diào)優(yōu)的時候也是從默認(rèn)值開始調(diào)整。日志緩沖區(qū)的大小在系統(tǒng)運

行期間是不可調(diào)整的,除非重啟系統(tǒng)。可能在DML操作的高峰,日志信息產(chǎn)生的速度快于

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.

查看日志緩沖區(qū)大小

SQL> show parameter log_buffer;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

log_buffer                           integer     5603328

注:觸發(fā)LGWR寫日志緩沖區(qū)的條件是:

一個會話執(zhí)行了commit。

日志信息達到了日志緩沖區(qū)大小的三分之一,或者日志信息達到1mb。

DBWR打算寫數(shù)據(jù)緩沖區(qū)中的臟數(shù)據(jù)(沒有commit的數(shù)據(jù))。

SQL> alter system set log_buffer=5m scope=spfile;

alter system set log_buffer=5m scope=spfile

ORA-02095: 無法修改指定的初始化參數(shù)

log_buffer是不能動態(tài)調(diào)整的。最簡單的方法就是在init.ora文件中添加一句 "log_buffer=value"。 

然后用這個init.ora重啟Oracle(SQL>startup pfile=init.ora)

以上就是關(guān)于“l(fā)og buffer日志緩沖區(qū)問題怎么解決”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI