控制文件丢失了如何恢复

1,如果有以前生成的脚本文件。

1.1 如果online日志文件是好好的,那就不需要resetlogs,用第一套从trace中得到的脚本来重新创建控制文件就好:

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORA10" NORESETLOGS  ARCHIVELOG

然后recover database,

alter database open 打开数据库就可

如果最近一次instance crashdown 了,一般服务器也会自动调用日志文件来修复,因为修复crashdown所需要的日志文件都在online redo log中(一般一个current的那个就够了,最多如果还有active的前一组)。这些都是自动的。

 

1.2 如果online日志文件-尤其是current的那个丢失或者损坏了,而且数据库没有crash down,即正常关机情况下日志文件和控制文件丢了,那用第二套脚本:

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORA10" RESETLOGS  ARCHIVELOG
...

RECOVER DATABASE USING BACKUP CONTROLFILE;--->这一步只是模拟而已,要不然为啥下一步要resetlogs啊(模拟不完全恢复啊)

ALTER DATABASE OPEN RESETLOGS;

 

但是如果此时不巧数据库的状态还是crash down,即丢失了current redo log,而且控制文件也丢了,还有实例crash down了,那正常情况下是无法恢复到启动状态的(除非force open,这个在这里不说了)。常规的做法是仍然用脚本-肯定第二套啦,先创建控制文件,然后用过去的一个备份+归档日志,用不完全恢复的方法,尽可能多的恢复数据到最新的时间。

 

 

2,如果只有备份的控制文件。

待续...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值