db2備份恢復(backup restore)
1. 備份恢復
1.1. 備份策略
備份架構: LAN-Free 備份
備份方式:利用 NBU 直接備份到虛擬帶庫,然後透過 Vault 將備份資料儲存到磁帶庫
備份週期:以周為備份週期,每週六,週三全備,其他每天增量備份
儲存週期:虛擬帶庫儲存 1 個月,磁帶庫上儲存 3 個月。
備份內容:資料庫 + 歸檔日誌 + 配置引數
1) 資料庫週六晚 21:00 開始做全備份,週三,週六做增量備份。
db2 update db cfg for JGEMLCDB using trackmod o n (引數修改及確認,增量備份需要 trackmod 為 on )
db2 BACKUP DATABASE $MY_DB2 online $MY_SCHED LOAD $MY_LIB OPEN 4 SESSIONS BUFFER 1024
2 )歸檔日誌 4 小時備份一次,經過溝通,把歸檔日誌使用檔案的方式進行差異化備份,作業系統保留三天的歸檔日誌。
3 ) NBU 全備份及增量備份指令碼內容如下:
MY_DB2=JGEMLCDB
MY_LIB=/usr/openv/netbackup/bin/nbdb2.sl64
MY_SCHED 取變數判斷如下
if [ "$DB2_FULL" = "1" ] ; then
MY_SCHED=""
elif [ "$DB2_CINC" = "1" ] ; then
MY_SCHED="INCREMENTAL"
elif [ "$DB2_INCR" = "1" ] ; then
MY_SCHED="INCREMENTAL DELTA"
else
MY_SCHED=""
fi
NBU 備份指令碼中的備份語句
CMD_LINE="db2 BACKUP DATABASE $MY_DB2 online $MY_SCHED LOAD $MY_LIB OPEN 4 SESSIONS BUFFER 1024"
4 )實施過程:
在做 NBU 備份前,需要進行本地磁碟的離線全庫備份,否則 NBU 實施過程中會報 SQL1035N 錯誤,如下
SQL1035N The operation failed because the specified database cannot be
connected to in the mode requested. SQLSTATE=57019
本地磁碟備份,在應用不斷開情況下,實驗指令碼執行如下命令(避免應用自動連線導致最後一句執行失敗)
db2 connect reset
db2 force application all
db2 DEACTIVATE DATABASE JGEMLCDB
db2 backup db JGEMLCDB to /db2data
以上成功之後,再做 onling 備份
db2 backup db JGEMLCDB online to /db2data
然後透過 NBU 進行備份
5 )歸檔日誌備份刪除
i )透過 NBU 備份刪除,需要修改引數, logarchmeth1 ,以 vendor 方式歸檔到磁帶中,進行備份刪除管理,但是本地磁碟 /db2arclog/ 看不到歸檔日誌
db2 update db cfg for JGEMLCDB using logarchmeth1 vendor:/usr/openv/netbackup/bin/nbdb2.sl64
ii )經過溝通,歸檔日誌放在本地磁碟,透過 NBU 使用檔案的方式進行差異化備份,作業系統保留三天的歸檔日誌。
修改引數
db2 update db cfg for mtrdb using logarchmeth1 Disk:db2arclog/
手工歸檔到本地磁碟,進行確認產生歸檔日誌
db2 archive log for db JGEMLCDB
建立刪除的指令碼及任務計劃(在 member0 , member1 都操作)
刪除 3 天前的歸檔日誌
mkdir /home/db2sdin1/scripts
cd /home/db2sdin1/scripts
vi /home/db2sdin1/scripts/archlog_delete.sh
#!/bin/sh
find /db2arclog/db2sdin1/JGEMLCDB/NODE0000/LOGSTREAM0000/C0000001 -name "*.LOG" -type f -mtime +3 -exec rm {} \;
find /db2arclog/db2sdin1/JGEMLCDB/NODE0000/LOGSTREAM0001/C0000001 -name "*.LOG" -type f -mtime +3 -exec rm {} \;
crontab -e
10.49.2.10
#0 21 * * * sh /home/db2sdin1/scripts/archlog_delete.sh
10.49.2.20
0 21 * * * sh /home/db2sdin1/scripts/archlog_delete.sh
1.2. 恢復策略
優先採用備份介質恢復,這事最方便的方式。其次,在出現重大災難的時候,考慮從 HADR 備庫接管,這種方式有一定風險。
需要 確保 資料庫引數trackmod 設定為 on ,在備份軟體裡面設定 2 個排程策略。
Db2 分三種恢復方式,如下:
恢復型別:
DB2 考慮到了下列恢復型別:
崩潰恢復。這種型別的恢復透過撤銷(回滾)未提交的事務來防止資料庫處於不一致狀態。 請再次考慮上一頁中的示例。如果在 COMMIT 語句之前發生電源故障, 那麼下一次 DB2 重新啟動,再訪問該資料庫時, DB2 將先回滾( ROLLBACK ) INSERT 語句, 然後回滾( ROLLBACK ) DELETE 語句。(注:回滾語句的順序與最初執行時的順序相反。)
版本恢復。這種型別的恢復透過使用從 BACKUP 命令獲取的備份映像來恢復先前的資料庫版本。 恢復的資料庫將包含在執行 BACKUP 命令時所處狀態的資訊。 如果在執行備份之後針對資料庫執行進一步操作,那麼該資訊將丟失。
前滾恢復。這種型別的恢復透過使用完全資料庫備份,結合日誌檔案來擴充套件版本恢復。 必須先恢復備份以用作基線;然後在該備份之上應用日誌。 該過程會將資料庫或表空間恢復到某個特定時間點。前滾恢復要求啟用歸檔日誌記錄 。我們將在本教程的稍後部分中討論歸檔日誌記
以上第一種崩潰恢復是重啟 db2 之後,例項內部操作,無需人工干預。人工考慮需要的恢復通常是後兩種恢復方式,這兩種對應完全恢復和不完全恢復。
恢復步驟:
1. 先 restore 備份 + 歸檔日誌,其中 logtarget 指定恢復出來的歸檔日誌存放地方
db2 "restore database mtrmlc from /data/backup taken at 201 6 0331234149 logtarget /data/backup/logs”
1. 然後考慮如下三種恢復級別
1) 最大程度的恢復,即 restore 全備份 + 增量備份 + 歸檔日誌 + 遍歷所有歸檔及線上日誌 Rollforward 指定 to end of logs and complete
1) 基於一部分損失的恢復,指定到相應時間,這個時間應該大於備份結尾,小於最大程度的恢復,否則報錯, to time using local time ,如下:
db2 "rollforward DATABASE test to 20140828110021.000000 using local time"
2) 最小程度的恢復,即恢復到備份結束的時間點
Rollforward 指定 to end of backup and stop
1.3. 備份恢復示例
從備份介質恢復:全備 + 前滾日誌
例如:
1) 資料庫備份時必須要加上 online 和 include logs 選項
db2 backup database mtrmlc online to /data/backup include logs
1) 資料庫恢復:
db2 "restore database mtrmlc from /data/backup taken at 201 6 0331234149 logtarget /data/backup/logs”
2) 恢復日誌:
db2 "rollforward database JGEMLCDB to end of logs and complete overflow log path (/data/backup/logs)"
4 )在測試環境進行 NBU 備份恢復測試工作
i) 透過 NBU 呼叫備份
ii) 進行恢復,恢復語句透過 load 指定呼叫帶庫
db2 restore db mtrdb load /usr/openv/netbackup/bin/nbdb2.sl64
db2 rollforward db mtrdb to end of logs and complete
5 )在測試環境進行本地磁碟的備份恢復測試
db2 backup db mtrdb to /db2back
db2 restore db mtrdb from /db2back taken at 20160309174736
db2 "rollforward database mtrdb to end of logs and complete"
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25846553/viewspace-2769135/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份恢復統計資訊 backup and restore statsREST
- DB2備份與恢復DB2
- [DB2]DB2備份和恢復DB2
- DB2線上備份與恢復DB2
- DB2備份恢復測試DB2
- DBMS_BACKUP_RESTORE.DBMS_BACKUP_RESTORE用於特殊情況下的恢復REST
- 如何恢復Hyper Backup備份的資料
- oracle scn與備份恢復backup recovery(一)Oracle
- Backup And Recovery User's Guide-備份和恢復概覽-備份和恢復介紹-備份和恢復的目的GUIIDE
- db2 命令列備份和恢復DB2命令列
- 由某公司案例進一步掌握rman備份與恢復backup restore recovery系列一REST
- Backup And Recovery User's Guide-備份和恢復介紹-備份恢復文件RoadmapGUIIDE
- db2備份和恢復資料庫DB2資料庫
- 如何從Active Backup for Business備份中恢復檔案
- Oracle備份與恢復系列(三)alter tablspace begin backupOracle
- Backup And Recovery User's Guide-備份和恢復介紹-Oracle備份和恢復解決方案GUIIDEOracle
- 刪除表空間,有rman全備的恢復(使用dbms_backup_restore來進行恢復)REST
- DB2的資料庫備份與恢復DB2資料庫
- DB2資料庫的備份和恢復DB2資料庫
- DB2 使用表空間備份恢復庫DB2
- 【備份恢復】從備份恢復資料庫資料庫
- 【管理篇備份恢復】備份恢復基礎
- 用restore archivelog從備份集中恢復歸檔日誌RESTHive
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- 使用dbms_backup_restore進行資料庫恢復REST資料庫
- Backup And Recovery User's Guide-備份和恢復介紹-備份和恢復的目的-資料傳輸GUIIDE
- Backup And Recovery User's Guide-備份和恢復介紹-備份和恢復的目的-資料儲存GUIIDE
- Backup And Recovery User's Guide-備份和恢復介紹-備份和恢復的目的-資料保護GUIIDE
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- 備份與恢復--利用備份的控制檔案恢復
- 運用incremental backup(增量備份)恢復歸檔GAP的DGREM
- rman backup recovery備份恢復效能優化tuning方法二優化
- DBMS_BACKUP_RESTORE用於特殊情況下的恢復REST
- oracle,db2,mysql類比之九備份與恢復OracleDB2MySql
- Mysql備份恢復MySql
- Postgresql 備份恢復SQL
- redis備份恢復Redis
- mysql 備份恢復MySql