可以配置RMAN自动备份控制文件和服务器参数文件。无论何时备份记录增加时自动备份都会发生。
如果数据库运行在ARCHIVELOG归档模式,那么无论何时在控制文件的数据库结构元数据发生变化,自动备份也会执行。控制文件自动备份让RMAN可以恢复数据库,即使当前的控制文件,恢复目录和服务器初始化文件已丢失。
因为自动备份的文件名称遵循已知的格式,RMAN可以搜索它而不用访问恢复目录,然后还原服务器参数文件(RMAN> restore spfile to ‘/tmp/spfile.ora’;)。在使用还原的服务器参数文件启动实例后,RMAN可以从自动备份还原控制文件。在挂载控制文件之后,RMAN恢复目录可用,RMAN可以还原数据文件和找到归档redo日志。
启用自动备份特性:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
禁用自动备份特性:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
缺省情况下,初始化参数COMPATIBLE设置为12.2或更高的CDB和单机数据库的控制文件自动备份已打开。
1.配置控制文件自动备份格式
缺省情况下,所有配置设备的自动备份文件的格式是在FORMAT子语句中的替换变量%F。
%F变量格式转换成c-IIIIIIIIII-YYYYMMDD-QQ,占位符定义如下:
• IIIIIIIIII代表DBID.
• YYYYMMDD 备份生成当天的时间戳
• QQ 十六进制序列以00开始,最大为FF
例如,c-1621429708-20220505-00
更改自动备份文件的缺省格式:
使用以下命令,deviceSpecifier是任何有效的设备类型,‘string’ 必须包含替换变量%F(不能包含其它替换变量)和是指定设备的有效的句柄:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE deviceSpecifier TO ‘string’;
例如,可以运行以下命令来为控制文件自动备份指定一个非缺省的文件名称。在文件名称中,?代表ORACLE_HOME。
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO ‘?/oradata/cf_%F’;
以下示例配置自动备份写到ASM磁盘组:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
FOR DEVICE TYPE DISK TO ‘+dgroup1/%F’;
注:控制文件自动备份的有效格式是:%D, %I, %M, %Y, %F, %T, %d和%n。如果使用这些之外的其它格式,可能会无法还原控制文件自动备份。
为设备清除控制文件自动备份的格式:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE sbt CLEAR;
如果已经为数据库设置了快速恢复区域,那么可以定位控制文件自动备份到快速恢复区域,通过为磁盘清除控制文件自动备份格式来实现。
注:快速恢复区域的所有文件由Oracle数据库维护,相关的文件名称以OMF(Oracle Managed Files)格式维护。
2.覆盖配置的控制文件自动备份格式
命令SET CONTROLFILE AUTOBACKUP FORMAT可以在RUN命令中或在RMAN提示符指定,只在当前会话中覆写配置的自动备份格式。
优先顺序如下:
1)SET CONTROLFILE AUTOBACKUP FORMAT (在RUN块中)
2)SET CONTROLFILE AUTOBACKUP FORMAT (在RMAN提示符)
3)CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
以下示例显示SET CONTROLFILE AUTOBACKUP的两种形式如何交互:
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘controlfile_%F’;
BACKUP AS COPY DATABASE;
RUN
{
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/tmp/%F.bck’;
BACKUP AS BACKUPSET
DEVICE TYPE DISK
DATABASE;
}
第一条SET CONTROLFILE AUTOBACKUP FORMAT控制控制文件自动备份的名称直到RMAN客户端退出,覆盖任何配置的控制文件自动备份格式。在RUN块中的SET CONTROLFILE AUTOBACKUP FORMAT在RUN块的持续期间覆盖RUN块外面的SET CONTROLFILE AUTOBACKUP FORMAT。
来源:《Oracle Database Backup and Recovery User’s Guide,19c》