一、快速恢复区概念
快速恢复区是一个默认放置所有备份恢复操作有关文件的地方,包括:控制文件在线镜像、在线重做日志、归档日志、外来归档日志、控制文件镜像复制、数据文件镜像复制、RMAN备份片和闪回日志。放置在此位置的文件由Oracle数据库维护,生成的文件名以Oracle托管文件(OMF)格式维护。
如果启用快速恢复区,它就成了RMAN备份默认的去处,无论是RMAN备份片、镜像复制、还是控制文件自动备份,只要没有在RMAN配置或在backup命令中指明路径就全部进入快速恢复区。
二、快速恢复区相关参数
使用快速恢复区需要设置两个初始化参数,DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE。
db_recovery_file_dest:用于设置快速恢复区的路径(可以指向磁盘,也可以指向ASM磁盘组)。
db_recovery_file_dest_size:用于设置快速恢复区的大小。
注:设置快速恢复区要先设置大小,后设置路径。
在RAC环境下配置快速恢复区时,要保证每个节点的配置值都相同。
SQL> show parameter db_recovery_file_destNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oracle/app/fast_recovery_area
db_recovery_file_dest_size big integer 4560M
上述查询结果表明:
快速恢复区的位置:/oracle/app/fast_recovery_area
快速恢复区的大小:4560M
这两个参数可以再数据库运行过程中在线修改,修改后立即就能生效,举例如下:
SQL> alter system set db_recovery_file_dest_size=8G scope=both;System altered.SQL> alter system set db_recovery_file_dest='/oradata/fast_recovery_area' scope=both;System altered.SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.SQL> startupSQL> show parameter db_recovery;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oradata/fast_recovery_area
db_recovery_file_dest_size big integer 8G
三、Reset 快速恢复区
方法一:修改pfile参数文件
SQL> shutdown immediateSQL> create pfile from spfile;SQL> !vi $ORACLE_HOME/dbs/initdrz.ora删除如下内容*.db_recovery_file_dest_size=8589934592
*.db_recovery_file_dest='/oradata/fast_recovery_area'SQL> create spfile from pfile;SQL> startupSQL> show parameter db_recoveryNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
方法二:reset命令
SQL> alter system reset db_recovery_file_dest_size scope=spfile;SQL> alter system reset db_recovery_file_dest scope=spfile;SQL> shutdown immediateSQL> startupSQL> show parameter db_recoveryNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
四、快速恢复区的监控
DB_RECOVERY_FILE_DEST_SIZE参数值确定了快速恢复区能使用的存储空间上限。
如果定义了备份保留策略,oracle会根据策略判断哪些文件过期(obsolete)进而删除,但只有在定义了备份保留策略时,oracle才会自动判断和删除。当快速恢复区空间使用率达到90%时,会触发自动删除。删除过程会在alert文件中记录日志,但是如果没有空间可以释放,并且使用空间超过85%,就会记录一个warning日志;如果超过了97%,会记录一条critical warning日志,这些日志内容可以从dba_outstanding_alerts视图中看到。
日常工作中需要监控快速恢复区的使用情况,在需要时及时进行调整。
可以通过视图V$RECOVERY_FILE_DEST和V$RECOVERY_AREA_USAGE来监控快速恢复区的使用情况。