DB2数据库和表恢复

一不小心,把库里的表误删了,请问如何恢复误删的表?数据库是V9.7,Linux系统。还有请问,有另一个DB2的库,但是没有做过备份,所有的数据都是直接拷贝的文件夹,如果发生意外,拷贝的这些原文件可以恢复数据库吗?具体怎么操作?在线等,谢谢!

1. 如何恢复误删的表
使用recover dropped table功能即可
要求是: 误删的表建立且数据注入之后,有该数据库的备份
通过db2 list history dropped table all for dbname找到误删表的Backup ID以及该表的DDL语句
恢复误删表所在表空间 db2 restore db dbname tablespace(tbspname) taken at xxxx
在前滚中指定误删表 backup id,输出表数据
db2 rollforward db dbname to end of logs tablespace(误删表所在表空间名字) recover dropped table backup id to /home/db2inst
在/home/db2inst目录下的node0000目录下有一个data文件,是误删表的数据
通过DDL重建表,并使用LOAD将DATA文件导入表中即可.

没有做过备份的话,如果你拷贝的文件夹完整的话(既有元数据,又有数据库数据),可以uncatalog db dbname,然后将拷贝的文件夹拷贝回来,并catalog db dbname就可以了.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-30
1、必须做了备份,才能恢复删除表
2、要按正常的次序走的话,必须要做过备份才能够恢复表。拷贝文件建立的db2是A时间点,但运行到B,有数据增删改,出了问题,是无法用A点恢复到B的本回答被提问者和网友采纳
相似回答