1. recover database using backup controlfile
如果丢失controlfile的时候,使用备份的控制文件。Oracle需要把数据恢复到比当前controlfile所纪录的SCN还要靠后的位置(比如说:control file是backup controlfile,或者controlfile是根据trace create的。),这时候,就需要用using backupcontrolfile。 恢复就不会受“当前controlfile所纪录的SCN”的限制。只是想告诉数据库,我这个controlfile是旧的,这个时候数据库就会不断应用归档日志,它也不知道哪一个是最后的归档和当前日志,需要限制就来自于你的语句(until time , until scn),或者可用的archive log(until cancel)。
2. recover database until cancel
如果丢失current/activeredo的时候。手动指定终点。
3. recover database using backup controlfile until cancel;
如果 丢失当前controlfile并且current/active redo都丢失,会先去自动 应用归档日志,可以实现最大的恢复;
4. recover database until cancel using backup controlfile;
如果 丢失当前controlfile并且current/active redo都丢失,以旧的redo中的scn为恢复终点。因为没有应用归档日志,所有会丢失数据。
5. recover database;
在普通的recover database或者recovertablespace, recover datafile时,Oracle会以当前controlfile所纪录的SCN为准,利用archive log和redo log的redo entry,把相关的datafile的block恢复到“当前controlfile所纪录的SCN”。