什麼情況下使用重定向?
- 如果要將備份映像復原到不同於源機器的目標機器
- 如果要將表空間容器復原到另一個物理位置
- 如果復原操作由於一個或多個容器不可訪問而失敗
- 如果要重新定義已定義的存儲器組的路徑
- 限制:
- 不能使用重定向復原操作將數據從一個操作系統移至另一個操作系統。
- 不能在復原過程中創建或刪除存儲器組。
- 不能在表空間復原過程中修改存儲器組路徑,即使正在復原與存儲器組相關聯的所有表空間時也是如此。
自動生成重定向恢復腳本以及重定向恢復狀態查詢
db2 restore db sample from /db2_backup/db2inst1/sample taken at 20101023180128
redirect generate script redirect_sample.sql
DB20000I The RESTORE DATABASE command completed successfully.
所生成的重定向文件
redirect_sample.sql,可以分爲三個部分:1. Restore 語句
此語句用來標示一個重定向的恢復操作命令開始,它在普通恢復的命令上加了 redirect 參數。
RESTORE DATABASE SAMPLE
FROM '/db2_backup/db2inst1/sample'
TAKEN AT 20101023180128
INTO SAMPLE
REDIRECT;
2. set containers 語句:
當目標數據庫所的物理存儲設備與原來的數據庫不一樣時,就需要下面的命令來指定新的物理容器。
SET TABLESPACE CONTAINERS FOR 0
USING (
PATH '/db2inst1/SAMPLE'
);
SET TABLESPACE CONTAINERS FOR 1
USING (
PATH '/ db2inst1/temp'
);
SET TABLESPACE CONTAINERS FOR 2
USING (
DEVICE '/dev/rsample_1G' 131072
);
……
查看新庫的應用目錄方法
DB2 GET DB CFG FOR 新庫名
DB2 LIST TABLESPACES SHOW DETAIL
3. restore continue 語句:
此語句代表重定向恢復語句序列完成,系統開始恢復數據庫。
RESTORE DATABASE SAMPLE CONTINUE;
SQL20319N
不允許在自動存儲器表空間上執行 SET TABLESPACE CONTAINERS 命令。
說明
與自動存儲器表空間相關聯的容器受數據庫的控制,不能通過 SET TABLESPACE CONTAINERS 命令重新定義。
用戶響應
要對數據庫中的所有自動存儲器表空間指定一組新的路徑,可使用 RESTORE DATABASE 命令的 ON 選項並指定一個或多個路徑;或將其改爲非自動。