DB2 重定向恢复

本文详细介绍了DB2数据库恢复的两种方法,包括重定向恢复方法一和方法二。方法一涉及通过RESTOREDATABASE命令进行恢复,并手动设置容器位置;方法二则允许在备份和创建数据库时不作限制,在恢复时指定数据库路径和存储文件路径。

重定向恢复方法一:
步骤:
1.带 REDIRECT 选项发出 RESTORE DATABASE 命令。
例如: db2 restore db flm from d taken at 20080603115210 to e redirect;
2.修改容器位置
例如: db2 set tablespace containers for 0 using (path 'D:\DB2\NODE0000\FLM\T0000000');
db2 set tablespace containers for 1 using (path 'D:\DB2\NODE0000\FLM\T0000001');
db2 set tablespace containers for 2 using (path 'D:\DB2\NODE0000\FLM\T0000002');
3.再次发出 RESTORE DATABASE 命令,这次指定 CONTINUE 选项。
例如: db2 restore db flm continue;
4.检查是否成功
例如: db2 list db directory
db2 connect to flm
db2 list tablespace containers for 0
db2 list tablespace containers for 1
db2 list tablespace containers for 2
5.此种方法恢复的注意点:
容器的路径一定要填写正确,否则会一直报错
盘符\实例\节点\数据库\表空间
-----各个命令直接在DB2CMD中执行即可
注意:
1.此种恢复方法的前提是创建数据库的时候必须不是自动存储方式,例如:
db2 create db flm automatic storage no on d:(V9中自动为yes默认的就是DMS)
2.在生成环境中一定要特别注意,此种创建数据库带来的麻烦就是在创建一个新的表空间的时候必须要显示地定义容器,此时是managed BY SYSTEM or MANAGED BY DATABASE都是可以的
3.在没有启用自动存储的数据库中创建表空间时,必须指定 MANAGED BY SYSTEM 或 MANAGED BY DATABASE 子句。使用这些子句会分别创建 SMS 表空间和 DMS 表空间。在这两种情况下,都必须提供容器的显式列表。
4.指定参数可以让系统自动扩展容器的大小
AUTORESIZE YES
当表空间用光空间时,系统将自动地扩展容器的大小。
重定向恢复方法二:
备份和创建数据库的时候没有任何的限制
恢复的时候指定恢复后数据库路径和存储文件路径
db2 restore db jhk from E:\dss\database taken at 20080812145614 on e: dbpath on e: into jhk

DB2 数据库执行重定向还原过程中出现 SQL0289N 错误,通常与表空间容器配置不当、存储空间不足或容器路径设置错误有关。该错误表明数据库在尝试分配或访问表空间容器时遇到问题,导致还原或后续操作失败。 ### 表空间容器配置问题 在重定向还原中,若未正确配置表空间容器路径或容器大小,可能导致数据库无法正常访问所需空间。例如,容器路径未正确映射、容器文件大小不足、或文件系统空间不足,均可能引发 SQL0289N 错误[^3]。 ### 存储空间不足 若目标数据库的表空间容器所在的文件系统已满,或容器大小不足以容纳恢复的数据,也可能导致该错误。特别是在使用 DMS(Database Managed Space)表空间时,所有容器已满且无法扩展,将导致数据库无法继续操作[^3]。 ### 容器重配置建议 在执行重定向还原时,应使用 `SET TABLESPACE CONTAINERS` 命令重新配置容器路径和大小,确保容器路径正确且文件系统空间充足。例如: ```sql SET TABLESPACE CONTAINERS FOR 2 USING (FILE '/new/path/container1' 100000); ``` 此命令将表空间容器重新定向至新的路径,并指定适当的大小,有助于避免因容器配置不当导致的空间问题[^2]。 ### 容器扩展与自动调整 对于启用了自动调整大小的 DMS 表空间,若容器所在的文件系统已满,或自动调整大小功能因正在进行的容器操作(如重新平衡)而被暂停,也可能导致 SQL0289N 错误。此时应检查文件系统可用空间,并确认表空间的最大大小限制是否合理。 ### 重定向恢复流程优化 在执行重定向恢复时,应确保在 `RESTORE DATABASE` 命令后正确执行 `SET TABLESPACE CONTAINERS`,并在继续恢复前验证容器路径和权限是否正确配置。例如: ```bash db2 RESTORE DATABASE sample1 taken at 20180303061305 redirect db2 "SET TABLESPACE CONTAINERS FOR 2 USING (FILE '/new/path/container1' 100000)" db2 RESTORE DATABASE sample1 continue ``` 通过上述步骤,可以确保重定向恢复过程中容器配置正确,避免因容器问题导致的 SQL0289N 错误[^2]。 ### 文件系统与权限检查 在执行重定向恢复前,应确保目标容器路径具有适当的读写权限,并且文件系统空间充足。若权限不足或空间不足,数据库将无法正确创建或扩展容器,从而导致错误发生[^3]。 ### 前滚恢复问题 在完成重定向恢复后,若执行前滚恢复时表空间容器已满,也可能导致 SQL0289N 错误。此时应检查容器大小和文件系统空间,并考虑扩展容器或增加新的容器。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值