本篇內容介紹了“DB2數據庫怎么利用備份實現異機還原”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
創新互聯公司專注于興賓企業網站建設,響應式網站設計,成都做商城網站。興賓網站建設公司,為興賓等地區提供建站服務。全流程定制網站制作,專業設計,全程項目跟蹤,創新互聯公司專業和態度為您提供的服務
一生產的DB2數據庫需要將其數據全部備份,然后還原導入到一測試庫中,中間遇到一些問題,最后還是圓滿解決了,現將步驟記錄下來方便學習和分析。
系統環境:AIX5.3
數據庫: DB2 V9.1
兩臺服務器: 生產服務器 192.168.11.178
測試服務器 10.10.11.81
一、備份
分別備份一下生產服務器和測試服務器的數據庫(兩個服務器上數據庫一樣)
$ db2 backup db LAW online to /basefsnew/db2bak0111 include logs #生產
備份成功。此備份映像的時間戳記是:20130111180236
$ db2 backup db LAW online to /basefs/db2bak0111 include logs #測試
備份成功。此備份映像的時間戳記是:20130111190381
二、將生產庫的備份傳送到測試服務器
大家可以利用SCP命令或其他文件傳輸軟件來傳送備份,這里提醒一下傳過來的備份需要改屬主和屬組還有權限,否則將導致還原時出錯
三、具體還原過程和問題解決
$ db2 force applications all (先停止所有應用連接)
DB20000I The FORCE APPLICATION command completed successfully.
DB21024I This command is asynchronous and may not be effective immediately.
在測試服務器上開始還原
$ db2 restore db LAW from /home taken at 20130111180236
SQL2539W Warning! Restoring to an existing database that is the same as the backup p_w_picpath database. The database files will be deleted.
Do you want to continue ? (y/n) y
DB20000I The RESTORE DATABASE command completed successfully.
還原成功
但隨后連接數據庫時報錯
$ db2 connect to LAW
SQL1117N A connection to or activation of database "LAW" cannot be made
because of ROLL-FORWARD PENDING. SQLSTATE=57019
這個提示是說需要前滾期間的日志才能激活數據庫
下面執行此句進行前滾
$ db2 rollforward db LAW to end of logs and complete
SQL4970N Roll-forward recovery on database "LAW" cannot reach the specified
stop point (end-of-log or point-in-time) because of missing log file(s) on
node(s) "0".
提示缺失日志,不能到達結束點
注:比較順利一次成功時,是這個狀態
$db2 rollforward db LAW to end of logs and complete
Rollforward Status
Input database alias = db
Number of nodes have returned status = 1
Node number = 0
Rollforward status = not pending
Next log file to be read =
Log files processed = -
Last committed transaction = 2013-1-11-10.59.23.000000
DB20000I The ROLLFORWARD command completed successfully.
下面通過這個命令看一下數據庫的狀態和提示
$ db2 rollforward db LAW query status
Rollforward Status
Input database alias = LAW
Number of nodes have returned status = 1
Node number = 0
Rollforward status = DB working
Next log file to be read = S0003169.LOG
Log files processed = -
Last committed transaction = 2012-08-24-12.02.32.000000
通過這個命令,我們發現提示下一個日志為S0003169.LOG,
需要找到這個文件所在的路徑,將生產服務器上從備份時間點后的日志全部同步或拷貝到測試服務器。
找到生產服務器上DB2日志,目錄為/home/db2logs/db2inst2/LAW/NODE0000/C0000004
將此目錄下從做備份的那個時間點后的日志全部拷貝放到測試服務器的相應目錄(可以放到庫備份的那個目錄)下,同時注意修改日志文件的屬主、屬組和權限,防止權限不一致問題。
# chown db2inst1:db2iadm1 S0003170.LOG
# chown db2inst1:db2iadm1 S0003171.LOG
# chown db2inst1:db2iadm1 S0003172.LOG
# chown db2inst1:db2iadm1 S0003173.LOG
# chown db2inst1:db2iadm1 S0003174.LOG
# chown db2inst1:db2iadm1 S0003175.LOG
# chown db2inst1:db2iadm1 S0003176.LOG
#chmod 744 S0003170.LOG
#chmod 744 S0003171.LOG
#chmod 744 S0003172.LOG
#chmod 744 S0003173.LOG
#chmod 744 S0003174.LOG
#chmod 744 S0003175.LOG
#chmod 744 S0003176.LOG
用如下命令來前滾日志并停止日志的溢出,注意"("/home")"格式,指的是日志所在的路徑
$ db2 rollforward db LAW to end of logs and stop overflow log path "("/home")"
Rollforward Status
Input database alias = LAW
Number of nodes have returned status = 1
Node number = 0
Rollforward status = not pending
Next log file to be read =
Log files processed = S0003169.LOG - S0003176.LOG
Last committed transaction = 2013-01-14-21.04.00.000000
DB20000I The ROLLFORWARD command completed successfully.
最后連接數據庫,發現已成功了,經檢查數據一致。
$ db2 connect to LAW
Database Connection Information
Database server = DB2/6000 9.1
SQL authorization ID = DB2INST1
Local database alias = LAW
經開發和測試人員驗證,一切正常。
“DB2數據庫怎么利用備份實現異機還原”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!
標題名稱:DB2數據庫怎么利用備份實現異機還原
本文URL:http://m.newbst.com/article34/ggpspe.html
成都網站建設公司_創新互聯,為您提供動態網站、移動網站建設、標簽優化、營銷型網站建設、響應式網站、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯