【DB笔试面试262】在Oracle中,RMAN中有哪几种保留策略?_Oracle

【DB笔试面试262】在Oracle中,RMAN中有哪几种保留策略?_Oracle_02


Q          题目如下所示:

在Oracle中,RMAN中有哪几种保留策略?


     
A          答案如下所示:          



答案:保留策略说明了要保留的备份冗余数量及保留的时间长度。有两类保留策略:恢复窗口保留策略和冗余保留策略,这两类保留策略互相排斥。可以通过使用RMAN的CONFIGURE命令或OEM(Oracle Enterprise Manager)来设置保留策略的值。

(1)恢复窗口保留策略:确定一个时间段,在此期间内必须可以执行时间点恢复,如下图所示:

【DB笔试面试262】在Oracle中,RMAN中有哪几种保留策略?_Oracle_03

 

最佳方案是确定一个时间段,在此期间内可以发现逻辑错误,然后通过执行时间点恢复正好恢复到错误前的那一点来修复受影响的对象,此时间段称为恢复窗口,此策略用天数指定。对于每个数据文件,都必须始终存在至少一个满足以下条件的备份:

SYSDATE – backup_checkpoint_time >= recovery_window

可以使用下列命令语法配置恢复窗口保留策略:

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF <天数> DAYS;

其中,“<天数>”是恢复窗口的长度。

如果未使用恢复目录,那么要防止控制文件中旧的备份记录被覆盖,恢复窗口时间段应小于或等于控制文件参数CONTROL_FILE_RECORD_KEEP_TIME的值。如果正在使用恢复目录,那么应确保CONTROL_FILE_RECORD_KEEP_TIME大于目录重新同步的间隔。

(2)冗余保留策略:确定必须保留的备份的数量(固定值),如下图所示:

【DB笔试面试262】在Oracle中,RMAN中有哪几种保留策略?_Oracle_04

 

如果需要保留一定数量的备份,可以通过冗余选项设置保留策略。此选项要求在任何备份被标识为过时之前将指定数量的备份列入目录。默认保留策略的冗余度为1,这表示在任意指定时间一个文件只存在一个备份。当同一文件的最新版本已经有备份时,上一个备份就被视为过时。可以使用下列命令重新配置冗余保留策略:

RMAN>CONFIGURE RETENTION POLICY TO REDUNDANCY <副本数>;

其中,“<副本数>”是满足策略所需的副本数量。可以使用下列命令禁用保留策略:

RMAN>CONFIGURE RETENTION POLICY TO NONE;

需要注意的是,可以指定某个备份不遵从所定义的保留策略,这称为归档备份。如果DBA不打算恢复到自执行该备份以后的某一时间点,只是希望能够正好恢复到执行该备份的确切时间。此外,还需要维护保留策略以使备份区井然有序,因此无法使备份恢复到两年前,此时可以使用归档备份。如果将某一备份标记为归档备份,那么该属性将覆盖为此备份目的配置的所有保留策略。保留归档备份时,可将其指定为仅在某一特定时间过时,也可以将其指定为永不过时。如果要指定后者,那么需要使用恢复目录。KEEP子句会创建一个归档备份,此备份是某个时间点的数据库快照。可以使用RMAN通过以下语法创建归档备份:

BACKUP...KEEP {FOREVER|UNTIL TIME 'SYSDATE + <n>' } RESTORE POINT <restore_point_name>

使用UNTIL TIME子句可指定保留策略对归档备份失效的时间。也可指定FOREVER,这意味着归档备份始终保持不变,除非执行其它操作进行更改。此外,还可以使用RESTORE POINT子句指定要与此备份关联的还原点的名称。