日期:2014-05-16  浏览次数:20402 次

db2数据库重定向表空间导入-解决RESTORE 时 报驱动没关错误

db2在数据备份时,会同时把表空间容器物理路径备份出来。(会备份八个表空间文件)
这样在你resotre时,会按照导出时表空间容器的路径,新建表空间文件。
所以在导入时,如果当前系统没有以前对应的磁盘分区。
导入时就会提示你:“终止导入,驱动器门没有关。”

如果当前当前磁盘里已经存在对应的表空间文件夹,而且此表空间被使用,
会“报容器使用中,请使用重定向”


1.两个问题的解决办法相同,在回复时使用重定向命令:

db2 RESTORE DATABASE olddb? FROM "E:\test_bkp" INTO ?newdb? redirect without rolling forward。


执行结果
-- SQL1277N? 复原已检测到一个或多个表空间容器是不可访问的,或者已将它们的状态设置为“必须定义存储器”。
-- DB20000I? RESTORE DATABASE 命令成功完成。

2.列出当前备份里表空间容器原来的路径

db2 list tablespaces?

结果会看到10个容器路径。 1和10 分别是0k的。不需要重定向。

?

?

3.修改容器地址

其他的容器,按照2,3,4,5,9,8,7,6的顺序,写出如下命令。并且修改成新路径。执行命令。

db2 set tablespace containers for 2 using (path "E:\DB\TRS\NP\BPN8K")
db2 set tablespace containers for 3 using (path "E:\DB\TRS\NP\BPN16K")
db2 set tablespace containers for 4 using (path "E:\DB\TRS\NP\BPN4K")
db2 set tablespace containers for 5 using (path "E:\DB\TRS\NP\BPN32K")

db2 set tablespace containers for 9 using (path "E:\DB\TRS\TEMP\BPN4K")
db2 set tablespace containers for 8 using (path "E:\DB\TRS\TEMP\BPN8K")
db2 set tablespace containers for 7 using (path "E:\DB\TRS\TEMP\BPN16K")
db2 set tablespace containers for 6 using (path "E:\DB\TRS\TEMP\BPN32K")

?

?

?

?4.按设置好的容器路径还原备份库。

db2 RESTORE DATABASE NP55 CONTINUE