而如果,設置LOGARCHMETH1參數到另外一個目錄的話,歸檔後的日志將被自動移動到新目錄下,即被稱為脫機歸檔日志,如下圖:
2. DB2歸檔模式設定
1. 修改參數LOGRETAIN為recovery (缺省為N)
Db2 update db cfg for TEST using logretain recovery
2. 將數據庫做一次全備
Db2 BACKUP DATABASE TEST TO "C:test"
3. 修改USER_EXIT參數
a) 可以通過圖形界面;控制中心-》數據庫》DBNAME》右鍵》配置數據庫記錄向導
b) 通過命令行
Db2 UPDATE DB CFG FOR TEST USING logarchmeth1 "DISK:C:testMYLOG"
這樣日志就被自動歸檔到C:testMYLOG目錄下了。
3. DB2日志跟Oracle日志的比較
有兩個比較大的不同點:
1. DB2要求活動日志被覆蓋或者歸檔之前必須保證裡面的事務已經commit或者rollback了,也就是說,如果一個事務太大,超過了主日志加從日志的和的話,將會報日志滿錯誤。而Oracle沒這個要求,只可能在歸檔模式時,空間滿了才會報日志滿錯誤。
2. 對於歸檔模式而言,DB2的活動日志總是新分配的,不象Oracle,在線日志總是重用的
4. 與復制相關的問題
1. 如果DB2啟用復制並且作為數據源後,必須使用歸檔日志模式,DB2復制是從日志或者歸檔日志裡捕獲需要的表的修改信息的。
2. 如果復制進程中途斷掉,經過一段時間再啟用時,這時可能相應的表修改信息已經被歸檔了,這時db2將從歸檔日志(可能聯機歸檔日志,也可能是脫機歸檔日志)裡面將信息去找。
3. 這就涉及到一個問題,歸檔日志不會無限期的放到歸檔目錄下,如何設定歸檔日志存放時間呢?如果時間過短,復制的capture進程可能會發生找不到相應日志,從而失敗的問題。存放時間太長的話,需要的歸檔空間又太多。這就需要根據實際情況,兩方面均衡的考慮了。
4. 如果真的發生了找不到日志的情況,可以有兩種方法
a) 將日志從別處拷回
b) 將復制完全刷新
對單向復制而言,復制完全刷新這個選項就已經夠了。但對雙向復制而言,完全刷新的話,意味著從節點自上次刷新之後的修改就完全丟失了,所以最好將日志拷回來。