DB2 DROP表后恢复
数据库版本
数据库版本:DB2 9.7
目的:
由于经常操作不当,引起误删表和数据库,对数据恢复起来很困难,其实测试后也觉得没什么挺容易的,特此亲自测试,得出一恢复方法,总结如下文旦,如有不当还请及时提出;
注意:
在恢复之前一定要备份数据库,在恢复中需要时间截点,不同版本数据库的时间轴不一样,所以需要注意;
第一:备份数据库,
做什么事情之前备份数据库,重要的事说三遍:备份!备份!备份!命令:db2 backup db dbname to ‘e:\xxxx’
第二:开启归档模式:
db2 update db cfg for dbname using logretain on//启用归档日志
dbname为数据库实例名;
按照该命令直接修改为归档模式
第三:删除表以及数据:
drop table 表
第四:
对要实施Drop Table Recovery的表空间(限regular tablespace),执行:
db2 "alter tablespace 表空间名称 dropped table recovery on"
第五:用 list history droppedtable all for dbname
得到删除表tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。
命令为: db2 list history droppedtable all for dbname
第六:查看本机数据库的时间截点格式
命令为:select current timestam frompsysibm.sysdummy1
第七:根据时间截点,来使用recover恢复命令如下:
db2 recover database dbname to 2016-08-29-10.16.25.000000(毫秒如果查询不到用0代替)