在控制文件损坏或丢失的情况下进行rman恢复在将数据库启动到nomount状态下时会报ora-00205错误
这是由于没有找到有效控制文件而报错。因此我们需要恢复或重建控制文件。由于我们rman属于全备设置,因此我们可以从rman备份中恢复控制文件
还原控制命令如下:
restore controlfile to 'E:\oracle\product\oradata\azuay/control01.ctl' from
'C:\backup/CONF_20120816_C-2196275232-20120816-00';
restore controlfile to 'E:\oracle\product\oradata\azuay/control02.ctl' from
'C:\backup/CONF_20120816_C-2196275232-20120816-00';
restore controlfile to 'E:\oracle\product\oradata\azuay/control03.ctl' from
'C:\backup/CONF_20120828_C-2197013136-20120828-00';
或
restore controlfile from 'C:\backup\CONF_20120828_C-2197013136-20120828-00';
结果如下:
注:CONF_20120816_C-2196275232-20120816-00'为rman备份时所定义的用于存储控制文件等的文件(备份定义如下:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'C:/backup/conf_%T_%F';)
已恢复控制文件
接下来我们需要修改数据库状态
alter database mount;
然后还原数据restore database;
接下来恢复数据库recover database;
完成后修改数据状态就可以进入数据库了
要用alter database open resetlogs;而不是alter database open
至此数据库还原完成
注:如在没有删除控制文件的情况下还原,则将还原到还原前的状态。如在删除控制文件的情况只能还原到最近的备份文件状态。采用热备份,需要运行在归档模式下,可以实现数据库的完全恢复,也就是说,从备份后到数据库崩溃时的数据都不会丢失