执行RMAN恢复的高级场景_还原服务器参数文件spfile

RMAN可以还原一个丢失的spfile到它的缺省位置或选择的位置。不像丢失控制文件,丢失spfile不会导致实例立即停止。实例可能会继续运行,虽然在还原spfile之后必须关闭和重启它。

当还原spfile时注意以下考虑因素:
1)如果实例已经使用spfile启动,那么不能覆盖存在的spfile。
2)如果实例使用客户端的初始化参数文件,如果在还原命令中没有指TO子语句,RMAN还原spfile到缺省的位置。缺省位置是平台相关的,例如在Linux上是?/dbs/spfile.ora。
3)恢复目录简化了恢复过程,因为可以避免记录和回想起DBID。这个过程假设你没有使用恢复目录。

从自动备份中还原spfile:
1)启动RMAN和执行其中一个以下操作:
a.如果数据库实例在spfile丢失时已启动,那么连接到目标数据库。
b.如果数据库实例在spfile丢失时没启动,同时没有使用恢复目录,那么运行SET DBID命令设置目标数据库的DBID。

2)关闭数据库实例,重启它而不挂载数据库。
当spfile不可用时,RMAN使用虚设的(dummy)参数文件启动实例。
STARTUP FORCE NOMOUNT;

3)执行RUN命令还原spfile。
取决于具体的情形,你可能需要在RUN命令中执行多个命令。注意以下考虑因素:
a.如果从磁带还原,那么使用ALLOCATE CHANNEL手动分配SBT通道。如果使用磁盘,那么RMAN使用缺省的磁盘通道。
b.如果自动备份不是使用缺省的格式(%F)来生成,使用SET CONTROLFILE AUTOBACKUP FOR DEVICE TYPE命令指定执行自动备份时生效的格式。
c.如果最近的自动备份不是在今天创建,那么使用SET UNTIL指定开始搜索的日期。
d.如果RMAN没有连接到恢复目录,那么使用SET DBID来设置目标数据库的DBID。
e.如果还原spfile到非缺省位置,在RESTORE SPFILE命令中指定TO或TO PFILE子语句。
f.如果知道RMAN每天从未生成多于n个自动备份,那么可以设置RESTORE SPFILE FROM AUTOBACKUP … MAXSEQ参数为n来减少搜索时间。MAXSEQ缺省设置为255,RESTORE从MAXSEQ向后计算来找当天的最后一个备份。如果在当天(或指定的日期)没有找到自动备份,可以在RESTORE命令中设置MAXDAYS 1来中止还原操作。

以下示例阐述RUN命令来从磁带上的自动备份还原spfile:
RUN
{
    ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS …;
    SET UNTIL TIME ‘SYSDATE-7’;
    SET CONTROLFILE AUTOBACKUP FORMAT
        FOR DEVICE TYPE sbt TO ‘/disk1/control_files/autobackup_%F’;
    SET DBID 123456789;
    RESTORE SPFILE
        TO ‘/tmp/spfileTEMP.ora’
        FROM AUTOBACKUP MAXDAYS 10;
}

4)使用还原的文件重启数据库实例。

如果使用非缺省位置的spfile重启RMAN,那么使用SPFILE=new_location来创建初始化参数文件,new_location是还原的spfile的路径名称。然后,使用客户端初始化参数文件重启实例。

例如,创建文件/tmp/init.ora,让它包含以下一行:
SPFILE=/tmp/spfileTEMP.ora

可以执行以下RMAN命令使用还原的spfile重启实例:
STARTUP FORCE PFILE=/tmp/init.ora;


1.从控制文件自动备份中还原spfile

如果已经配置了控制文件自动备份,那么不论何时执行自动备份,spfile与控制文件一起被备份。

从控制文件自动备份中还原spfile:
1)设置数据库的DBID。

2)使用RESTORE SPFILE FROM AUTOBACKUP命令。
如果自动备份不是缺省的格式,首先使用SET CONTROLFILE AUTOBACKUP FORMAT命令指定格式。

示例设置DBID和从非缺省位置的控制文件自动备份中还原spfile。RMAN使用自动备份格式和DBID搜索控制文件的自动备份。如果找到控制文件的自动备份,那么RMAN从备份中还原spfile到缺省位置。

SET DBID 320066378;
RUN
{
    SET CONTROLFILE AUTOBACKUP FORMAT
        FOR DEVICE TYPE DISK TO ‘autobackup_format’;
    RESTORE SPFILE FROM AUTOBACKUP;
}


2.使用RMAN创建初始化参数文件

也可以使用TO PFILE 'filename’子语句还原spfile为一个客户端的初始化参数文件。

指定的文件名称必须在运行RMAN客户端的主机上可以访问的文件系统中。文件不需要从运行实例的主机上可访问。

以下RMAN命令在运行RMAN客户端的系统上创建一个名称为/tmp/initTEMP.ora的初始化参数文件:
RESTORE SPFILE TO PFILE ‘/tmp/initTEMP.ora’;

在相同的运行RMAN的客户端主机上使用初始化参数文件重启实例:
STARTUP FORCE PFILE=‘/tmp/initTEMP.ora’;




来源:《Oracle Database Backup and Recovery User’s Guide,19c》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值