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代替)