控制文件恢复:使用备份直接恢复, 重建控制文件.
使用备份直接恢复
恢复后需要resetlogs打开数据库,下面解释一下resetlogs的使用.
1, 什么是resetlogs?
resetlogs参数的使用使数据库重置redo logfile,使得redo从头开始记录.
2, 什么情况下resetlogs?
a, 不完全恢复数据库;
b, 使用备份的控制文件进行了恢复;
c, 创建控制文件时,带有了resetlogs参数.
3, 为什么使用了备份控制文件,需要进行resetlogs?
因为当前的控制文件丢失之后,Oracle再也无法判断哪一个日志文件就是最后的那个current状态的日志文件;另外,即使完成的是完全恢复,
那么这个完全恢复 也有可能只是一个阶段,及这个日志文件仅仅只是redo stream里的一个中间阶段而已.
4, 完全恢复与resetlogs如何区分?
完全恢复与resetlogs没有必然联系.
完全恢复取决于是否恢复到了最后一次成功commit的事务.
重建控制文件恢复
重建控制文件后,使用了NORSETLOGS,数据恢复后不需要resetlogs.
重建控制文件后的数据库,无法识别之前的RMAN备份集信息,以前的归档日志信息.
步骤:
a, 从备份集恢复一个控制文件;
b, alter database mount;
c, restore database;
d, alter database backup controlfile to trace;
e, @gettrcname并获取创建脚本;
f, shutown immediate;
g, startup nomount;
h, 使用trace文件使用NORESETLOGS创建控制文件;
i, recover database;
j, alter database open;