LoveUnix » ORACLE等数据库 » 紧急求助,ora 9i下drop掉一个表,该如何恢复?
让LU留住您的每

一天 让LU博客留住您的每一天
2007-12-20 12:28 加吉鱼
紧急求助,ora 9i下drop掉一个表,该如何恢复?

由于误操作,将一个表drop掉,操作如下:
>drop table usera.olddata;

现在数据库版本为9i 9.2.0.4,有全备份,也有归档日志,该用何种方法恢复这个表?
flashback好像不行
用数据库的全备份进行全部恢复又比较耗时,因为整个数据库数据量巨大。而drop掉的这个表只有3000条数据,不足30M。

2007-12-20 14:09 jiazhh
1.首先确定drop表的时间,和表所在的表空间.假设为user
2.找一个测试库,相同平台下
3 .把备份的数据挂载过来,或拷过来。
4.cp数据库参数文件,控制文件到测试库
5 startup mout
6.从备份中restore出system,undo 和 user(表包含的文件)的数据文件,注意set newname for datafile ...和 switch datafile all
7.recover database untill  time ....... skip tablespace .....(除了system ,undo,user表空间)
8.alter database open resetlogs
9.执行逻辑导出该表。exp  然后imp到生产库中。。


这样减少时间,生产库也不需要down数据库.
希望少点这样的误操作。是drop啊:mad

2007-12-20 17:49 boypoo
呵呵,又是误删除

有逻辑备份还是用逻辑备份吧,物理备份太麻烦了

2007-12-21 08:46 加吉鱼
感谢2楼,在下就是如此做的,呵呵,原来定下来一个老数据表可以删除,谁知删掉后开发的那边又反悔了,害得我好一个忙活,幸亏存储空间还足够,不然还真麻烦了呢!

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.