DB2數(shù)據(jù)庫中的日志類型
如果您是剛剛才接觸DB2數(shù)據(jù)庫,那么DB2數(shù)據(jù)庫中的日志類型您是很有必要知道的,下面將為您詳細(xì)介紹DB2數(shù)據(jù)庫中的日志類型,供您參考,希望對(duì)您有所幫助。
1.日志類型
1.1活動(dòng)日志(ACTIVE LOG)
功能類似于ORACLE的online redo log, 該日志包含尚未提交或回滾的事務(wù)單元的相關(guān)信息,以及已提交但尚未寫入數(shù)據(jù)庫文件的事務(wù)的信息。
具體又分兩種
l 主日志 數(shù)量由參數(shù)LOGPRIMARY決定,預(yù)先分配
l 從日志 當(dāng)主日志不夠時(shí),臨時(shí)分配最多LOGSECOND數(shù)目個(gè)從日志
1.2. 存檔日志(ARCHIVED LOG)
存在于歸檔模式。
1.1.1. 聯(lián)機(jī)存檔日志(ONLINE ARCHIVED LOG)
它們是駐留在數(shù)據(jù)庫活動(dòng)日志目錄(“online”)中、普通數(shù)據(jù)庫活動(dòng)不再需要的日志文件。
1.1.2. 脫機(jī)存檔日志(OFFLINE ARCHIVED LOG)
它們是已經(jīng)從數(shù)據(jù)庫日志目錄移到脫機(jī)存儲(chǔ)位置(如備份服務(wù)器)、普通數(shù)據(jù)庫活動(dòng)不需要的日志文件
這兩者的不同僅在于聯(lián)機(jī)歸檔日志存在于活動(dòng)日志目錄下,而脫機(jī)的不是。
1.2. 日志模式
1.2.1. 循環(huán)日志模式
預(yù)先分配好的若干個(gè)主日志循環(huán)利用,當(dāng)不夠的時(shí)候,臨時(shí)申請(qǐng)若干個(gè)從日志#p#
1.2.2. 歸檔日志模式
當(dāng)開啟歸檔模式后,日志將不會(huì)被覆蓋,而是不停新產(chǎn)生。如果不設(shè)LOGARCHMETH1參數(shù)的話,歸檔日志將仍然待原目錄,就成為聯(lián)機(jī)歸檔日志。如下圖:
而如果,設(shè)置LOGARCHMETH1參數(shù)到另外一個(gè)目錄的話,歸檔后的日志將被自動(dòng)移動(dòng)到新目錄下,即被稱為脫機(jī)歸檔日志,如下圖:
2. DB2歸檔模式設(shè)定
1. 修改參數(shù)LOGRETAIN為recovery (缺省為N)
Db2 update db cfg for TEST using logretain recovery
2. 將數(shù)據(jù)庫做一次全備
Db2 BACKUP DATABASE TEST TO "C:test"
3. 修改USER_EXIT參數(shù)
a) 可以通過圖形界面;控制中心-》數(shù)據(jù)庫》DBNAME》右鍵》配置數(shù)據(jù)庫記錄向?qū)?br />
b) 通過命令行
Db2 UPDATE DB CFG FOR TEST USING logarchmeth1 "DISK:C:testMYLOG"
這樣日志就被自動(dòng)歸檔到C:testMYLOG目錄下了。
3. DB2日志跟ORACLE日志的比較
有兩個(gè)比較大的不同點(diǎn):
1. DB2要求活動(dòng)日志被覆蓋或者歸檔之前必須保證里面的事務(wù)已經(jīng)commit或者rollback了,也就是說,如果一個(gè)事務(wù)太大,超過了主日志加從日志的和的話,將會(huì)報(bào)日志滿錯(cuò)誤。而ORACLE沒這個(gè)要求,只可能在歸檔模式時(shí),空間滿了才會(huì)報(bào)日志滿錯(cuò)誤。
2. 對(duì)于歸檔模式而言,DB2的活動(dòng)日志總是新分配的,不象oracle,在線日志總是重用的
4. 與復(fù)制相關(guān)的問題
1. 如果DB2啟用復(fù)制并且作為數(shù)據(jù)源后,必須使用歸檔日志模式,DB2復(fù)制是從日志或者歸檔日志里捕獲需要的表的修改信息的。
2. 如果復(fù)制進(jìn)程中途斷掉,經(jīng)過一段時(shí)間再啟用時(shí),這時(shí)可能相應(yīng)的表修改信息已經(jīng)被歸檔了,這時(shí)db2將從歸檔日志(可能聯(lián)機(jī)歸檔日志,也可能是脫機(jī)歸檔日志)里面將信息去找。
3. 這就涉及到一個(gè)問題,歸檔日志不會(huì)無限期的放到歸檔目錄下,如何設(shè)定歸檔日志存放時(shí)間呢?如果時(shí)間過短,復(fù)制的capture進(jìn)程可能會(huì)發(fā)生找不到相應(yīng)日志,從而失敗的問題。存放時(shí)間太長的話,需要的歸檔空間又太多。這就需要根據(jù)實(shí)際情況,兩方面均衡的考慮了。
4. 如果真的發(fā)生了找不到日志的情況,可以有兩種方法
a) 將日志從別處拷回
b) 將復(fù)制完全刷新
對(duì)單向復(fù)制而言,復(fù)制完全刷新這個(gè)選項(xiàng)就已經(jīng)夠了。但對(duì)雙向復(fù)制而言,完全刷新的話,意味著從節(jié)點(diǎn)自上次刷新之后的修改就完全丟失了,所以***將日志拷回來。