RMAN在使用控制文件备份的时候,备份开始点需要最新的检查点信息以及文件头信息。同时,在整个备份期间需要保证控制文件的一致性。但是对于一个实时更新的数据库系统,这是无法保证的,因为备份期间数据库需要写检查点、切换日志,这些更新都会记录到控制文件中。为了保证控制文件的一致性,RMAN使用snapshot control file,在备份开始时,将控制文件保存一个最新的快照,RMAN使用这个控制文件的快照进行后面的备份。RMAN 开始备份时,Oracle检查控制文件与快照控制文件是否一致(如果不存在,从控制文件提取信息创建),不一致则刷新快照控制文件。RMAN从快照控制文件读取信息进行备份,如果快照控制文件并不包含新的表空间,因此备份集中没有新的表空间。
查看snapshot controlfile的备份设置:
RMAN> show snapshot controlfile name;
从oracle 11.2.0.2.0开始,控制文件的快照文件必须能够被所有节点的数据实例访问到,并且必须放在共享的位置。否则,使用RMAN进行备份控制文件的时候会报如下错误:
ORA-00245: control file backup operationfailed。
参见: In RAC environment from 11.2 onwards Backup Or Snapshot controlfile needs to be in shared location [ID 1472171.1]
修改快照配置:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘+DATA/SHORT/PARAMETERFILE/snapcf_short.f’;
在一个节点上修改这个配置,在所有的节点上都会起作用。