在資料庫中,日誌的重要性那是大大的大,所以日誌一定是要先瞭解的.
日誌類型:
主日誌(Primary logs)
預分配,可用數目由db cfg的LOGPRIMARY參數規定
輔助日誌(Secondary logs)
依需要再動態分配,最大數目由db cfg的LOGSECOND參數來定.輔助日誌同時會在資料庫
所有串連全部關閉後被刪除.
如果LOGSECOND為-1,則不限制記錄日誌的大小.
日誌記錄類型:
有兩類迴圈日誌和歸檔日誌,可以通過"設定資料庫日誌記錄"嚮導來修改資料庫的日誌記錄類型。
(1)迴圈日誌:
預設的日誌記錄策略,迴圈日誌按順序使用。當日誌中所包含的工作已提交或復原時,可以重用。
主日誌預先分配。 而輔助日誌則在需要時才分配。
迴圈日誌有兩類日誌,主日誌和輔助日誌.
主日誌預先就要配好了,輔助日誌在需要時再分分配.
DB2管理程式按順序請求 -> 尋找主日誌 -> 需要的主日誌不可用 -> 分配一個輔助日誌.
-> 輔助日誌也滿了 -> 再去檢查下主日誌能用不 -> 還不可用就又分配一個新的輔助日誌
-> 然後就一直重複上述檢查
-> 一直到有主記錄檔變為可重用為止.然後就把輔助日誌釋放掉.
迴圈日誌在備份恢複中的作用:
不能進行前滾恢複,但可進行崩潰恢複和版本恢複
僅支援離線備份.
(2)歸檔日誌
歸檔日誌是一種記錄檔的管理技術,將那些處理非使用中的記錄檔進行歸檔.
歸檔日誌是非預設的.
歸檔日誌有幾個要類
1.活動紀錄
包含發那些尚未提交(或復原)的事務相關資訊.還包含已提交但改動還沒與的的事務相關資訊
restart database;
rollforward
2.聯機歸檔日誌
當活動紀錄關閉時,將成為一個歸檔日誌。稱它們為"聯機" 是因為它們和活動
日誌存放在相同的子目錄下。
3.離線歸檔日誌
這些記錄檔已經從活動紀錄所在的目錄中移開了。可以手動,也可以
通過 userexit這樣的程序呼叫來自動進行。歸檔的記錄檔可以
儲存到磁帶或其它介質上。如tsm上。
正在用的日誌(活動紀錄) -> 如果日誌用完了(聯機歸檔日誌) -> 再把這些不用的日誌給備份或移開(離線歸檔日誌)
迴圈日誌在備份恢複中的作用:
唯一支援前滾恢複和實現可恢複資料庫的日誌方法.
支援離線備份和聯機備份
在DB2資料庫中查看與日誌有關的主要參數:
userexit 是否啟用使用者出口
logretain 是否啟用歸檔日誌
trackmod 是否啟用增量備份功能
這些預設是off,即迴圈記錄模式,如為"Yes"或"Recovery",則表明為歸檔記錄模式.
Unix/Linux下的查看命令:
db2 get db cfg for sample |grep "userexit"
db2 get db cfg for sample |grep "logretain"
db2 get db cfg for sample |grep "trackmod"
Windows下的查看命令:
db2 get db cfg for sample |find /I "userexit"
db2 get db cfg for sample |find /I "logretain"
db2 get db cfg for sample |find /I "trackmod"
可更改這些參數使DB2資料庫處于歸檔記錄模式,以便支援聯機備份.
更改命令:
db2 update db cfg for sample using userexit on//啟用使用者出口
db2 update db cfg for sample using logretain on//啟用歸檔日誌
db2 update db cfg for sample using trackmod on//啟用增量備份功能
注意事項:
變更這些歸檔模式參數後,是不能馬上串連上資料庫的,必須要做離線備份一次才行.
離線備份命令例子:
db2 backup db sample to c:\xclbkcold
關於日誌的管理:
查看首活動紀錄:
db2 get db cfg for sample
First active log file= S0000011.LOG //Unix/Linux下
首個活動紀錄檔案 = S0000011.LOG //Windows下
清理日誌:
db2 connectto sample
db2 prune logfile prior to S0000011.LOG
其中S0000011.LOG就是剛剛的首活動紀錄
手工歸檔命令:
db2 archive log for db sample //會手工產生日誌
推薦閱讀:
DB2資料庫效能調整和最佳化(第1、2版) PDF
DB2資料庫效能最佳化介紹
DB2日誌(2) 用C語言擴充實現DB2日誌管理及主備同步.