程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2表空間重定向恢復數據庫實戰

DB2表空間重定向恢復數據庫實戰

編輯:DB2教程

DB2的備份恢復有點坑,當源系統和目標系統的路徑設置不同時,要手動進行重定向恢復,本文是我一次實戰操作之後總結的過程,僅供參考。

一、發出重定向恢復命令

DB2 RESTORE DB OLDDB FROM "C:\OLDDBbak" TAKEN AT 20150717164847 TO "C:" INTO NEWDB REDIRECT

其中,OLDDB是舊數據庫、備份的數據庫名稱,NEWDB是新數據庫名稱,不用事先創建也可以,C:\OLDDBbak是備份文件放置的目錄,20150717164847是

備份文件的時間戳,具體可看備份文件的名字OLDDB.0.DB2.NODE0000.CATN0000.20150717164847.001,TO "C:"是新數據庫的路徑,REDIRECT是進行重定向恢復。

二、重定向表空間

2.1列出表空間

DB2 LIST TABLESPACES

可以看到當前數據庫的表空間狀況

表空間標識 = 2

名稱 = SYSTOOLSTMPSPACE

類型 = 系統管理空間

內容 = 用戶臨時數據

狀態 = 0x2000100

詳細解釋:

復原暫掛

可以定義存儲器

表空間標識 = 3

名稱 = TBS_01

類型 = 數據庫管理空間

內容 = 所有持久數據。大型表空間。

狀態 = 0x2001100

詳細解釋:

復原暫掛

必須定義存儲器

可以定義存儲器

可以看到表空間3是“必須定義存儲器”狀態,這就要進行重定向了。

2.2查看要進行重定向的表空間詳細信息

DB2 LIST TABLESPACE CONTAINERS FOR 3 SHOW DETAIL

結果如下

表空間 3 的表空間容器

容器標識 = 0

名稱 = E:\OLDDB\TBS\CONTAINER_01_01

類型 = 文件

總計頁數 = 25600

可用頁數 = 25568

可訪問 = 否

容器標識 = 1

名稱 = E:\OLDDB\TBS\CONTAINER_01_02

類型 = 文件

總計頁數 = 25600

可用頁數 = 25568

可訪問 = 否

可以看到,這個表空間的路徑在目標系統是不可訪問的,要進行重定向。

2.3進行重定向

這個表空間有兩個容器,可以分別重定向

DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "C:\NEWDB\TBS\CONTAINER_01_01" 25600,FILE "C:\NEWDB\TBS\CONTAINER_01_02" 25600)

也可以合並重定向

DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "C:\NEWDB\TBS\CONTAINER_01" 51200)

頁大小要大於等於原大小

這是數據庫管理空間類型的重定向,如果是系統管理空間類型的,命令如下:

DB2 SET TABLESPACE CONTAINERS FOR 10 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_04")

可能有很多個表空間要進行重定向,按實際環境,最後要執行的命令類似如下:

DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "C:\NEWDB\TBS\CONTAINER_01_01" 25600,FILE "C:\NEWDB\TBS\CONTAINER_01_02" 25600)

DB2 SET TABLESPACE CONTAINERS FOR 4 USING (FILE "C:\NEWDB\TBS\CONTAINER_02" 25600)

DB2 SET TABLESPACE CONTAINERS FOR 5 USING (FILE "C:\NEWDB\TBS\CONTAINER_03" 51200)

DB2 SET TABLESPACE CONTAINERS FOR 6 USING (FILE "C:\NEWDB\TBS\CONTAINER_04" 64000)

DB2 SET TABLESPACE CONTAINERS FOR 7 USING (FILE "C:\NEWDB\TBS\CONTAINER_05" 153600)

DB2 SET TABLESPACE CONTAINERS FOR 8 USING (FILE "C:\NEWDB\TBS\CONTAINER_06" 51200)

DB2 SET TABLESPACE CONTAINERS FOR 9 USING (FILE "C:\NEWDB\TBS\CONTAINER_07" 25600)

DB2 SET TABLESPACE CONTAINERS FOR 10 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_04")

DB2 SET TABLESPACE CONTAINERS FOR 11 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_08")

DB2 SET TABLESPACE CONTAINERS FOR 12 USING (PATH "C:\NEWDB\TBS\TBS_USERTMP_04")

DB2 SET TABLESPACE CONTAINERS FOR 13 USING (PATH "C:\NEWDB\TBS\TBS_USERTMP_08")

最後重新執行2.1步驟檢查看還有沒“必須定義存儲器”的表空間

三、完成重定向恢復

DB2 RESTORE DB OLDDB CONTINUE

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved