摘自:http://blog.csdn.net/s57253105/article/details/6849698
今天在看题库的时候其中一道题是关于spfile使用了autobackup后,在某次打开数据库过程中出现了下列错误
SQL> startupORA-01078: failure in processing system parameters LRM-00109: could not openparameter file
两个错误的官方解释为:ORA-01078:failure in processing system parameters
Cause:Failureduring processing of INIT.ORA parameters during system startup.
Action:Furtherdiagnostic information should be in the error stack.
LRM-00109:could not open parameter file 'string'
Cause:Theparameter file does not exist.
Action:Createan appropriate parameter file.
这里涉及到了关于从autobackup恢复spfile,在此摘自网络上的一篇文章来说明一下在恢复的时候可能遇到的问题:
在使用RMAN从AUTOBACKUP中恢复SPFILE,可能会碰到这个错误,这里简单总结一下。
在RMAN恢复SPFILE过程中,可能遇到下面的错误:
RMAN> restore spfile from autobackup;
启动 restore 于 07-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 寻找以下日期的 AUTOBACKUP: 20111007
通道 ORA_DISK_1: 寻找以下日期的 AUTOBACKUP: 20111006
通道 ORA_DISK_1: 寻找以下日期的 AUTOBACKUP: 20111005
通道 ORA_DISK_1: 寻找以下日期的 AUTOBACKUP: 20111004
通道 ORA_DISK_1: 寻找以下日期的 AUTOBACKUP: 20111003
通道 ORA_DISK_1: 寻找以下日期的 AUTOBACKUP: 20111002
通道 ORA_DISK_1: 寻找以下日期的 AUTOBACKUP: 20111001
通道 ORA_DISK_1: 没有找到 7 天之内的 AUTOBACKUP
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 10/07/2011 20:25:14 上) 失败
RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段
一般来说,可能是下面三种情况之一。
第一种情况是没有配置CONTROLFILE AUTOBACKUP。
也就是说,在数据库中根本就没有自动备份的文件,恢复当然也是不可能的了。
第二种情况也比较常见,就是RMAN默认寻找7天内的自动备份,如果7天内没有发生自动备份,那么RMAN也无法找到这个文件。
这种情况的相应解决方法有两种,一种是RESTORE SPFILE FROM AUTOBACKUP UNTIL TIME ‘SYSDATE – N’的方法。另一种是RESTORE SPFILE FROM AUTOBACKUP MAXDAYS N。
采用这两种方法,可以保证
第三种情况也比较常见,而且更加隐蔽。这种情况是由于AUTOBACKUP的默认设置发生了变化。
由于这种情况在错误信息中看不到提示,所有很容易被忽略掉。由于在数据库目前只是通过RMAN的默认配置进行启动,且启动到NOMOUNT状态,因此RMAN的所有配置都无法获得,RMAN在尝试寻找AUTOBACKUP的时候,只会到默认路径下去寻找默认的格式,因此,如果以前修改过AUTOBACKUP的格式和路径,那么在恢复之前需要进行重新的设置。
AUTOBACKUP的存储路径在alert文件中可以找到。进行了设置后,就可以通过RMAN进行恢复了:
RMAN> set controlfile autobackup format for device type disk to '/data1/backup/testdata/%F';
executing command: SET CONTROLFILE AUTOBACKUP FORMAT
RMAN> restore spfile from autobackup;
Starting restore at 27-6月-07
using channel ORA_DISK_1
channel ORA_DISK_1: looking for autobackup on day: 20070627
channel ORA_DISK_1: autobackup found: /data1/backup/testdata/c-2270762593-20070627-00
channel ORA_DISK_1: SPFILE restore from autobackup complete
Finished restore at 27-6月-07
如果不好确定恢复的格式或者明确想要恢复某个自动备份,那么还有一种方式更为直接,可以直接给出需要恢复的AUTOBACKUP的路径和文件名:
RMAN> restore spfile from 'D:\app\backup\ORCL\AUTOBACKUP\2011_10_07\O1_MF_S_763934613_78XTNPQ2_.BKP';
启动 restore 于 07-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在从 AUTOBACKUP D:\app\backup\ORCL\AUTOBACKUP\2011_10_07\O1_MF_S_763934613_78XTNPQ2_.BKP 还原 spfile
通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
完成 restore 于 07-10月-11