本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
【資料圖】
日志記錄器緩沖區(qū)大小日志的作用是:主要是用于給工程師們反饋使用信息與記錄便于分析問題(開發(fā)時使用的);由于用戶本身不是經(jīng)常產(chǎn)生上傳日志,所以對用戶無用。
日志記錄緩沖區(qū)是小型的、用于短期存儲將寫入到磁盤上的重做日志的變更向量的臨時區(qū)域。“變更向量”是應用于某些對象的修改,執(zhí)行DML語句會生成應用于數(shù)據(jù)的變更向量。
有了重做日志,數(shù)據(jù)庫就可以確保數(shù)據(jù)永不丟失:每當數(shù)據(jù)塊發(fā)生更改時,都會將應用于塊的變更向量寫到重做日志,如果需要還原數(shù)據(jù)文件,則通過重做日志,可以將變更向量提取并應用于數(shù)據(jù)文件備份。
會話服務(wù)器進程不將重做記錄直接寫入重做日志文件,否則,每當執(zhí)行DML語句時,會話將不得不等待磁盤I/O操作完成。相反,會話將重做記錄寫入內(nèi)存中的日志緩沖區(qū)。這樣做的速度將遠比寫入磁盤快。此后,日志緩沖區(qū)(可能包含交替的多個會話的變更向量)寫出到重做日志文件。因此,日志緩沖區(qū)對磁盤的一次寫入是來自多個事務(wù)的一批變更向量。即使如此,日志緩沖區(qū)中的變更向量也是接近實時地寫入磁盤,當會話發(fā)出COMMIT語句時,會實時執(zhí)行日志緩沖區(qū)寫操作。寫操作由日志寫入器后臺進程(LGWR)完成。
特性
與其他內(nèi)存結(jié)構(gòu)相比,日志緩沖區(qū)較小,因為它是一個非常短暫的存儲區(qū)域。將變更向量插入其中,并幾乎實時地使其流向磁盤。日志緩沖區(qū)最多不必超過數(shù)MB,的確,如果將其設(shè)置為大于默認值,就會對性能產(chǎn)生極壞的影響。默認值由Oracle服務(wù)器確定,而且取決于服務(wù)器節(jié)點中的CPU數(shù)量。
在開發(fā)者選項中,有個選項叫做“日志記錄器緩沖區(qū)大小”,默認是256K,日志是循環(huán)寫入到緩沖區(qū)的,在通常情況下,寫滿是最舊的日志會被刪除,給新的日志留存空間。
日志記錄器緩沖區(qū)的大小一般根據(jù)個人來進行調(diào)整,可以設(shè)置的小一點,清理起來快一些,如果不怎么在乎的話就可以稍微設(shè)大一點,像100左右。
從理論上來說,在一定數(shù)值內(nèi)越大越好(因為它決定了你能打開應用層的數(shù)目)。
由于用戶本身不是經(jīng)常產(chǎn)生上傳日志,所以沒必要調(diào)節(jié)至最低。用戶使用默認設(shè)置即可。如在設(shè)備高配置情況下,可調(diào)高默認值甚至最大值以適應用戶個性化需求。
如何設(shè)置
不可設(shè)置小于默認值的日志緩沖區(qū)。如果嘗試這么做,則日志緩沖區(qū)一定會被設(shè)置為默認大小。可以創(chuàng)建一個大于默認值的緩沖區(qū),但通常不提倡這樣做。問題在于,當發(fā)出COMMIT語句時,一部分提交處理涉及將日志緩沖區(qū)內(nèi)容寫入磁盤上的重做日志文件。寫操作實時執(zhí)行,在其進行過程中,發(fā)出COMMIT的會話將掛起。提交處理是Oracle體系結(jié)構(gòu)的關(guān)鍵部分。要確保提交的事務(wù)永不丟失,那么,在緩存中的數(shù)據(jù)塊發(fā)生更改(意味著事務(wù)已完成)而且將變更向量寫入磁盤上的重做日志(如有必要,可以恢復事務(wù))前,不能將完成提交的消息返回給會話。大日志緩沖區(qū)意味著:在發(fā)出COMMIT語句時,需要寫入的內(nèi)容更多,在發(fā)出完成提交消息以及會話恢復工作之前,需要耗費更長的時間。
說明:
就某些應用程序而言,有必要將日志緩沖區(qū)大小設(shè)置為高于默認值,但通常使用默認日志緩沖區(qū)開始調(diào)整。
日志緩沖區(qū)在啟動實例時分配,如果不重新啟動實例,就不能在隨后調(diào)整其大小。它是一個循環(huán)緩沖區(qū)。在服務(wù)器進程向其中寫入變更向量時,當前的寫地址會來回移動。日志寫入器進程以批處理方式寫出向量,此時,其占用的空間將變得可用,并可由更多的變更向量覆蓋。在活動高峰時刻,變更向量的生成速度可能高于日志寫入器進程的寫出速度。如果發(fā)生這種情況,在日志寫入器清理緩沖區(qū)時,所有的DML活動都將停止數(shù)毫秒。
在Oracle體系結(jié)構(gòu)中,將日志緩沖區(qū)轉(zhuǎn)儲到磁盤是基本瓶頸之一。DML的速度不能超過LGWR將變更向量轉(zhuǎn)儲到聯(lián)機重做日志文件的速度。
如果重做生成是限制數(shù)據(jù)庫性能的因素,唯一的選項是使用RAC。在RAC數(shù)據(jù)庫中,每個實例都有自己的日志緩沖區(qū)和自己的LGWR。這是將重做數(shù)據(jù)并行寫入磁盤的唯一方法。
日志記錄器緩沖區(qū)注意事項:
1、大小設(shè)置:就某些應用程序而言,有必要將日志緩沖區(qū)大小設(shè)置為高于默認值,但通常使用默認日志緩沖區(qū)開始調(diào)整。
2、實例分配:日志緩沖區(qū)在啟動實例時分配,如果不重新啟動實例,就不能在隨后調(diào)整其大小。它是一個循環(huán)緩沖區(qū)。在服務(wù)器進程向其中寫入變更向量時,當前的寫地址會來回移動。
3、批量處理:日志寫入器進程以批處理方式寫出向量,此時,其占用的空間將變得可用,并可由更多的變更向量覆蓋。在活動高峰時刻,變更向量的生成速度可能高于日志寫入器進程的寫出速度。如果發(fā)生這種情況,在日志寫入器清理緩沖區(qū)時,所有的DML活動都將停止數(shù)毫秒。
更多相關(guān)知識,請訪問常見問題欄目!
以上就是日志記錄器緩沖區(qū)大小日志有什么用的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
關(guān)鍵詞: