Restore
還原離線備份後無法連接到 DB2 數據庫
這適用於 AIX 上的 DB2 9.7 Enterprise Server Edition。
我在性能環境中對我們實例中的多個數據庫進行了完整的離線備份。
我想將這些數據庫恢復到我們的集成環境中。
我執行了命令
db2 restore database database_name from /bkp/instance_name/OfflineBackups/RestorePoint/my_restore_point taken at 20120321103846 into database_name without prompting;
對於我的每個數據庫(當然適當地修改數據庫名稱和時間戳)。
每個數據庫都按照 DB2 成功恢復。但是,現在當我想檢查數據庫是否確實恢復了我的想法時,我嘗試連接到數據庫並收到錯誤
SQL1117N A connection to or activation of database "database_name" cannot be made because of ROLL-FORWARD PENDING. SQLSTATE=57019
我在以前的數據庫中沒有任何正在進行的事務,因為所有連接都被強制關閉並且數據庫已關閉以進行離線備份。我該怎麼辦?
在這裡找到了答案。
我需要執行命令
db2 rollforward db database_name to end of backup and complete;
這會將所有內容送出到日誌並將數據庫置於不再掛起的狀態,從而允許連接到它。我需要為每個恢復的數據庫執行此操作。
編輯:在參加DB2NightShow劇集時發現了這個漂亮的金塊。在 9.7 FP2 中,他們引入了一個名為 DB2_RESTORE_GRANT_ADMIN_AUTHORITY 的系統資料庫變數。如果您要將備份從一個實例恢復到另一個實例,這很方便,因為它會自動授予實例所有者 SECADM、DBADM、DATAACCESS 和 ACCESSCTRL 恢復的數據庫。在 9.7 FP5 中,設置是動態的,不需要實例的反彈。我意識到我最初的問題與安全性無關,但可以遇到並認為這將是一個方便的花絮。
**編輯#2:**我最近發現如果備份是基於歸檔日誌數據庫的離線備份,我可以
WITHOUT ROLLING FORWARD
在我的RESTORE
命令中包含該子句。這將使數據庫在成功還原後立即脫離前滾掛起狀態,這意味著我不必再發出ROLLFORWARD DB
命令。