OracleRAC -- FRA理解
一、闪回恢复区简介
FRA(Fast Recovery Area)闪回恢复区,允许存储所有与恢复相关的所有文件。包含控制文件、联机重做日志、归档日志、闪回日志和 RMAN 备份。
FRA可以使用本地附加的存储、Oracle的群集文件系统(Cluster File System,简写为OCFS)或Oracle 10g中新的自动存储管理(ASM)特性。Oracle 数据库通过Oracle Managed Files (OMF)的方式管理这些文件。
二、包含的文件类型
文件类型 | 说明 |
归档的重做日志 | 归档的重做日志文件在FRA中 |
控制文件 | 当创建数据库时,FRA中创建控制文件的一个副本 |
控制文件自动备份 | RMAN对控制文件的自动备份放在FRA中(如果定义FRA) |
闪回日志 | 闪回日志将存储在FRA中(如果定义FRA) |
重做日志 | 每个重做日志组成员的一个副本放在FRA中 |
RMAN数据文件副本 | RMAN数据文件副本放在FRA中(如果定义FRA) |
RMAN备份和其他相关文件 | RMAN常规备份集的默认位置是FRA(如果定义FRA) |
三、参数设定
FRA的分配空间的尺寸和位置,由两个参数决定。
DB_RECOVERY_FILE_DEST:定义位置,该位置可以是文件系统或ASM卷
DB_RECOVERY_FILE_DEST_SIZE:定义最大尺寸,这是Oracle控制的文件空间限制,而与文件系统中的全部可用空间无关。
在Oracle 11g中,如果可回收空间低于DB_RECOVERY_FILE_DEST_SIZE参数值15%时,将会出现警告,可以通过DBA_OUTSTANDING_ALERTS表查看。当Oracle中FRA中的空闲空间少于10%时,Oracle就会删除处在过时列表中的文件。
注意:
如果闪回恢复区是唯一的归档日志目标,那么FRA中的空间被用完时。数据库会被挂起。所以如果FRA是唯一的,就必须仔细观察期空间可用性。
*需要在指定位置前,先指定尺寸,否则报ORA-32001错误
FRA两个关键参数设置
为了能让数据库拥有多个归档重做日志的位置,可以通过设定LOG_ARCHIVE_DEST_n参数来定义。
设置LOG_ARCHIVE_DEST_1为常用归档日志目录
设置LOG_ARCHIVE_DEST_10为FRA位置。
####log_archive_min_succeed_dest=2
####log_archive_format="prod_%t_%s_%r.arc"
四、FRA视图
1. DBA_OUTSTANDING_ALERT:从FRA中添加或删除文件时事件将会记录在警告日志中。可以检查新的DBA视图DBA_OUTSTANDING_ALERT来了解关于FRA一些选著问题的信息。空间相关问题产生的时间和警告出现在DBA_OUTSTANDING_ALERT中的时间存在一定程度的延迟。
2.V$RECOVERY_FILE_DEST:提供在数据库中定义的FRA的概述。提供配置的FRA的大小、所使用的空间数量、可以回收多少空间,以及FRA中的文件数量。该视图中包含SPACE_RECLAIMABLE列,该列指示有可回收的空间,该空间由归档的重做日志或备份集占用,根据已选择的标准,已不再需要这些空间。
3. V$FLASH_RECOVERY_AREA_USAGE:FRA空间各个文件类型的详细信息。该视图对文件类型进行分组,然后根据每个文件类型所使用的空间百分比、来自于该组的总FRA可回收空间百分比,以及来自于改组的FRA文件数量。
注:手工删除FRA中固定的文件会产生无法预料的结果,Oracle不会立刻检测出这些文件是否删除,所以也不会收回相应的空间。如果最终手工删除文件,则使用RMAN
crosscheck结合delete命令来使Oracle更新FRA上的当前控制文件信息。
是否应该使用FRA?
oracle表示,他们倾向于使用FRA和至少一个位于不同磁盘位置上的其他的归档日志目标,来配置数据库。(通过LOG_ARCHIVE_DEST_n来配置)
五、操作演示:
步骤1:为归档的重做日志设置FRA和目录
SQL> alter system set db_recovery_file_dest_size=2G;
SQL> alter system set db_recovery_file_dest='/oracle/dbs/oradata/arpdb/flash_recovery_area';
步骤2:定义两个归档日志目录
SQL> alter system set log_archive_dest_1='location=/oracle/dbs/oradata/arpdb/archivelog';
SQL> alter system set log_archive_dest_10='location=USE_DB_RECOVERY_FILE_DEST';
SQL> alter system set log_archive_min_succeed_dest=2;
SQL> show parameter archive;
步骤3.数据库开启归档模式
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;
测试环境归档
SQL> alter system switch logfile;