由Todd Bao《oracle 11g 数据库恢复技术》整理:
实践 平台:win 11.2.0.3 64bit
参数文件有spfileSID.ora spfile.ora initSID.ora 是数据库启动到nomount的必要条件,unix系统下在$ORACLE_HOME/dbs目录下,win在%ORACLE_HOME\database目录下
备份:
1. 手动备份
RMAN> backup spfile;
2. 自动备份
当数据库在备份system数据文件时,数据库会自动将controlfile和spfile 一块备份
RMAN>backup datafile 1;
恢复:
1. 在实例启动时损坏。(dbid:1353924593)
此时数据库无法sqlplus进入nomount状态,用rman进行恢复
RMAN>startup nomount;
是的,rman可以进入,因为rman有内置参数文件,会启动实例,此时可以restore spfile了,当然会报错,忽略,LRM-00109 找不到initSID.ora文件错误。
RMAN> restore spfile from ‘D:\oracle11g\product\11.2.0\dbhome_2\database\14OP64CT_1_1’;
此时startup force就ok了
若是没有自动备份只有控制文件自动备份生成的参数文件备份,此时有两种情况:
(1)没有使用快速闪回区
此时需要指定dbid,否则报错:
RMAN>set dbid 1353924593;
RMAN>restore spfile from autobackup;
RMAN>startupforce;
(2)使用快速闪回恢复区
RMAN>startup nomunt;
RMAN>restore spfile from autobackup db_name=orcl db_recovery_file_dest=’d:\backup\’;
RMAN>startup force
此时指定dbid亦可恢复。
2.实例运行时恢复:
RMAN>restore spfile to ‘d:\backup\spfileORCL.ora’ from autobackup;
需指定路径,否则报错:
然后将文件拷贝回到目录下即可。