程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2增差量備份恢復詳盡演練

DB2增差量備份恢復詳盡演練

編輯:DB2教程

DB2分增量備份(Incremental Backup)和Delta備份(Delta Backup)兩種增量備份方式. 增量備份相當於Oracle中的差量備份,即做一次全備份後,其它每次增量,都備份自全量以來所有的變化. Delta備份相當於Oracle中的增量備份,每次增量只備份前一次備份以來的增量部份. 我下面附了一個詳細的增量備份例子在下面. Delta備份與之類似, 如要測試,只需將備份命令中的"incremental"變為"incremental delta "即可. 至於Delta備份的手工單步恢復要參考db2ckrst命令的順序. -- $ db2level DB21085I Instance "db2inst1" uses "64" bits and DB2 code release "SQL09010" with level identifier "02010107". Informational tokens are "DB2 v9.1.0.0", "s060629", "AIX64", and Fix Pack "0". Product is installed at "/opt/db2_09_01". su - db2inst1 cd /home/db2inst1/ mkdir db2bk1 db2bk2 db2logs -- --啟用用戶出口  db2 update db cfg for xcldb using userexit on --啟用歸檔日志 db2 update db cfg for xcldb using logretain on -- 啟用增量備份功能  db2 update db cfg for xcldb using trackmod on --做一次脫機備份 db2 backup db xcldb to /home/db2inst1/db2bk1

如何創建測試庫可以看: DB2手工創建庫

增量備份測試計劃 第一次備份 db2 connect to xcldb -- db2 "drop table t_x01" -- db2 "drop table t_x02" db2 "create table t_x01 like syscat.tables" db2 connect reset -- 全備份一次,以後的增量都基於此全備 20131216230354 db2 backup db xcldb online to /home/db2inst1/db2bk2 include logs 第二次備份 db2 connect to xcldb db2 "insert into t_x01 select * from syscat.tables" db2 "select count(*) from t_x01" db2 connect reset -- 備份包含日志,庫備完後,記得手工把日志備份一下 20131216230432 db2 backup db xcldb online incremental to /home/db2inst1/db2bk2 include logs 第三次備份 --再次修改數據 db2 connect to xcldb db2 "create table t_x02 like syscat.tables" db2 "insert into t_x02 select * from syscat.tables" db2 "select count(*) from t_x02" db2 connect reset -- 備份包含日志 20131216230506 db2 backup db xcldb online incremental to /home/db2inst1/db2bk2 include logs 第四次備份 --把t_x01表刪除 db2 connect to xcldb db2 "drop table t_x01" db2 connect reset -- 20131216230624 db2 backup db xcldb online incremental to /home/db2inst1/db2bk2 include logs -- --

查看備份文件 [db2inst1@O11g64 ~]$ ls -l /home/db2inst1/db2bk2/ total 134648 -rw-r-----. 1 db2inst1 db2iadm1 55795712 Dec 16 23:03 XCLDB.0.db2inst1.NODE0000.CATN0000.20131216230354.001 -rw-r-----. 1 db2inst1 db2iadm1 9863168 Dec 16 23:04 XCLDB.0.db2inst1.NODE0000.CATN0000.20131216230432.001 -rw-r-----. 1 db2inst1 db2iadm1 36110336 Dec 16 23:05 XCLDB.0.db2inst1.NODE0000.CATN0000.20131216230506.001 -rw-r-----. 1 db2inst1 db2iadm1 36110336 Dec 16 23:06 XCLDB.0.db2inst1.NODE0000.CATN0000.20131216230624.001 --查看備份歷史 db2 list history backup all for xcldb --得到恢復順序 db2ckrst -d xcldb -t 20131216230506 -r database -- -- --

刪除庫 db2 drop db xcldb -- --

恢復庫: 恢復第三次備份時的數據庫 恢復庫方法一: db2 restore database xcldb incremental automatic from /home/db2inst1/db2bk2 taken at 20131216230506 logtarget /home/db2inst1/db2logs 恢復庫方法二: ls /home/db2inst1/db2bk2 db2 "restore db xcldb incremental from /home/db2inst1/db2bk2 taken at 20131216230506 " db2 "restore db xcldb incremental from /home/db2inst1/db2bk2 taken at 20131216230354 " db2 "restore db xcldb incremental from /home/db2inst1/db2bk2 taken at 20131216230506 logtarget /home/db2inst1/db2logs " 檢查恢復情況: --查看日志日否已恢復 ls /home/db2inst1/db2logs --查看數據庫狀態及所需日志 db2 rollforward db xcldb query status 前滾方法一: --得到日志目錄 db2 get db cfg for xcldb -- Path to log files  /home/db2inst1/db2inst1/NODE0000/SQL00002/SQLOGDIR/ --得到指定目錄 cp /home/db2inst1/db2logs/* /home/db2inst1/db2inst1/NODE0000/SQL00002/SQLOGDIR/ ls /home/db2inst1/db2inst1/NODE0000/SQL00002/SQLOGDIR/ --前滾 */ db2 "rollforward db xcldb to end of logs and complete" 前滾方法二: 不復制日志,直接指定目錄後完成前滾 db2 "rollforward db xcldb to end of logs and complete overflow log path ('/home/db2inst1/db2logs')" -- 檢查成果: 因為是恢復的第三次備份,所以兩個表應當都有記錄 db2 connect to xcldb db2 "select count(*) from t_x01" db2 "select count(*) from t_x02" db2 connect rest -- 至此備份恢復完成.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved