首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 Online 備份完整方案:參數配置、腳本化、歸檔日誌與恢復矩陣

     編輯:DB2 教學

一、數據庫參數預配置(啟用在線備份前置條件)

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)定制與編譯

  1. 複製樣例:cp /home/db2inst1/sqllib/samples/c/db2uext2.c /home/db2inst1/sqllib/adm/db2uext2.c
  2. 修改關鍵宏定義:
    #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
  3. 編譯: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 建議與實際恢復步驟一致性;
  • 歸檔日誌目錄磁盤空間監控,防止寫滿導致數據庫掛起;
  • 異地備份驗證:每月至少一次從異地拉取備份演練恢復。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved