非归档模式下如何RMAN冷备和还原oracle数据库的spfile文件?
1.mount状态或open状态
2.执行RMAN命令对SPFILE进行备份
RMAN> backup spfile;
3.删除spfile文件,模拟spfile文件损坏
4.将数据库重启到nomount状态(利用initorcl.ora)
SQL> startup nomount;
5.使用RMAN登录,进行spfile文件的自动还原
RMAN> restore spfile from autobackup;
6.重新启动数据库(使用还原后的spfile)
那么问题来了,如果spfile损坏,同时initoracle.ora文件损坏,则数据库无法启动到nomount状态
所以 restore controlfile from autobackup无法执行,系统将报错。
此时,必须先要设置dbid,然后restore spfile from autobackup;
相关实验如下:
1.关闭数据库
2.模拟参数文件损失
[oracle@oracle dbs]$ mv spfileorcl.ora spfileorcl.bak
[oracle@oracle dbs]$ mv initorcl.ora initorcl.bak
3.进入RMAN,先设置dbid,再启动
RMAN> set dbid 1460803437
RMAN> startup nomount;
4.执行spfile还原操作
RMAN> restore spfile from autobackup;
或
RMAN> restore spfile from '/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2018_09_14/o1_mf_s_986834942_fspxhys6_.bkp'