鑑於CSDN無故刪除博文,本博客不再更新,暫時遷至http://www.db365.net
數據庫中有兩類日誌:
循環日誌
歸檔日誌
1.循環日誌
循環日誌是db2默認的。這種類型的日誌以循環的模式重用日誌。
在這種模式下,只要某個日誌文件中包含的所有事物提交。就是說,如果日誌仍然是活動日誌,那麼他就不可以被重用。循環日誌包括兩部分:
主日誌文件
輔日誌文件
主日誌預先分配,輔日誌只有在需要的時候才分配。
主日誌文件和輔日誌文件的數目有LOGPRIMARY和LOGSECOND來決定。
2.歸檔日誌
歸檔日誌要求用戶經常保存日誌。所有日誌文件將保留下來。所以日誌目錄(或歸檔目錄)將包含越來越多的日誌文件。
活動日誌:如果某個日誌滿足以下條件中的任一個,就屬於活動日誌:
包含尚未提交或回滾的事物
包含已經提交但是更改尚未寫到磁盤上的事物
在線歸檔日誌:包含已提交且已寫到磁盤上的日誌。這些日誌與活動日誌放在相同的目錄。
離線歸檔日誌:已經從活動日誌目錄轉移到另一個目錄上的歸檔日誌。
要設置日誌爲歸檔模式,需要設置LOGARCHMETH1參數爲以下任意情況:
LOGRETAIN 日誌文件將被保留在活動日誌目錄中。
USEREXIT 日誌的歸檔和檢索是由用戶提供的用戶出口程序自動執行,這個出口程序必須由db2uext2調用。用於將在線歸檔日誌移動到與活動日誌目錄不同的一個目錄中。當在ROLLFORWARD操作期間需要離線歸檔日誌時,這個程序還可以用於將離線歸檔日誌取出到活動日誌目錄中。
DISK:directory_name 使用與USEREXIT相同的算法。db2不調用用戶出口程序,而是自動將日誌從活動日誌歸檔到指定目錄。
TSM:[management class name] 使用與USEREXIT相同的算法。日誌被歸檔到本地TSM服務器上。
VENDOR:library_name 使用與USEREXIT相同的算法。日誌使用指定供應商的庫來歸檔。
歸檔日誌不是默認的日誌工作方式,但它是允許用戶執行前滾(roll forward)回覆的唯一方法。
3.無限日誌
採用循環日誌或者歸檔日誌,日誌目錄均可能被填滿。如果啓用無限日誌,db2就會在一個日誌被填滿時立即歸檔該日誌。他不會等到日誌中所有事物都被提交且寫入磁盤。這樣可以保證活動日誌目錄永遠不會被填滿。但是這樣可能延遲緊急事故恢復時間,所以不建議採用。如果要啓用:
將LOGSECOND數據庫參數設爲-1
啓用歸檔日誌模式
日誌相關參數
LOGPRIMARY
LOGSECOND
LOGFILSIZ:用於指定一個日誌文件的大小(4kb頁的個數)
LOGBUFSZ
NEWLOGPATH
SOFTMAX:軟檢查點,是個百分數,例如60%表示日誌文件寫滿60%時,數據庫執行checkpoint操作,把內存中的已提交的數據(髒頁)寫到磁盤
MINCOMMIT
LOGARCHMETH1:第一個日誌歸檔方法
LOGARCHMETH2
MIRRORORLOGPATH
TRACKMOD:啓用增量備份
通過命令update db cfg命令更改參數。
啓用了歸檔日誌的數據庫成爲可恢復數據庫。
循環日誌的數據庫稱爲不可恢復數據庫。
下次將寫一篇關於數據庫備份恢復的文章。