首页 > Oracle > oracle spfile 丢失,简单恢复案例!
2013
10-31

oracle spfile 丢失,简单恢复案例!

如果系统的spfile丢失,在有备份的情况下,可以直接进行恢复的,在生产环境中,rman的设置和备份集的设置可能和实验环境不一样,不过还是大同小异,我们先来看一下测试环境的基本情况:

首先要知道数据库的dbid,可以从v$database视图中查出来,在进入rman的时候,也有提示dbid

然后我们将数据库启动到nomount状态,设置dbid

然后直接restore spfile

这里会报一个06564的错误,原因是因为数据库已经用spfile挂载到nomount状态,如果spfile丢失,这里应该是用pfile挂载的,就不会报这个错误了,我这里就直接按照提示修改一下就可以了

这里又报06172错误,提示没有找到7天内的自动备份,而我使用的备份集手动备份的时候,没有设置controlfile和spfile自动备份,可以看到如下参数是off的:CONTROLFILE AUTOBACKUP OFF; 如果启用这个参数,在重新备份的情况下(备份一下datafile或者表空间),使用上面的命令就不会有问题了:

触发spfile自动备份的条件:

1. 当CONFIGURE CONTROLFILE AUTOBACKUP OFF;时,仅备份数据文件1(system01.dbf)时会自动备份控制文件;

2. 当CONFIGURE CONTROLFILE AUTOBACKUP ON;时,备份任意文件(数据文件/归档日志)都会自动备份控制文件。

这里我们就先不启用这个参数,看一下系统有没有spfile的备份

在系统找到一个spfile的备份,这里我们直接恢复一下

ok了,简单的一个spfile就已经恢复了,一般在生产环境中,配置成CONFIGURE CONTROLFILE AUTOBACKUP ON; # default      这样在备份的时候,控制文件和spfile就可以自动备份,恢复的时候方便。如果是off的话,只有备份system表空间才会触发spfile的自动备份。

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL