一次数据恢复的经历

上周一个兄弟不小心把生产数据库的数据删了,万幸的是这个表的数据不是很重要,只是保留历史操作记录,对于业务没有大的影响,尽管如此,会造成以后审计方面的困难,而且下游系统通过sql复制来从我们的系统里面取数据
所以数据恢复势在必行,但是没法采用db2 restore + roll forward的情况,因为不能停止使用数据库。
第一要确定的是,数据删除大约的时间,通过删除语句来比对 db2pd -db xxx -dynamic, mon_get_package_cache来确定大致的时间
第二要从TSM上获取数据库的备份,数据库roll forward所需要的日志,看看当前的活动日志是多少,把上次备份时间点的日志到这次活动日志之间的所有日志都得到
然后把数据库备份文件,日志文件传输到测试环境进行恢复
重定向恢复
RESTORE DATABASE COMDB
FROM '/db2data/restore'
TAKEN AT 20161214040108
ON '/db2data/sample'
DBPATH ON '/db2data/sample'
INTO SAMPLE
NEWLOGPATH '/db2data/sample/logs/'
REDIRECT
;

RESTORE DATABASE COMDB CONTINUE;

cp /db2data/restore/logs/* /db2data/sample/logs/NODE0000/LOGSTREAM0000
rollforward db SAMPLE to 2016-12-14-02.52.58.331754 using local time and complete
然后查看恢复的表的数据,导出,并导入到生产环境。

请使用浏览器的分享功能分享到微信等