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

本文介绍了DB2数据库备份过程中包含表空间容器物理路径的方法,以及如何通过重定向解决导入时遇到的问题。提供了具体的步骤来修改容器地址并顺利完成数据库恢复。

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

### 增加表空间容量 在执行 DB2 重定向恢复,如果遇到表空间满的问题,可以通过增加表空间的容器大小或添加新的容器来扩展其容量。例如,使用 `ALTER TABLESPACE` 命令增加现有容器的大小,或者添加新的容器到表空间中: ```sql ALTER TABLESPACE <tablespace_name> ADD CONTAINER '<new_container_path>' SIZE <size>; ``` 此外,可以调整现有容器的大小: ```sql ALTER TABLESPACE <tablespace_name> RESIZE (CONTAINER '<container_path>' SIZE <new_size>); ``` 这种方式能够有效扩展表空间,使其满足恢复过程中对存储空间的需求[^1]。 --- ### 使用更大的文件系统或存储设备 若当前文件系统或存储设备的空间不足,应考虑将表空间容器迁移到具有更大容量的存储位置。这可以通过将现有容器从一个文件系统移动到另一个更大的文件系统,并通过 `ALTER TABLESPACE` 命令更新容器路径来实现: ```sql ALTER TABLESPACE <tablespace_name> DROP CONTAINER '<old_container_path>'; ALTER TABLESPACE <tablespace_name> ADD CONTAINER '<new_larger_container_path>' SIZE <size>; ``` 此操作需要确保新的文件系统或存储设备具有足够的可用空间,以支持恢复过程中表空间的增长需求[^1]。 --- ### 调整恢复配置参数 在某些情况下,可以通过调整恢复过程中的配置参数来减少对表空间的占用。例如,可以限制恢复过程中使用的临空间,或调整日志文件的大小和数量,以避免表空间迅速耗尽。使用 `RESTORE DATABASE` 命令,可以指定 `WITH <buffer_pool_size>` 参数来控制恢复过程中使用的内存缓冲池大小,从而减少对磁盘表空间的依赖: ```bash db2 restore database <dbname> from <backup_path> redirect ``` 在执行 `RESTORE` 命令,可以结合 `SET TABLESPACE CONTAINERS` 子句指定新的表空间容器配置,确保恢复操作在可用空间范围内进行[^1]。 --- ### 验证表空间使用情况 在执行恢复操作前,应使用 `db2pd` 或 `db2 list tablespaces show detail` 命令检查当前表空间的使用情况,确保其容量足够支持恢复操作: ```bash db2 list tablespaces show detail ``` 该命令可以提供每个表空间的总大小、已用空间和可用空间信息,有助于评估是否需要在恢复前进行容量调整[^1]。 --- ### 示例:重定向恢复并调整表空间容器 以下是一个完整的重定向恢复示例,其中包含表空间容器的调整: ```bash db2 restore database <dbname> from <backup_path> redirect db2 "set tablespace containers for <tablespace_id> using (PATH '<new_container_path>' SIZE <new_size>)" db2 restore database <dbname> continue ``` 此流程确保在恢复过程中,表空间容器被重新配置为具有足够空间的存储路径,以避免因表空间满而导致恢复失败[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值