共計 3341 個字符,預計需要花費 9 分鐘才能閱讀完成。
這篇文章主要介紹了 db2 中日志模式和備份歸檔、恢復的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
一、日志循環
這是默認方式,也就是非歸檔模式,這種模式只支持(backup offline)脫機備份,在備份過程中需要 DB2 停止服務。
在 DB2 中查看數據庫設置,如發現如下信息
$db2 get db cfg for db_name |grep -i log
結果如下:
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
則說明為非歸檔模式,默認情況下為循環日志
在這種模式下進行脫機備份需要注意:
1、停止應用對 DB2 的訪問。可以通過 db2 list applications 命令查看現有的連接,然后通過 db2 force application 命令來結束連接。另外通過 db2 deactivate database 命令來確保數據庫未處于活動狀態。
2、通過 db2 backup db 數據庫名 命令來對數據庫進行備份。
二、歸檔日志
歸檔日志不是默認的,需要配置后才會生效,這種模式下的數據庫是可恢復的數據庫,支持在線備份、前滾恢復和崩潰恢復。
配置 DB2 歸檔日志模式主要是要修改 Log retain for recovery enabled 和 First log archive method 這兩個參數。
修改參數(update 更新參數)后,查看數據庫是如下設置
$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 的參數 LOGRETAIN 只表明你開啟了歸檔,還需進一步設置才能正常備份
下面需要進一步指定歸檔目錄的路徑
更改歸檔目錄:
$db2 update db cfg for db_name using LOGARCHMETH1 disk:/archive/db_name_db_log
使用歸檔日志, 當日志文件滿時,會自動對它進行歸檔,歸檔的目的地就是 Logarchmeth2 設置的位置。歸檔日志文件之后,必須人工將無用的歸檔日志刪除,以便新的日志文件可以復用磁盤空間。每當日志文件已滿,DB2 就開始將記錄寫至另一個日志文件,并且不斷創建新日志文件。
如果在歸檔日志文件時發生錯誤,歸檔將暫掛一段時間,此時間由“Log archive retry Delay (secs)” ARCHRETRYDELAY 數據庫配置參數指定,還可以使用“Number of log archive retries on error”NUMARCHRETRY 數據庫配置參數來指定 DB2 嘗試將日志文件歸檔到主要或輔助歸檔目錄的次數,然后它再嘗試將日志文件歸檔到故障轉移目錄(由“Failover log archive path”FAILARCHPATH 數據庫配置參數指定)。
還有就是容易遇見數據庫事務日志已滿導致備份出錯的問題,這是可以查看這三個參數
Log file size (4KB) (LOGFILSIZ) = 8192
Number of primary log files (LOGPRIMARY) = 10
Number of secondary log files (LOGSECOND) = 4
并適當調整日志文件大小和主輔日志的文件個數。
最后就是要注意這兩個參數的設置
Options for logarchmeth2 (LOGARCHOPT1) =
Second log archive method (LOGARCHMETH2) =
有以下幾種情況:
1、Logarchmeth2 設置為 LOGRETAIN,Logarchmeth3 設置為 OFF
這時歸檔日志位置就是 DB2 數據庫日志的位置,需要人工干預歸檔日志的轉移和空間維護工作
2、Logarchmeth2 設置為 USEREXIT,Logarchmeth3 設置為 OFF
這時歸檔日志的管理交由 USEREXIT 來處理,通過設置編譯 USEREXIT 可以實現相對復雜一些的歸檔管理方式
3、Logarchmeth2 設置為指定目錄 Directory,Logarchmeth3 設置為 OFF
歸檔日志的工作將會自動進行,需要歸檔日志將會被自動歸檔到 Directory 指定的位置,由于歸檔是自動進行,DB2 的日志目錄中只有正常 logprimary+logsecond 個數的數據庫日志。
4、Logarchmeth2 設置為 Directory1,Logarchmeth3 設置為 Directory2
歸檔日志的工作將會自動進行,需要歸檔日志將會被自動歸檔到 Directory1 和 Directory2 指定的位置,也就是會產生兩份歸檔日志。由于歸檔是自動進行,DB2 的日志目錄中只有正常 logprimary+logsecond 個數的數據庫日志。對性能有一定的影響。
Directory1 或者 Directory2 都可以設置為 TSM。一般推薦 Directory1 為文件系統,Directory2 設置為 TSM,這樣既可以歸檔到 TSM 離線保存,又可以在線使用文件系統中的歸檔日志,比較方便。
注意:設置 Logarchmeth2 和 Logarchmeth3 后,數據庫會進入 backup pending 狀態,必須進行一次脫機備份,數據才會進入 recovery 模式并且正常工作。
三、備份與恢復
1、簡單的冷備與恢復
$ db2 backup db [dbname] to 路徑
$ db2 restore db [dbname] from 路徑 taken at 時間戳
2、在線熱備與恢復
$ db2 backup db dbname online to 路徑 include logs
$ db2 restore db dbname from 路徑 taken at 時間戳
$ db2 rollforward db dbname to 2013-02-31-20.00.00.000000 using local time and complete overflow log path (/backup/logs) 前滾日志恢復至指定時間點
3、查看備份記錄
$ db2 list history backup all for dbname 可以看到備份的紀錄
附:DB2 數據庫備份恢復的概念和知識點
備份類型:脫機備份(也稱冷備份或離線備份)、聯機備份(也稱熱備份或在線備份)、完全備份、增量備份(也稱累積備份)、差異備份
數據庫備份文件結構
恢復類型:崩潰恢復、版本恢復、前滾恢復(任意時間點恢復,恢復到最近時間點)
恢復情形:完全恢復、不完全恢復
手動恢復數據庫的順序
日志類型:循環日志(默認)、歸檔日志(活動日志、在線歸檔日志、離線歸檔日志)
日志類型與恢復類型:循環日志只支持崩潰恢復和版本恢復,歸檔日志支持所有類型的恢復
凡是聯機備份產生的備份集在恢復時都需要使用歸檔日志,歸檔日志方式是是允許用戶執行前滾(rollforward)恢復的唯一方法。
前滾的時間要在最小恢復時間點之后,最后的事務提交時間點之前。
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“db2 中日志模式和備份歸檔、恢復的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!