2016-03-03 46 views
0

我試圖從另一個數據庫(也是DB2)將DB2數據庫恢復到備份。恢復似乎運行良好。但是,我收到錯誤:不允許訪問表空間。我檢查了表空間的狀態,它們被卡在Restore Pending中。我如何讓他們處於正確的狀態?如果這是不可能的,還有其他建議嗎?順便說一句,我正在Windows環境中工作,並使用Data Studio進行恢復。DB2 - 不允許訪問表空間

+0

什麼是DB2版本?你在使用自動存儲嗎?如果沒有,目標和源的表空間容器路徑是否相同? – mustaccio

+0

你做了完整的數據庫還原還是表空間還原?偶然你做了一個數據「加載」操作?查看更多信息:https://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.5.0/com.ibm.db2.luw.admin.dm.doc/doc/c0051301.html – smoore4

+0

我正在使用自動存儲,完全恢復,無數據加載操作,表空間路徑不同。 –

回答

0

所以你試圖做一個所謂的重定向恢復,因爲它似乎(使用恢復命令中的選項重定向) - 對嗎?這意味着您有機會在恢復過程中重新定義路徑。

還原ist的三個基本部分分裂:

  1. 恢復正在讀取數據並停止
  2. 讓你重新定義的路徑
  3. 恢復將完成寫入數據恢復到新的位置

在步驟2中,您將看到表空間在還原啓動但尚未完成時處於還原狀態。 支持你在步驟2中,我建議使用

restore... redirect generate script <scriptname> 

,這將給你所有可能/必要的命令的腳本。

退房 http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.ha.doc/doc/c0006249.html?lang=en

記住事後檢查數據庫狀態,你可能想/需要做rollfowrds操作爲好。

表空間的狀態檢查出以下網站 http://www.ibm.com/developerworks/data/library/techarticle/dm-0407melnyk/#rp

0

既然你在使用自動存儲,則需要重新定義的目標不同的存儲組的路徑。恐怕我不能說在Data Studio中它是如何完成的,但是應該有一種方法可以通過GUI完成。

在命令行中,您需要沿着這些線做些事情。首先,確定需要重新定義的存儲組,例如通過運行db2pd -d yourdb -storagegroups。結果如下所示:

Storage Group Configuration: 
Address   SGID Default DataTag Name 
0x00007F239319BB20 0  Yes  0   IBMSTOGROUP 

Storage Group Statistics: 
Address   SGID State  Numpaths NumDropPen 
0x00007F239319BB20 0  0x00000000 1   0   

Storage Group Paths: 
Address   SGID PathID PathState PathName 
0x00007F23931C1000 0  0   InUse  /export/db2data 

請注意在目標系統上存在無效路徑的存儲組名稱。現在

就可以開始恢復:

db2 restore db yourdb from <path> redirect 

該命令將快速完成。在這一點上,你將能夠重新定義存儲組:

db2 set stogroup paths for <your_stogroup> on '<new_path>' 

一旦你做到了這一點,繼續恢復:

db2 restore db yourdb continue 

完成這一關前滾如果需要的話。

相關問題