【DB2 學習】在復原過程中重定義表空間
在備份資料庫的時候,備份的表空間使用的所有表空間容器都將儲存在一個記錄中。在復原過程中,備份中列出的所有表空間將被檢查是否可以訪問。如果因為其他的一些原因有一個或多個容器不可使用,復原將失敗。解決辦法是在復原過程中重新定向表空間容器。包括了新增,修改,刪除表空間的容器。
另外一種情況是在備份中所選列的容器在系統中並不存在,但使用者仍然需要在這些容器中復原。比如在備份之外的地方進行恢復,新的系統中可能沒有定義所需的容器 。解決辦法:在復原時重定向表空間容器到另外一個支援的容器。
db2 => create database product automatic storage no on 'd:\PRODUCT' user tablesp
ace managed by database using (file 'd:\PRODUCT\userdata.dat' 512)
SQL1052N 資料庫路徑 "D:\PRODUCT" 不存在。
SQL1052N 資料庫路徑 "" 不存在。--遇到的一個錯誤
說明:
該命令的 "
DB2_CREATE_DB_ON_PATHS 登錄檔變數被禁用時,指定了路徑(僅限於 Windows)。
在 Windows 或 UNIX 環境下的分割槽資料庫環境中,分割槽資料庫組中的每個節點都
必須有相同的硬碟驅動器規範(路徑)可用並且具有可用空間,才能成功執行
CREATE DATABASE 命令。硬碟驅動器路徑是在資料庫管理器配置中指定的。如果
DFTDBPATH 為空白,那麼預設值將是例項擁有的機器上安裝了 DB2 的硬碟驅動器路徑(即,db2 安裝路徑)。
無法處理該命令。
使用者響應:
用正確的資料庫路徑重新提交該命令。
在 Windows 或 UNIX 環境下的分割槽資料庫環境中,遵循下列步驟:
* 確定所需要的硬碟驅動器規範(路徑)。該路徑是在錯誤訊息中指定的。
* 確定資料庫分割槽的哪個節點遇到了問題。通常可以在例項擁有的節點的
db2diag.log 檔案中找到此資訊。
* 更正遇到問題的節點上的驅動器問題,或著更改資料庫管理器配置中的驅動器
規範,以使分割槽資料庫組的每個節點上都可以使用同一驅動器並且具有足夠的
空間。
* 重新發出該命令。
* 在 Windows 上,如果所有將訪問該資料庫的應用程式都基於版本 9 或更高版
本的外部 API,那麼可以啟用 DB2_CREATE_DB_ON_PATHS 環境變數以支援將路
徑作為資料庫路徑。
db2 => create database product
automatic storage no on 'd:\'
user tablespace managed by database
using (file 'd:\PRODUCT\userdata.dat' 512)
DB20000I CREATE DATABASE命令成功完成。
db2 => backup database product to "d:\backup"
備份成功。此備份映像的時間戳記是:20100921111126
db2 => restore database product from d:\backup into newprod redirect without rolling forward
SQL1277W 正在執行重定向復原操作。現在,可以檢視錶空間配置,並且不使用自動儲存器
的表空間可以重新配置它們的容器。
DB20000I RESTORE DATABASE命令成功完成。
db2 => list tablespaces
當前資料庫的表空間
表空間標識 = 0
名稱 = SYSCATSPACE
型別 = 系統管理空間
內容 = 所有持久資料。常規表空間。
狀態 = 0x2001100
詳細解釋:
復原暫掛
必須定義儲存器
可以定義儲存器
表空間標識 = 1
名稱 = TEMPSPACE1
型別 = 系統管理空間
內容 = 系統臨時資料
狀態 = 0x2001100
詳細解釋:
復原暫掛
必須定義儲存器
可以定義儲存器
表空間標識 = 2
名稱 = USERSPACE1
型別 = 資料庫管理空間
內容 = 所有持久資料。大型表空間。
狀態 = 0x2001100
詳細解釋:
復原暫掛
必須定義儲存器
可以定義儲存器
注意:上面提示所有的表空間都處於 必須定義儲存器 狀態。為了繼續進行,使用如下方式重定義容器。
db2 => set tablespace containers for 0 using (path "D:\newprod01")
DB20000I SET TABLESPACE CONTAINERS命令成功完成。
db2 => set tablespace containers for 1 using (path "D:\newprod02")
DB20000I SET TABLESPACE CONTAINERS命令成功完成。
db2 => set tablespace containers for 2 using (file "D:\newprod03\user.dat" 5120)
DB20000I SET TABLESPACE CONTAINERS命令成功完成。
完成了容器的重定義,進行重定向復原。
db2 => restore database product continue
DB20000I RESTORE DATABASE命令成功完成。
db2 => list tablespaces
當前資料庫的表空間
表空間標識 = 0
名稱 = SYSCATSPACE
型別 = 系統管理空間
內容 = 所有持久資料。常規表空間。
狀態 = 0x0000
詳細解釋:
正常
表空間標識 = 1
名稱 = TEMPSPACE1
型別 = 系統管理空間
內容 = 系統臨時資料
狀態 = 0x0000
詳細解釋:
正常
表空間標識 = 2
名稱 = USERSPACE1
型別 = 資料庫管理空間
內容 = 所有持久資料。大型表空間。
狀態 = 0x0000
詳細解釋:
正常
檢查表空間的狀態,重定向復原成功!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-674553/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DB2學習筆記 - 表空間DB2筆記
- db2表空間DB2
- DB2 使用表空間備份恢復庫DB2
- DB2表空間增加DB2
- 【DB2學習】檢視一個資料的表空間詳情DB2
- Oracle傳輸表空間學習Oracle
- db2檢視錶空間和增加表空間容量DB2
- db2 建立bufferpool,表空間DB2
- Oracle中重建表的線上重定義Oracle
- 在深度學習訓練過程中如何設定資料增強?深度學習
- [DB2]表空間之DMS、自動儲存的DMS表空間DB2
- undo表空間損壞的處理過程
- 還原表空間過大的解決方案
- DB2的REORG_學習(2)_表重組DB2
- 【DB2學習】顯示錶空間的容器資訊DB2
- 表空間管理之bigfile表空間設定
- 表在表空間中的儲存情況
- 有關UNDO表空間的學習:
- 在oracle 9i下線上重定義表Oracle
- oracle 表線上重定義Oracle
- oracle表線上重定義Oracle
- 【Oracle】線上重定義表Oracle
- Oracle 12.2 聯機重定義多個分割槽並將其移動到不同的表空間中Oracle
- Oracle RMAN 表空間恢復Oracle
- C++中過載、重寫、重定義的區別C++
- 如何學習Java? 在學習Java的過程中需要掌握哪些技能?Java
- DB2頁大小、表大小和表空間大小限制DB2
- DB2建立資料庫,建立表空間DB2資料庫
- 通過flashback database恢復被刪除的表空間Database
- 表在同一庫中不同表空間上轉移
- 學習筆記 過程、同義詞、序列筆記
- 【Oracle 恢復表空間】 實驗Oracle
- 恢復Oracle表空間的方法Oracle
- SYSAUX表空間管理及恢復UX
- 【原創】表空間相關操作
- 解決ora-01652無法通過128(在temp表空間中)擴充套件temp段的過程套件
- 解決ora-01652無法透過128(在temp表空間中)擴充套件temp段的過程套件
- Oracle一次縮小表空間的處理過程Oracle