以下的文章主要向大家描述的是DB2 備份與跨平台遷移的正確操作步驟,如果你對DB2 備份與跨平台遷移的正確操作步驟心存好奇的話,以下的文章將會揭開它的神秘面紗,以下就是文章的詳細內容介紹,望大家借鑒。
數據庫, 備份, DB2, 遷移跨平台, 遷移
首先設置歸檔參數
Java代碼
- 1. db2 update db cfg for using mirrorlogpath /home/db2inst1/mirror_log/ //mirror log
- 2. db2 get db cfg for //確認是否成功
- 3. db2 update db cfg for using userexit on //啟用用戶出口
- 4. db2 update db cfg for using logretain on //啟用歸檔日志
- 5. db2 update db cfg for using trackmod on //啟用增量備份功能
- 6. db2stop force
- 7. db2start
- 8. db2 backup db to /home/db2inst1/off_back //
- db2 update db cfg for using mirrorlogpath /home/db2inst1/mirror_log/ //mirror log
- db2 get db cfg for //確認是否成功
- db2 update db cfg for using userexit on //啟用用戶出口
- db2 update db cfg for using logretain on //啟用歸檔日志
- db2 update db cfg for using trackmod on //啟用增量備份功能
- db2stop force
- db2start
- db2 backup db to /home/db2inst1/off_back //
DB2 備份在線數據庫
Java代碼
- 1. db2 backup db online to /home/db2inst1/on_back/ //在線備份
- 2. db2 backup db online incremental to /home/db2inst1/on_back/ //在線做增量備份
- 3. db2 list history backup all for //查看備份記錄
- 4. db2 get db cfg for //查看log所在位置,cp到一個安全目錄,供rollforward使用。
- 5. db2stop force;db2start;db2 drop db //手工drop數據庫,模擬災難恢復的情況
- db2 backup db online to /home/db2inst1/on_back/ //在線備份
- db2 backup db online incremental to /home/db2inst1/on_back/ //在線做增量備份
- db2 list history backup all for //查看備份記錄
- db2 get db cfg for //查看log所在位置,cp到一個安全目錄,供rollforward使用。
- db2stop force;db2start;db2 drop db //手工drop數據庫,模擬災難恢復的情況
恢復在線數據庫
Db2代碼
- 1. db2ckrst -d -t 20070608032820 -r database //幫助工具提示恢復
- 2. db2 restore db incremental from /home/db2inst1/on_back taken at 20070608032820 //恢復數據文件
- 3. 先恢復完全備份,然後在恢復增量備份,不能自動尋找完全備份文件。
- 4. db2 rollforward database to end of logs and complete overflow log path '(/home/db2inst1/log)' //前滾日志有一點不認同:“先恢復完全備份,然後在恢復增量備份”
- 5. 對於增量恢復,你的做法正好反了,你這樣做的話,會收到SQL2574N的錯誤信息。
- 6. 在db2ckrst裡面已經清楚的告訴你恢復的順序。
- 7. 下面是測試備份鏡像中包日志的備份和恢復的步驟:
- 8. 注:/home/db2inst1/on_back/ #為備份文件位置
- 9. /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #為數據庫的log位置,通過db2 get db cfg for 得到。
- 10. db2stop force;db2start;db2 drop db #模仿災難發上,drop數據庫。
- 11. db2 backup db online to /home/db2inst1/on_back/ include logs #備份帶日志的鏡像文件
- 12. db2 backup db online incremental to /home/db2inst1/on_back/ include logs #備份帶日志的增量鏡像文件
- 13. db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢復時間戳在20070612070526的數據鏡像和日志文件
- 14. db2 rollforward database to end of logs and complete //回滾log日志
- 15. 在“10”中已把數據庫drop了,“20”中如何做online backup呢?
- 16. 注:/home/db2inst1/on_back/ #為備份文件位置
- 17. /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #為數據庫的log位置,通過db2 get db cfg for 得到。
- 18. db2 backup db online to /home/db2inst1/on_back/ include logs #備份帶日志的鏡像文件
- 19. db2 backup db online incremental to /home/db2inst1/on_back/ include logs #備份帶日志的增量鏡像文件
- 20. db2stop force;db2start;db2 drop db #模仿災難發上,drop數據庫。
- 21. db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢復時間戳在20070612070526的數據鏡像和日志文件
- 22. db2 rollforward database to end of logs and complete //回滾log日志
- db2ckrst -d -t 20070608032820 -r database //幫助工具提示恢復
- db2 restore db incremental from /home/db2inst1/on_back taken at 20070608032820 //恢復數據文件
- 先恢復完全備份,然後在恢復增量備份,不能自動尋找完全備份文件。
- db2 rollforward database to end of logs and complete overflow log path '(/home/db2inst1/log)' //前滾日志有一點不認同:“先恢復完全備份,然後在恢復增量備份”
- 對於增量恢復,你的做法正好反了,你這樣做的話,會收到SQL2574N的錯誤信息。
- 在db2ckrst裡面已經清楚的告訴你恢復的順序。
- 下面是測試備份鏡像中包日志的備份和恢復的步驟:
- 注:/home/db2inst1/on_back/ #為備份文件位置
- /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #為數據庫的log位置,通過db2 get db cfg for 得到。
- db2stop force;db2start;db2 drop db #模仿災難發上,drop數據庫。
- db2 backup db online to /home/db2inst1/on_back/ include logs #備份帶日志的鏡像文件
- db2 backup db online incremental to /home/db2inst1/on_back/ include logs #備份帶日志的增量鏡像文件
- db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢復時間戳在20070612070526的數據鏡像和日志文件
- db2 rollforward database to end of logs and complete //回滾log日志
- 在“10”中已把數據庫drop了,“20”中如何做online backup呢?
- 注:/home/db2inst1/on_back/ #為備份文件位置
- /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #為數據庫的log位置,通過db2 get db cfg for 得到。
- db2 backup db online to /home/db2inst1/on_back/ include logs #備份帶日志的鏡像文件
- db2 backup db online incremental to /home/db2inst1/on_back/ include logs #備份帶日志的增量鏡像文件
- db2stop force;db2start;db2 drop db #模仿災難發上,drop數據庫。
- db2 RESTORE db incremental automatic FROM /home/db2inst1/on_back/ taken at 20070612070526 LOGTARGET /home/db2inst1/db2inst1/NODE0000/SQL00001/SQLOGDIR/ #恢復時間戳在20070612070526的數據鏡像和日志文件
- db2 rollforward database to end of logs and complete //回滾log日志
以上為DB2備份方式
以下介紹一下跨平台遷移DB2
源數據庫AIX平台+DB2 目標平台LINUX
首先在源庫導出庫結構。
Db2代碼
- 1. db2look -d dbname -e -o db2look.sql
- db2look -d dbname -e -o db2look.sql
然後導出源數據庫DB2數據
Db2代碼
- 1. db2move dbname export –u user –p password
- db2move dbname export –u user –p password
其中db2move.lst記錄所有導出的文件,可以進行編輯從而決定導入哪些數據表
然後在目標linux主機上建立DB2的新庫,導入結構及數據、
Db2代碼
- 1. db2 -tvf db2look.sql
- 2. db2move dbname import
以上的相關內容就是對DB2 備份及跨平台遷移的介紹,望你能有所收獲。