12月31号 公司运维误删除oradata下所有文件 导致数据库崩溃
数据库所有控制文件放在oradata下 只有rman备份 没有自动备份控制文件
还原修复数据库
大体思路:
由于没有控制文件 开不了库 所以需要重建控制文件
由于重建控制文件需要 那个时候所有的数据文件
从rman备份片中数据抽取出来需要的数据文件
数据抽取:
declare
devtype varchar2(256);
done boolean;
begin
devtype:=sys.dbms_backup_restore.deviceAllocate(type=>"ident=>'T1')
sys.dbms_backup_restore.restoreSetDatafile
sys.dbms_backup_restore.restoredatafile to(dfbunber=>01,toname=>'XXXX/system01.dbf')
-----------------------
--------------
--------------
------------------
-----------------
-------------
SYS.DBMS_backup_restore.restoreBACKUPpiece(done=>done,handle=>'XXXXXrman 备份片位置',params=>null);
sys.dbms_backup_restor.deviceDeallocate;
end;
/
可以看告警日志 发现数据文件在抽取
数据抽取完毕 可以重建控制文件 alter database backup controlfile to trace as 'XXXXX'
用resetlogs 方式 创建控制文件 完成之后
recover database using backup controlfile until cancel 修复数据库