這篇文章主要介紹了db2中日志模式和備份歸檔、恢復(fù)的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)桓仁免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
一、日志循環(huán)
這是默認(rèn)方式,也就是非歸檔模式,這種模式只支持(backup offline)脫機(jī)備份,在備份過(guò)程中需要DB2停止服務(wù)。
在DB2中查看數(shù)據(jù)庫(kù)設(shè)置,如發(fā)現(xiàn)如下信息
$db2 get db cfg for db_name |grep -i log
結(jié)果如下:
Log retain for recovery enabled (
LOGRETAIN) = OFF
User exit for logging enabled (USEREXIT) = OFF
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
First log archive method
(LOGARCHMETH1) = OFF
則說(shuō)明為非歸檔模式, 默認(rèn)情況下為循環(huán)日志
在這種模式下進(jìn)行脫機(jī)備份需要注意:
1、停止應(yīng)用對(duì)DB2的訪問(wèn)??梢酝ㄟ^(guò)db2 list applications命令查看現(xiàn)有的連接,然后通過(guò)db2 force application命令來(lái)結(jié)束連接。另外通過(guò)db2 deactivate database命令來(lái)確保數(shù)據(jù)庫(kù)未處于活動(dòng)狀態(tài)。
2、通過(guò)db2 backup db 數(shù)據(jù)庫(kù)名 命令來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。
二、歸檔日志
歸檔日志不是默認(rèn)的,需要配置后才會(huì)生效,這種模式下的數(shù)據(jù)庫(kù)是可恢復(fù)的數(shù)據(jù)庫(kù),支持在線備份、前滾恢復(fù)和崩潰恢復(fù)。
配置DB2歸檔日志模式主要是要修改Log retain for recovery enabled和First log archive method這兩個(gè)參數(shù)。
修改參數(shù)(update更新參數(shù))后,查看數(shù)據(jù)庫(kù)是如下設(shè)置
$db2 get db cfg for db_name |grep -i log
Log retain for recovery enabled (LOGRETAIN) = RECOVERY
User exit for logging enabled (USEREXIT) = OFF
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
First log archive method (LOGARCHMETH1) = LOGRETAIN
注意這里First log archive method的參數(shù)LOGRETAIN只表明你開(kāi)啟了歸檔,還需進(jìn)一步設(shè)置才能正常備份
下面需要進(jìn)一步指定歸檔目錄的路徑
更改歸檔目錄:
$db2 update db cfg for db_name using LOGARCHMETH1 "disk:/archive/db_name_db_log"
使用歸檔日志,當(dāng)日志文件滿時(shí),會(huì)自動(dòng)對(duì)它進(jìn)行歸檔,歸檔的目的地就是Logarchmeth2設(shè)置的位置。歸檔日志文件之后,必須人工將無(wú)用的歸檔日志刪除,以便新的日志文件可以復(fù)用磁盤空間。每當(dāng)日志文件已滿,DB2 就開(kāi)始將記錄寫至另一個(gè)日志文件,并且不斷創(chuàng)建新日志文件。
如果在歸檔日志文件時(shí)發(fā)生錯(cuò)誤,歸檔將暫掛一段時(shí)間,此時(shí)間由“Log archive retry Delay (secs)” ARCHRETRYDELAY數(shù)據(jù)庫(kù)配置參數(shù)指定,還可以使用“ Number of log archive retries on error ”NUMARCHRETRY 數(shù)據(jù)庫(kù)配置參數(shù)來(lái)指定 DB2 嘗試將日志文件歸檔到主要或輔助歸檔目錄的次數(shù),然后它再嘗試將日志文件歸檔到故障轉(zhuǎn)移目錄(由“ Failover log archive path” FAILARCHPATH 數(shù)據(jù)庫(kù)配置參數(shù)指定)。
還有就是容易遇見(jiàn)數(shù)據(jù)庫(kù)事務(wù)日志已滿導(dǎo)致備份出錯(cuò)的問(wèn)題,這是可以查看這三個(gè)參數(shù)
Log file size (4KB) (LOGFILSIZ) = 8192
Number of primary log files (LOGPRIMARY) = 10
Number of secondary log files (LOGSECOND) = 4
并適當(dāng)調(diào)整日志文件大小和主輔日志的文件個(gè)數(shù)。
最后就是要注意這兩個(gè)參數(shù)的設(shè)置
Options for logarchmeth2 (LOGARCHOPT1) =
Second log archive method (LOGARCHMETH2) =
有以下幾種情況:
1、Logarchmeth2設(shè)置為L(zhǎng)OGRETAIN,Logarchmeth3設(shè)置為OFF
這時(shí)歸檔日志位置就是DB2數(shù)據(jù)庫(kù)日志的位置,需要人工干預(yù)歸檔日志的轉(zhuǎn)移和空間維護(hù)工作
2、Logarchmeth2設(shè)置為USEREXIT,Logarchmeth3設(shè)置為OFF
這時(shí)歸檔日志的管理交由USEREXIT來(lái)處理,通過(guò)設(shè)置編譯USEREXIT可以實(shí)現(xiàn)相對(duì)復(fù)雜一些的歸檔管理方式
3、Logarchmeth2設(shè)置為指定目錄
歸檔日志的工作將會(huì)自動(dòng)進(jìn)行,需要?dú)w檔日志將會(huì)被自動(dòng)歸檔到
4、Logarchmeth2設(shè)置為
歸檔日志的工作將會(huì)自動(dòng)進(jìn)行,需要?dú)w檔日志將會(huì)被自動(dòng)歸檔到
注意:設(shè)置Logarchmeth2和Logarchmeth3后,數(shù)據(jù)庫(kù)會(huì)進(jìn)入backup pending狀態(tài),必須進(jìn)行一次脫機(jī)備份,數(shù)據(jù)才會(huì)進(jìn)入recovery模式并且正常工作。
三、備份與恢復(fù)
1、簡(jiǎn)單的冷備與恢復(fù)
$ db2 backup db [dbname] to 路徑
$ db2 restore db [dbname] from 路徑 taken at 時(shí)間戳
2、在線熱備與恢復(fù)
$ db2 backup db dbname online to 路徑 include logs
$ db2 restore db dbname from 路徑 taken at 時(shí)間戳
$ db2 "rollforward db dbname to 2013-02-31-20.00.00.000000 using local time and complete overflow log path (/backup/logs)" 前滾日志恢復(fù)至指定時(shí)間點(diǎn)
3、查看備份記錄
$ db2 list history backup all for dbname 可以看到備份的紀(jì)錄
附:DB2數(shù)據(jù)庫(kù)備份恢復(fù)的概念和知識(shí)點(diǎn)
備份類型:脫機(jī)備份(也稱冷備份或離線備份)、聯(lián)機(jī)備份(也稱熱備份或在線備份)、完全備份、增量備份(也稱累積備份)、差異備份
數(shù)據(jù)庫(kù)備份文件結(jié)構(gòu)
恢復(fù)類型:崩潰恢復(fù)、版本恢復(fù)、前滾恢復(fù)(任意時(shí)間點(diǎn)恢復(fù),恢復(fù)到最近時(shí)間點(diǎn))
恢復(fù)情形:完全恢復(fù)、不完全恢復(fù)
手動(dòng)恢復(fù)數(shù)據(jù)庫(kù)的順序
日志類型:循環(huán)日志(默認(rèn))、歸檔日志(活動(dòng)日志、在線歸檔日志、離線歸檔日志)
日志類型與恢復(fù)類型:循環(huán)日志只支持崩潰恢復(fù)和版本恢復(fù),歸檔日志支持所有類型的恢復(fù)
凡是聯(lián)機(jī)備份產(chǎn)生的備份集在恢復(fù)時(shí)都需要使用歸檔日志,歸檔日志方式是是允許用戶執(zhí)行前滾(rollforward)恢復(fù)的唯一方法。
前滾的時(shí)間要在最小恢復(fù)時(shí)間點(diǎn)之后,最后的事務(wù)提交時(shí)間點(diǎn)之前。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“db2中日志模式和備份歸檔、恢復(fù)的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!