DB2重定向恢复是一种高级恢复技术,用于在原始存储空间不足或无法使用时,将数据库的表空间恢复到其他位置。这种恢复方法允许将数据库的备份数据从一个路径恢复到另一个路径,特别是在备份文件所在的磁盘空间不足或需要迁移到新存储设备时。在DB2中,执行重定向恢复的基本命令结构如下:

db2 RESTORE DATABASE dbname FROM backup_path TAKEN AT timestamp TO new_storage_path REDIRECT  

例如,如果数据库名为NB_DATA,备份文件位于E:db_databack_up,且想将表空间重定向恢复到E:New_DB_Storage,可使用以下命令:

db2 RESTORE DATABASE NB_DATA FROM E:db_databack_up TAKEN AT 20120725135059 TO E:New_DB_Storage REDIRECT  

执行命令后,可能会遇到SQL2563W错误,表示某些表空间未能恢复,通常是因为目标路径没有足够的空间。这时,需要手动设置每个表空间的容器位置。具体步骤如下:

1. 使用SET TABLESPACE CONTAINERS FOR命令,指定每个表空间的新容器路径。例如:

db2 => SET TABLESPACE CONTAINERS FOR 0 USING (PATH \"E:DB2NODE0000NB_DATA0000\")  
db2 => SET TABLESPACE CONTAINERS FOR 1 USING (PATH \"E:DB2NODE0000NB_DATA0001\")  
db2 => SET TABLESPACE CONTAINERS FOR 2 USING (PATH \"E:DB2NODE0000NB_DATA0002\")  
  1. 接下来,再次执行RESTORE DATABASE命令,加上CONTINUE选项:
db2 RESTORE DATABASE NB_DATA CONTINUE  
  1. 验证恢复是否成功,可以查看相关日志。