发布网友
共1个回答
热心网友
1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。
(当打开归档日志后,该数据库会处于rollforward pending状态,所以要做一次全备份)
2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行:db2 "alter tablespace 表空间名称 dropped table recovery on "
3. 用 list history dropped table all for 数据库名 得到删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。
db2 list history dropped table all for dbname
4. 恢复数据库后,如果想恢复已删除的表,在前滚时加recover dropped table tableid to 目标目录 。在该目录下被删除的表中的数据导出。利用上面提到表结构生成语句生成被删除了的表,然后用import命令将数据导入表中。