DB2數據庫學習之日誌前滾後滾

一、DB2日誌相關

DB2日誌是以文件的形式存放在文件系統中,分爲兩種模式:循環日誌和歸檔日誌。當創建新數據庫時,日誌的缺省模式是循環日誌。在這種模式下,只能實現數據庫的脫機備份和恢復。如果要實現聯機備份和恢復,必須設爲歸檔日誌模式。

查看數據庫日誌方式:

db2 get db cfg for dbname |grep -i log

 Log retain for recovery status                          = NO

  User exit for logging status                            = YES

  Log retain for recovery enabled             (LOGRETAIN) = OFF

  User exit for logging enabled                (USEREXIT) = OFF

如果爲上述方式則爲循環日誌

歸檔日誌模式:db2 update db cfg for using logretain on

注:改爲on後,查看數據庫配置參數logretain的值時,實際顯示的是recovery。改變此參數後,再次連接數據庫會顯示數據庫處於備份暫掛(BACKUP PENDING)狀態。這時,需要做一次對數據庫的脫機備份(db2 backup db ),才能使數據庫狀態變爲正常。

循環日誌模式:db2 update db cfg for using logretain off

一.日誌概述

 

任何數據庫管理系統都必須擁有確保數據一致性和可恢復性的機制。關係數據庫系統爲確保那些非常重要的特性所使用的衆多機制之一是事務性日誌記錄。在本文中,我們將定義和討論事務性日誌記錄的類型,及如何分配日誌文件、如何存儲它們。

 

數據庫存儲了供應用程序訪問和處理的數據。那些應用程序會插入、讀取、更新或刪除數據。每一個這樣的活動都是在一個事務中執行的,該事務被 定義成“應用程序過程中一個可恢復的操作序列”。除非已經提交了事務(也稱作“工作單元”),否則它不會影響數據庫。 

 

將數據庫操作組合到事務中只是確保數據一致性解決方案的一半。另一半是稱作預寫式日誌記錄(write-ahead logging)的數據庫管理器實現。不管事務是否被提交,只要它們發生,就會記錄這些事務。在將任何數據從緩衝池寫到數據庫結構之前,事務會從日誌緩衝區(log buffer)寫到 日誌文件(事務性日誌記錄)。用於記錄事務的文件叫做 事務日誌 。

 

 

二.日誌分類

 

DB2 UDB 有兩種可用的日誌記錄類型 — 循環(circular)日誌記錄和 歸檔(archive)日誌記錄。其中歸檔日誌又分爲聯機歸檔日誌和脫機歸檔日誌。 

2.1循環日誌記錄

 

循環日誌記錄是數據庫使用的缺省日誌記錄策略。在此策略中,一旦日誌目錄中最後一個主日誌文件被寫滿了,就會將新的事務寫到第一個日誌文件中,從而覆蓋現有的日誌數據。這些新事務會繼續依次覆蓋每個舊日誌文件。這種日誌記錄方法確保了所有已提交事務的數據一致性,這樣就可以執行應急恢復。

 

循環日誌記錄通常在數據倉庫環境中使用,在該環境中,恢復數據庫需要的只是恢復數據庫映象的問題。該策略不應該用在線事務處理(on-line transaction processing,OLTP)環境,因爲它不可能進行前滾恢復。

2.2歸檔日誌記錄

 

與循環日誌記錄相比,當最後一個日誌文件寫滿時,歸檔日誌記錄過程會創建一個新的日誌文件,這樣將來的事務就不會覆蓋現有的日誌文件。當初始化數據庫時,系統會在活動日誌目錄中分配一定數量、指定大小的主日誌文件。這個數量由數據庫配置參數控制。當主日誌文件都寫滿時,就會“根據需要”創建輔助日誌文件,直到創建了最大數量的輔助日誌文件爲止。一旦達到了這個數量,如果需要附加的日誌空間,就會發出一個錯誤,指出沒有更多的可用日誌文件,所有數據庫活動停止。 

 

利用歸檔日誌記錄,就可能採取聯機(在線)數據庫備份,在執行這一操作期間,會繼續記錄數據庫活動。如果數據庫崩潰或發生故障,就會使用全備份映象,然後執行使用歸檔日誌的前滾操作,通過前滾到日誌結尾,將數據庫恢復到時間點狀態或最近的一致狀態,從而恢復數據庫。

有兩種歸檔日誌:

聯機歸檔日誌: 活動日誌中所有改動對正常處理已不需要,即該日誌中所記錄的事務都已提交併寫入數據庫文件時,該活動日誌轉換爲聯機歸檔日誌。稱之爲聯機,是由於它們與活動日誌存放在同一個目錄下。 

脫機歸檔日誌: 將聯機歸檔日誌從活動日誌目錄下Copy到另外的地方存檔,就稱爲脫機歸檔日誌。這些日誌可能在數據庫前滾恢復的時候仍然需要。

參考鏈接:http://blog.csdn.net/fuwencaho/article/details/24190013

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章