DB2中恢复已删除表的步骤
【IT168 技术文档】在网上查到的关于恢复删除表的步骤,经测试通过。
1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。
2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行: alter tablespace 表空间名 dropped table recovery on
3. DB2在历史文件中保存了备份,恢复,装载数据,删除表等操作. 假设数据库名为sample,
用 db2 list history dropped table all for sample 得到删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL), 记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。
4. 下一步是从以前的备份中恢复删除表所在的表空间, 备份所在的目录是c:\db2backup. without rolling forward指明不需要前滚.
db2 "restore db sample tablespace(userspace1) from c:\db2backup taken at 20041102100931 without rolling forward without prompting"
5. 第三步是把所删除表的数据卸载到某一目录中
db2 "rollforward db sample to end of logs and complete recover dropped table 00000000000002010002000d to c:\db2backup"
6. 第四步是用历史文件中保留的该表的DDL语句重建该表
7. 第五步是重新装载数据到该表. p(1,2)表明装载该表的第一个和第二个字段的内容. recoverme是表名
db2 "load from c:\db2backup\node0000\data OF DEL METHOD p(1,2) insert into recoverme"