作用是:給工程師們回饋使用資訊與記錄便於分析問題(開發時使用的);由於使用者本身不是經常產生上傳日誌,所以對使用者無用。日誌記錄緩衝區是小型的、用於短期儲存將寫入到磁碟上的重做日誌的變更向量的臨時區域。日誌緩衝區對磁碟的一次寫入是來自多個交易的一批變更向量。即使如此,日誌緩衝區中的變更向量也是接近即時寫入磁碟,當會話發出COMMIT語句時,會即時執行日誌緩衝區寫入操作。
本教學操作環境:windows7系統、Dell G3電腦。
日誌記錄器緩衝區大小日誌的作用是:主要用於給工程師們回饋使用資訊與記錄便於分析問題(開發時使用的);由於使用者本身不是經常產生上傳日誌,所以對用戶無用。
日誌記錄緩衝區是小型的、用於短期儲存將寫入到磁碟上的重做日誌的變更向量的臨時區域。 「變更向量」是應用於某些物件的修改,執行DML語句會產生應用於資料的變更向量。
有了重做日誌,資料庫就可以確保資料永不遺失:每當資料區塊發生變更時,都會將套用於區塊的變更向量寫到重做日誌,如果需要還原資料文件,則透過重做日誌,可以將變更向量提取並應用於資料檔案備份。
會話伺服器程序不將重做記錄直接寫入重做日誌文件,否則,每當執行DML語句時,會話將不得不等待磁碟I/O操作完成。相反,會話將重做記錄寫入記憶體中的日誌緩衝區。這樣做的速度將遠比寫入磁碟快。此後,日誌緩衝區(可能包含交替的多個會話的變更向量)寫出到重做日誌檔案。因此,日誌緩衝區對磁碟的一次寫入是來自多個事務的一批變更向量。即使如此,日誌緩衝區中的變更向量也是接近即時寫入磁碟,當會話發出COMMIT語句時,會即時執行日誌緩衝區寫入操作。寫入操作由日誌寫入器後台程序(LGWR)完成。
特性
與其他記憶體結構相比,日誌緩衝區較小,因為它是一個非常短暫的儲存區域。將變更向量插入其中,並幾乎即時地使其流向磁碟。日誌緩衝區最多不必超過數MB,的確,如果將其設為大於預設值,就會對效能產生極度的影響。預設值由Oracle伺服器決定,而且取決於伺服器節點中的CPU數量。
在開發者選項中,有個選項叫做“日誌記錄器緩衝區大小”,預設是256K,日誌是循環寫入到緩衝區的,在通常情況下,寫滿是最舊的日誌會被刪除,給新的日誌留存空間。
日誌記錄器緩衝區的大小一般會根據個人來進行調整,可以設定的小一點,清理起來快一些,如果不怎麼在乎的話就可以稍微設大一點,像100左右。
從理論上來說,在一定數值內越大越好(因為它決定了你能打開應用層的數目)。
由於使用者本身不是經常產生上傳日誌,所以沒必要調整至最低。用戶使用預設設定即可。如在設備高配置情況下,可調高預設值甚至最大值以適應用戶個人化需求。
如何設定
不可設定小於預設值的日誌緩衝區。如果嘗試這麼做,則日誌緩衝區一定會被設定為預設大小。可以建立一個大於預設值的緩衝區,但通常不提倡這樣做。問題在於,當發出COMMIT語句時,一部分提交處理涉及將日誌緩衝區內容寫入磁碟上的重做日誌檔案。寫入操作即時執行,在其進行過程中,發出COMMIT的會話將掛起。提交處理是Oracle體系結構的關鍵部分。要確保提交的事務永不遺失,那麼,在快取中的資料塊發生更改(意味著事務已完成)而且將變更向量寫入磁碟上的重做日誌(如有必要,可以恢復事務)前,不能將完成提交的訊息傳回給會話。大日誌緩衝區表示:在發出COMMIT語句時,需要寫入的內容更多,在發出完成提交訊息以及會話復原工作之前,需要耗費更長的時間。
說明:
就某些應用程式而言,有必要將日誌緩衝區大小設定為高於預設值,但通常會使用預設日誌緩衝區開始調整。
日誌緩衝區在啟動實例時分配,如果不重新啟動實例,就無法在隨後調整其大小。它是一個循環緩衝區。在伺服器進程向其中寫入變更向量時,目前的寫入位址會來回移動。日誌寫入器程序以批次方式寫出向量,此時,其佔用的空間將變得可用,並可由更多的變更向量覆蓋。在活動高峰時刻,變更向量的產生速度可能高於日誌寫入器程序的寫出速度。如果發生這種情況,在日誌寫入器清理緩衝區時,所有的DML活動都會停止數毫秒。
在Oracle體系架構中,將日誌緩衝區轉儲到磁碟是基本瓶頸之一。 DML的速度不能超過LGWR將變更向量轉儲到線上重做日誌檔案的速度。
如果重做產生是限制資料庫效能的因素,唯一的選項是使用RAC。在RAC資料庫中,每個實例都有自己的日誌緩衝區和自己的LGWR。這是將重做資料並行寫入磁碟的唯一方法。
日誌記錄器緩衝區注意事項:
1、大小設定:就某些應用程式而言,有必要將日誌緩衝區大小設定為高於預設值,但通常使用預設日誌緩衝區開始調整。
2、實例分配:日誌緩衝區在啟動實例時分配,如果不重新啟動實例,就無法在隨後調整其大小。它是一個循環緩衝區。在伺服器進程向其中寫入變更向量時,目前的寫入位址會來回移動。
3、批次處理:日誌寫入器程序以批次方式寫出向量,此時,其佔用的空間將變得可用,並可由更多的變更向量覆寫。在活動高峰時刻,變更向量的產生速度可能高於日誌寫入器程序的寫出速度。如果發生這種情況,在日誌寫入器清理緩衝區時,所有的DML活動都會停止數毫秒。
更多相關知識,請造訪常見問題欄位!
以上是日誌記錄器緩衝區大小日誌有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!