DB2表空間重定向恢復(fù)數(shù)據(jù)庫實戰(zhàn)
DB2的備份恢復(fù)有點坑,當(dāng)源系統(tǒng)和目標(biāo)系統(tǒng)的路徑設(shè)置不同時,要手動進行重定向恢復(fù),本文是我一次實戰(zhàn)操作之后總結(jié)的過程,僅供參考。
一、發(fā)出重定向恢復(fù)命令
DB2 RESTORE DB OLDDB FROM "C:\OLDDBbak" TAKEN AT 20150717164847 TO "C:" INTO NEWDB REDIRECT
其中,OLDDB是舊數(shù)據(jù)庫、備份的數(shù)據(jù)庫名稱,NEWDB是新數(shù)據(jù)庫名稱,不用事先創(chuàng)建也可以,C:\OLDDBbak是備份文件放置的目錄,20150717164847是
備份文件的時間戳,具體可看備份文件的名字OLDDB.0.DB2.NODE0000.CATN0000.20150717164847.001,TO "C:"是新數(shù)據(jù)庫的路徑,REDIRECT是進行重定向恢復(fù)。
二、重定向表空間
2.1列出表空間
DB2 LIST TABLESPACES
可以看到當(dāng)前數(shù)據(jù)庫的表空間狀況
表空間標(biāo)識 = 2
名稱 = SYSTOOLSTMPSPACE
類型 = 系統(tǒng)管理空間
內(nèi)容 = 用戶臨時數(shù)據(jù)
狀態(tài) = 0x2000100
詳細(xì)解釋:
復(fù)原暫掛
可以定義存儲器
表空間標(biāo)識 = 3
名稱 = TBS_01
類型 = 數(shù)據(jù)庫管理空間
內(nèi)容 = 所有持久數(shù)據(jù)。大型表空間。
狀態(tài) = 0x2001100
詳細(xì)解釋:
復(fù)原暫掛
必須定義存儲器
可以定義存儲器
可以看到表空間3是“必須定義存儲器”狀態(tài),這就要進行重定向了。
2.2查看要進行重定向的表空間詳細(xì)信息
DB2 LIST TABLESPACE CONTAINERS FOR 3 SHOW DETAIL
結(jié)果如下
表空間 3 的表空間容器
容器標(biāo)識 = 0
名稱 = E:\OLDDB\TBS\CONTAINER_01_01
類型 = 文件
總計頁數(shù) = 25600
可用頁數(shù) = 25568
可訪問 = 否
容器標(biāo)識 = 1
名稱 = E:\OLDDB\TBS\CONTAINER_01_02
類型 = 文件
總計頁數(shù) = 25600
可用頁數(shù) = 25568
可訪問 = 否
可以看到,這個表空間的路徑在目標(biāo)系統(tǒng)是不可訪問的,要進行重定向。
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)
頁大小要大于等于原大小
這是數(shù)據(jù)庫管理空間類型的重定向,如果是系統(tǒng)管理空間類型的,命令如下:
DB2 SET TABLESPACE CONTAINERS FOR 10 USING (PATH "C:\NEWDB\TBS\TBS_SYSTEM_04")
可能有很多個表空間要進行重定向,按實際環(huán)境,***要執(zhí)行的命令類似如下:
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")
***重新執(zhí)行2.1步驟檢查看還有沒“必須定義存儲器”的表空間
三、完成重定向恢復(fù)
DB2 RESTORE DB OLDDB CONTINUE