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

IBM DB2 UDB 在線備份與恢復完美演習!

編輯:DB2教程

以下的文章主要描述的是IBM DB2 UDB 在線備份與恢復的實際操作,假如你在實際操作中遇到IBM DB2 UDB 在線備份與恢復,但是你卻不知道對其如何正確的操作,那麼以下的文章對你而言一定是良師益友。

IBM, DB2IBM, 實戰, UDB, 在線

為什麼要進行在線增量備份?

在線意味者備份的時候,允許其他的連接,而不用停掉數據庫

增量意味著,不需要每次備份一個超大的數據庫.

同時意味著你可以將數據庫恢復到崩潰前的狀態,而不是你最後一次備份時的狀態,最大可能的減少數據損失.

設置數據庫以支持在線增量備份

db2在線增量備份需要采用歸檔記錄類型,而不是循環記錄類型,而db2創建的數據庫缺省采用循環記錄類型,要設置歸檔記錄類型有兩種方法:

更改logretain為recovery或者on,

改改userexit為on

這樣db2的日志將不會循環使用,而是不斷增多,這樣才有可能進行增量備份,並將數據庫恢復到崩潰的時間點

db2增量備份需要設置tracemod為on,這樣數據庫將在物理頁上記錄更改的部分頁,做dirty標記

下面是一個腳本可以將testdb數據庫設置為支持在線備份:

  1. connect to testdb;  
  2. update db cfg using logretain on;  
  3. update db cfg using trackmod on;  
  4. db2stop force;  
  5. db2start; 

通常應該再設置mirrorlogpath以備份db2日志鏡像:

update db cfg using mirrologpath 你認為安全的路徑

如何進行在線備份?

backup db testdb online to 備份路徑(全備份)

backup db testdb online incremental to 備份路徑(增量備份)

backup db testdb online incremental delta to 備份路徑(delta備份)

恢復

假設我們要進行這樣一個任務:把lw數據庫的在線備份恢復到目標機器的F盤中,並且重命名為loanmgr.

1.獲得備份文件的詳細信息,做好文件准備

建立"F:\db2備份數據"文件夾,直接拷貝在線備份時自動生成的目錄結構和文件:

F:\db2備份數據\LW.0\DB2\NODE0000\CATN0000\20070308\085446.001

命令行執行

db2ckbkp -h F:\db2備份數據\LW.0\DB2\NODE0000\CATN0000\20070308\085446.001

得到結果中要注意紅色的部分,如果你手頭只有一個文件,那麼就按照紅色標示建立目錄結構和文件重命名

  1. The proper image path would be:  
  2. LW.0\DB2\NODE0000\CATN0000\20070308\085446.001 

2.准備還原lw數據庫到新數據庫loanmgr(loanmgr不要預先建立)

restore db lw from F:\db2備份數據 taken at 20070308085446 to f into loanmgr redirect

結果

SQL1277N 復原已檢測到一個或多個表空間容器不可存取,或者已將它們的狀態設置為“必

須定義存儲器”。

DB20000I RESTORE DATABASE 命令成功完成。

  1. set tablespace containers for 0 using (path 'e:\db2\ts0');  
  2. set tablespace containers for 1 using (path 'e:\db2\ts1'); 

3.建立tablespace 復制上面的命令,並改其中的紅色數字,直到執行到"表空間標識無效"之類的錯誤.就把表空間准備好了.

使用list tablespaces查看當前表空間狀況,檢驗一下.

開始恢復,這個過程才真正開始往表空間中寫入數據:

  1. restore db lw continue 

特別注意的是這裡寫的是源數據庫的名稱,而不是目標數據庫的名稱.結果:

DB20000I RESTORE DATABASE 命令成功完成。

4.前滾

執行

get db cfg for loanmgr

得到結果中注意:

日志文件路徑 = F:\DB2\NODE0000\SQL00001\SQLOGDIR\

溢出日志路徑 (OVERFLOWLOGPATH) =

鏡像日志路徑 (MIRRORLOGPATH) = e:\Db2MirrorLogPath\NODE0000\

第一活動日志文件 = S0001216.LOG

將日志文件群拷貝到紅色路徑中,這些日志應該包含S0001216.LOG之後的所有文件,接著

rollforward db testdb to end of logs and complete

全部完成..

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