一、數據庫參數預配置(啟用在線備份前置條件)
db2 update db cfg for qncenter using logretain recovery
db2 update db cfg for qncenter using userexit yes
db2 update db cfg for qncenter using trackmod yes
# 修改生效後需做一次離線全備
| 參數 | 作用 |
logretain=recovery | 啟用歸檔日誌,支援前滾恢復 |
userexit=yes | 啟用用戶出口程式,自動歸檔/取回日誌 |
trackmod=yes | 啟用增量備份追蹤修改頁面 |
二、用戶出口程式(db2uext2)定制與編譯
- 複製樣例:
cp /home/db2inst1/sqllib/samples/c/db2uext2.c /home/db2inst1/sqllib/adm/db2uext2.c
- 修改關鍵宏定義:
#define ARCHIVE_PATH "/db2log/"
#define RETRIEVE_PATH "/db2log/"
#define AUDIT_ACTIVE 1
#define ERROR_ACTIVE 1
#define AUDIT_ERROR_PATH "/db2log/"
#define AUDIT_ERROR_ATTR "a"
#define BUFFER_SIZE 32
- 編譯:
cc -D_INCLUDE_POSIX_SOURCE db2uext2.c -o db2uext2(生成可執行文件放置於 sqllib/adm)
三、歸檔日誌目錄佈署
su - root
mkdir -p /db2log/QNCENTER/NODE0000
chmod -R 777 /db2log
chown -R db2inst1:db2grp1 /db2log
四、備份腳本化(Crontab 部署)
1. 在線全量備份(每日)
db2 backup db qncenter online to /home/db2inst1/ > `date +%Y%m%d`.bklog 2>&1
2. 在線增量備份(每小時/按需)
db2 backup db qncenter online incremental delta to /home/db2inst1/ > `date +%Y%m%d`.bklog 2>&1
3. 歸檔日誌打包異地傳輸(每日)
tar zcvf `date +%Y%m%d`_arc.tar.gz /db2log/QNCENTER
五、恢復矩陣(四大場景)
| 場景 | 恢復步驟 |
| 在線全備 + 歸檔日誌 |
db2 restore db qncenter from /home/db2inst1 taken at <TS>
db2 rollforward database qncenter to end of logs and stop
|
| 離線全備 + 歸檔日誌 |
db2 restore db qncenter from /home/db2inst1 taken at <TS>
db2 rollforward database qncenter to end of logs and stop
|
| 離線全備,無歸檔日誌 |
db2 restore db qncenter from /home/db2inst1 taken at <TS> without rolling forward
|
| 僅離線全備(無增量/日誌) |
db2 backup db qncenter to /home/db2inst1/
db2 restore db qncenter from /home/db2inst1 taken at <TS> without rolling forward
|
六、關鍵運維提醒
- 備份腳本輸出重定向至帶日期的日誌文件,便於事後審計;
- 定期校驗
db2ckrst 建議與實際恢復步驟一致性;
- 歸檔日誌目錄磁盤空間監控,防止寫滿導致數據庫掛起;
- 異地備份驗證:每月至少一次從異地拉取備份演練恢復。