技术开发 频道

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"

0
相关文章