傳統重導向恢復需手動輸入大量 SET TABLESPACE CONTAINERS 指令,操作繁瑕易出錯。DB2 9.1 推出 RESTORE ... REDIRECT GENERATE SCRIPT 功能,可從備份影像自動產生完整重導向恢復腳本,修改後直接執行即可完成遷移。
D:\Temp> db2 backup db sample to .
# 備份成功,時間戳記:20060626161457
D:\Temp> db2 restore db sample from . redirect generate script redirect.db2
DB20000I RESTORE DATABASE命令成功完成。
腳本分四段:
UPDATE COMMAND OPTIONS USING S ON Z ON SAMPLE_NODE0000.out V ON;
SET CLIENT ATTACH_DBPARTITIONNUM 0;
SET CLIENT CONNECT_DBPARTITIONNUM 0;
RESTORE DATABASE SAMPLE
FROM 'D:\Temp' TAKEN AT 20060626161457
ON 'C:' DBPATH ON '<目標目錄>' INTO SAMPLE
NEWLOGPATH 'C:\DB2\NODE0000\SQL00002\SQLOGDIR\'
WITH <緩衝區數> BUFFERS BUFFER <緩衝區大小>
REPLACE HISTORY FILE REPLACE EXISTING
REDIRECT PARALLELISM
WITHOUT ROLLING FORWARD WITHOUT PROMPTING;
SET TABLESPACE CONTAINERS 指令。
-- 表空間 4 (TESTDMS) 範例
SET TABLESPACE CONTAINERS FOR 4
IGNORE ROLLFORWARD CONTAINER OPERATIONS
USING (FILE 'd:\temp\test.dat' 5120);
RESTORE DATABASE SAMPLE CONTINUE;
-- 文件結尾
需求:將資料庫恢復至 D 槽並改名 TEST,表空間 4 容器導向 E:\temp\test.dat。
編輯 redirect.db2 修改對應路徑與名稱後執行:
D:\Temp> db2 -tvf redirect.db2
輸出顯示各步驟成功完成,資料庫重導向恢復順利結束。
參考資料:DB2 V9 Information Center | 來源:https://www.cncms.com.cn/db2/q372737.Html