程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2數據庫中的日志類型(2)

DB2數據庫中的日志類型(2)

編輯:DB2教程
1.2.2. 歸檔日志模式
當開啟歸檔模式後,日志將不會被覆蓋,而是不停新產生。如果不設LOGARCHMETH1參數的話,歸檔日志將仍然待原目錄,就成為聯機歸檔日志。如下圖:

而如果,設置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) 將復制完全刷新
對單向復制而言,復制完全刷新這個選項就已經夠了。但對雙向復制而言,完全刷新的話,意味著從節點自上次刷新之後的修改就完全丟失了,所以最好將日志拷回來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved