DB2易盘恢复

来源:互联网 发布:java应用软件 编辑:程序博客网 时间:2024/05/21 19:41

场景:
AIX6.1+DB2v9.7+TSM6.2+物理磁带备份
数据目录所在的VG中有多个磁盘损坏,导致部分表空间无法读写、无法回滚、无法恢复。

解决办法:
1,umount掉原数据目录的文件系统;
2,挂载新盘到AIX中,重新创建文件系统,mount到原数据目录上;
3,从TSM中恢复最近一次全备份的副本;
4,从TSM中恢复已备份的归档日志;从原数据目录的文件系统中把还未备份的归档日志复制过来;通过归档日志回滚数据库到最新状态。

具体细节,以及可能遇到的问题:
1,新的文件系统mount到原来的数据目录上之后,应检查目录权限;
2,restore报错:
SQL1005N 数据库别名 名称 已存在于本地数据库目录或系统数据库目录中。
取消别名编目,重新提交restore:

db2 uncatalog db <dbname>

3,回滚报错:
SQL1042C An unexpected system error occurred.
处理办法:

db2stop forceipclean

然后重新回滚。
4,回滚报错:
SQL1268N Roll-forward recovery stopped due to error “SQL1042” while
retrieving log file “S0535131.LOG” for database “KSDBS” on node “0”.
解决办法,
指定在回滚时不需要取回归档日志:

db2 "rollforward db dbname to end of logs and stop noretrieve"
0 0