在使用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:appbackupORCLAUTOBACKUP2011_10_07O1_MF_S_763934613_78XTNPQ2_.BKP';
启动 restore 于 07-10月-11
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在从 AUTOBACKUP D:appbackupORCLAUTOBACKUP2011_10_07O1_MF_S_763934613_78XTNPQ2_.BKP 还原 spfile
通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
完成 restore 于 07-10月-11