《oracle误删除表空间后数据库如何修复的方法》由会员分享,可在线阅读,更多相关《oracle误删除表空间后数据库如何修复的方法(3页珍藏版)》请在金锄头文库上搜索。
1、Oracle误删除表空间后数据库如何修复的方法1.创建一个新的表空间 create tablespace rainbowdatafile d:oracleoradataoa_test5rainbow01.dbf size 10m;2.在其中建表create table test(emp int)tablespace rainbow;3.插入数据insert into test(emp) values(1000);commit;4.备份控制文件alter database backup controlfile to d:control.bak;5.关闭数据库shutdown immeidate;
2、6.进行全备份备份所有的数据文件7.打开数据库startup8.删除表空间rainbowdrop tablespace rainbow including contents; 16:46:039.为了验证我们再更新另外一个表空间里的test2表insert into test2 (emp) values(888);commit;10.关闭数据库,并用6进行的全备份restore所有的数据文件(不完全恢复一定要全部的数据文件)11.打开至mount;startup mount;12.执行不完全恢复recover database until time2007-03-23:16:46:00 usi
3、ng backup controlfile;(为什么要使用using backup controlfile 因为删除表空间后控制文件被修改了)SQL recover database until time2007-03-23:16:46:00 using backup controlfile;ORA-00279: 更改 471722 (在 03/23/2007 16:39:44 生成) 对于线程 1 是必需的ORA-00289: 建议: D:ORACLEORADATAOA_TEST5ARCHIVEARC00001.001ORA-00280: 更改 471722 对于线程 1 是按序列 # 1
4、进行的指定日志: =suggested | filename | AUTO | CANCELD:ORACLEORADATAOA_TEST5redo03.log已应用的日志完成介质恢复13.打开数据库alter database open resetlogs;数据库已更改14.查询原来的数据select * from test;结果报错ERROR at line 1:ORA-00376: file 11 cannot be read at this timeORA-01111: name for data file 11 is unknown - rename to correct fileOR
5、A-01110: data file 11: /opt/oracle/product/9.2.0/dbs/MISSING00011问题的原因:现在的控制文件中没有tablespace rainbow (前面已经将其删除)虽然我们用备份的控制文件对数据库进行了修复但是数据库打开时当前的控制文件仍然是最新的控制文件。出现/opt/oracle/product/9.2.0/dbs/MISSING00011 ,是因为数据库启动时发现控制文件和system表空间中的dv信息不一致造成的解决方法:重建控制文件用备份出来的控制文件d:control.bak重命名即可,或使用由alterdatabase backup control file to trace 备份的进行重建。15.重新开启数据库并查询数据SQL select * from test;EMP-1000SQL select * from test2;未选定行说明数据库已经按我们的要求进行不完全恢复了