快速恢复区(Fast Recovery Area, FRA) 以前称为Flash Recovery Area。
• 永久项目:
– 当前控制文件的多路复用副本
– 联机重做日志的多路复用副本
• 临时项目:
– 归档重做日志
– 数据文件副本
– 控制文件副本
– 控制文件自动备份
– 备份片段
– 闪回日志
使用快速恢复区
快速恢复区是Oracle DB 中所有与恢复相关的文件和活动的统一存储位置。在发生介质故障后完全恢复数据库所需的所有文件都包含在快速恢复区中。
与恢复相关的文件有两种类型:永久文件和临时文件。
永久文件由实例主动使用。临时文件只有在执行某类恢复操作时才需要。
永久项目
• 控制文件:根据几个初始化参数的设置,控制文件的副本是在创建新数据库或控制文
件时在快速恢复区中创建的。
• 联机重做日志文件的多路复用副本:可包含每个重做日志组的镜像副本。创建数据库时,可以使用LOGFILE子句指定联机重做日志文件的位置。如果未包含该子句,则系统会根据下列初始化参数的值设置位置:
- DB_CREATE_ONLINE_LOG_DEST_n:如果设置了这些变量中的一个或多个,则只使用这些位置。
- DB_CREATE_FILE_DEST:如果设置了此参数,则该位置是主要文件位置。
- DB_RECOVERY_FILE_DEST:如果除DB_CREATE_FILE_DEST外还设置了此参数,则此位置将用作镜像。
临时项目
• 归档重做日志文件:配置了快速恢复区后,LOG_ARCHIVE_DEST_1会被自动设置为快速恢复区位置。归档进程后台进程会在快速恢复区和所配置的其它
LOG_ARCHIVE_DEST_n位置中创建归档重做日志文件。如果未定义LOG_ARCHIVE_DEST_n位置,则归档重做日志文件的默认位置是快速恢复区。
• 闪回日志:启用闪回数据库时会生成闪回日志。
• 控制文件自动备份:由RMAN 创建的控制文件自动备份和由Oracle DB Server 生成的自动备份的默认位置是快速恢复区。
• 数据文件副本:BACKUP AS COPY命令在快速恢复区中创建映像数据文件副本。
• RMAN 文件:快速恢复区是RMAN 用于备份和通过恢复操作从磁带还原归档日志内容的默认位置。
注:如果FRA 需要高性能,考虑将其创建在其自己的物理磁盘和控制器上。
FRA 是通过设置以下两个动态初始化参数来定义的:
• DB_RECOVERY_FILE_DEST_SIZE:设置磁盘限制
• DB_RECOVERY_FILE_DEST:设置FRA 的位置
sys@TEST0924> show parameter DB_RECOVERY_FILE_DEST
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size big integer 4122M
使用以下必需参数定义FRA:
• DB_RECOVERY_FILE_DEST_SIZE:必须定义磁盘限制,这是允许FRA 使用的空间量。通过设置限制可留出一部分磁盘空间作为它用,而不被FRA 所专用。
- 对于磁盘限制大小,基本的建议是使其等于数据库大小、增量备份大小和尚未复制到磁带的所有归档日志文件的大小的总和。给出该建议是因为Oracle 建议的备份策略先执行数据库的一个映像副本(不包含临时文件),然后执行增量备份。
-FRA 的最小大小应至少足够放得下尚未复制到磁带的归档重做日志文件。
-FRA 的大小取决于备份策略和所实施的其它选项。保证还原点也会影响FRA 的大小。
• DB_RECOVERY_FILE_DEST:FRA 说明中包含一个位置,这个位置是用于创建文件的有效目标。
可以使用Oracle Enterprise Manager Grid Control 和Database Control 轻松地定义FRA。
导航到“Availability > Recovery Settings(可用性> 恢复设置)”。可以在“Recovery Settings(恢复设置)”页上定义FRA 的位置和大小。在指定FRA 的位置时必须设置其大小。
RMAN 每次在快速恢复区中创建文件时,都会更新磁盘上不再需要的文件的列表。根据DB_REOVERY_FILE_DEST_SIZE的值,当快速恢复区因没有可删除的文件而出现空间紧缺或空闲空间不足的情况时,系统会警告存在磁盘空间不足的危险。这时,Oracle DB Server 和RMAN 会继续在快速恢复区中创建文件,直到达到100% 磁盘限制。
设置DB_RECOVERY_FILE_DEST_SIZE时,必须分配足够的空间来存放恢复文件,包括等待备份到磁带的备份。
为了提供空闲空间,过时或已备份到磁带的文件都可能被删除。
将某一文件写入到快速恢复区时,如果需要为该文件腾出空间,Oracle DB Server 会删除过时文件列表中的某个文件。
在快速恢复区中写入和删除文件时,会向预警日志写入通知。
注:当快速恢复区的已用空间达到85% 时,会发出警告;当已用空间达到97% 时,会发出严重警告。这些都是内部设置,无法更改。
以下是一个预警日志输出示例:
WARNING: db_recovery_file_dest_size of 52428800 bytes is
100.00% used, and has 0 remaining bytes available.
可以发出以下查询来确定要执行的操作:
SQL> SELECT object_type, message_type, message_level,
2 reason, suggested_action
3 FROM dba_outstanding_alerts;
可以选择增加额外的磁盘空间、将文件备份到三级存储设备、使用RMAN 从快速恢复区删除文件或考虑更改RMAN 保留策略。
• 将保留策略配置为适合数据库的最小值。
• 定期备份归档日志文件并在完成备份后删除这些文件。
• 此外,还可以配置归档重做日志删除策略。
• 使用RMAN REPORT OBSOLETE和DELETE OBSOLETE命令删除不需要的备份和文件副本。
快速恢复区空间使用情况
为避免出现快速恢复区空间不足的情况,根据需要或在适用情况下执行以下步骤:
• 使用RMAN 从快速恢复区删除不需要的文件。
• 使用RMAN 经常备份快速恢复区。
• 更改RMAN 保留策略,缩短备份的保留期。
• 更改RMAN 归档日志删除策略。
• 如果经常出现空间不足的情况,则增加磁盘空间并增大DB_RECOVERY_FILE_DEST_SIZE数据库初始化参数值。
Oracle Enterprise Manager 不报告快速恢复区在磁盘上使用的空间量,也不报告在快速恢复区目录树中使用的空间量,但报告RMAN 认为位于目录中的文件的大小。所以不要将任何文件放在此不受RMAN 管理的区域。
如果使用RMAN 之外的工具从此区域删除任何文件,则使用RMAN 从目录中删除文件项。
例如,要备份快速恢复区中的归档日志文件,然后在成功备份这些文件后将其删除,应使用如下RMAN 命令:
BACKUP ARCHIVELOG ALL DELETE ALL INPUT;
即使使用RMAN 之外的备份解决方案,仍需要使用RMAN 从快速恢复区删除这些文件。
备份归档重做日志文件并将这些文件从磁盘中删除后,应使用RMAN 的CROSSCHECK和DELETE命令从快速恢复区回收归档日志空间。这个操作应定期执行或在每次备份后执行。
还可以使用Oracle Enterprise Manager 的“Manage Backups(管理备份)”页来管理备份。
可以在该页上执行交叉检查操作,还可以删除失效和过时的备份。
配置归档重做日志删除策略
可以使用CONFIGURE ARCHIVELOG DELETION POLICY命令指定归档重做日志何时才能删除。该删除策略适用于所有归档目标,包括FRA。
归档重做日志可由数据库自动删除,或因用户启动的RMAN 命令而删除:
• 只有FRA 中的日志可由数据库自动删除。对于FRA 中的归档重做日志文件,数据库将尽可能长地保留这些文件,并在需要额外磁盘空间时自动删除符合条件的日志。
• 发出BACKUP ... DELETE INPUT或DELETE ARCHIVELOG时,可以从任何位置(无论在FRA 内部还是外部)手动删除符合条件的日志。
• 默认值为:CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
简化了多组件环境中的归档日志管理
当归档日志由多个组件(例如Streams)使用时,此功能简化了归档日志管理。它还提高了当快速恢复区中的归档日志丢失或无法访问时,备份归档日志时的可用性。
增强了删除策略的配置
仅当任何必需的组件(如Data Guard、Streams、Flashback Database,等等)都不需要归档重做日志时,才能将归档重做日志删除。配置了归档日志删除策略后,该配置会应用到所有归档目标,包括FRA。BACKUP... DELETE INPUT和DELETE... ARCHIVELOG都使用
此配置,FRA 也是。
备份恢复区时,如果FRA 中的归档重做日志无法访问或已损坏,则RMAN 可故障转移到其它归档重做日志目标位置。
通过Oracle Enterprise Manager Database Control 可以查看实时FRA 度量值。在主页上,向下滚动到“Related Links(相关链接)”部分,选择“All Metrics(所有度量)”。浏览列表,然后单击“Recovery Area(恢复区)”。
此时出现的页面将显示“Recovery Area Free Space (%)(恢复区空闲空间(%))”度量,该度量指示恢复区空闲空间的百分比。单击该百分比数字可查看恢复区使用情况。
为与恢复相关的文件使用快速恢复区具有以下优点:
• 便于确定数据库备份的位置
• 自动管理为恢复文件分配的磁盘空间
为与恢复相关的所有文件使用FRA 可简化数据库的日常管理工作。
Oracle Corporation 建议为所有与恢复相关的文件使用快速恢复区。
可以通过ALTER SYSTEM修改快速恢复区的大小。
sys@TEST0924> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_
area
db_recovery_file_dest_size big integer 4122M
sys@TEST0924>
ALTER SYSTEM SET db_recovery_file_dest_size = 510485760 SCOPE=BOTH;
System altered.
sys@TEST0924> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_
area
db_recovery_file_dest_size big integer 510485760