Oracle 闪回区(Oracle Flash recovery area)

    Oracle闪回区已经有了好几载的岁月了,在10g的时候就被推出一直延续到现在。Oracle闪回区是为RMAN准备的,尽管抛开它我们可以同样完成数据库备份恢复的相关工作,Oracle依旧强烈推荐使用且它让其成为RMAN的组件之一。这是因为该区域可集中简化管理所有和备份恢复工作,这也是其魅力所在。本文描述了Oracle闪回区的特性及其配置闪回区,监控闪回区等。

 

1、闪回区特性及其配置

闪回区
   就是分配一个特定的目录位置(普通磁盘上的目录或ASM磁盘)来存放一些特定的恢复文件,用于集中和简化管理数据库恢复工作。
   通过配置闪回区,可以避免在多实例归档到相同磁盘时,磁盘空间耗尽而影响所有实例的情行。也就是说缩小影响范围。
   闪回区单词缩写为FRA,下面的描述FRA即指的是闪回区,也可能存在混用闪回区或FRA的情形。
 
闪回区可存储文件的类型
   完全的数据文件备份
   增量备份
   数据文件副本
   当前的控制文件,备份的控制文件,spfile文件,快照控制文件
   联机日志文件,归档日志
   块跟踪文件、闪回日志

启用与禁用闪回区
   设置下面的初始化参数(spfile或pfile文件)
     DB_RECOVERY_FILE_DEST_SIZE:用于设置闪回区的大小,此参数应优先于DB_RECOVERY_FILE_DEST参数修改,否则ORA-32001
     DB_RECOVERY_FILE_DEST:用于设置闪回区的目录
     DB_FLASHBACK_RETENTION_TARGET:指定数据库可以闪回的时间范围,单位为分钟,默认1440分钟,也就是一天
     数据库闪回分为多种情形,其闪回日志存放在FRA,可闪回的时间同时还取决于闪回恢复区的大小
     将DB_RECOVERY_FILE_DEST参数设置为空,可以停用FRA,但是启用flashback database,则不能取消FRA,需要先禁用flashback database
 
   数据库FRA可以为每个数据库配置不同的闪回区,也可以为多个数据库配置相同路径的闪回区
   当为多个数据库配置相同的闪回区位置时,应考虑闪回区所在磁盘挂载点的总大小以及使用不同的DB_NAME
   多个数据库或实例使用相同的闪回区时,其路径为:FRA_HOME////

FRA中的保留策略 
   FRA中的文件的保留与否由RMAN保留策略来决定。通过执行RMAN configure retention policy命令来设置其策略
   对于没有关联保留策略或是永久文件,文件永远不会被删除
   对于关联保留策略的文件,没有过时的情况下不会被删除,一旦过时,在空间压力下回自动被删除

FRA与多路日志归档
   如果设置了归档日志参数log_archive_dest_n,归当时会使用该位置而不是使用FRA
   如果未设置参数log_archive_dest_n,而是启用FRA,则可以不需要再单独设置归档日志参数log_archive_dest_n,归档日志会位于FRA
   对于启用FRA后,不可再设置log_archive_dest、log_archive_duplex_dest,也就是说存在排他模式。可参考:Oracle 归档日志  
   对于既要归档到log_archive_dest_n,又要归档到FRA的情形,需要设置参数log_archive_dest_10(缺省情况)给FRA,如下:
      alter system set log_archive_dest_10='LOCATION=USE_DB_RECOVERY_FILE_DEST';
      alter system set log_archive_dest_1='LOCATION=/u03/database/archdir';
  
2、FRA空间分配与监控
  对于启用FRA特性之后,FRA帮助管理全部的磁盘空间分配。Oracle会自动监控FRA空间的使用情况。
  关于FRA空间分配大小应考虑当前数据库备份的方式,备份是否压缩,每天归档日志大小,是否启用了闪回等多项因素综合来考量
  FRA中可用空间达到不安全的程度或不够用的情形,可以通过OEM或DBA_OUTSTANDING_ALERTS获得相关信息
     会在Alert日志文件中生成警告
     当可回收空间低于DB_RECOVERY_FILE_DEST_SIZE定义值的15%时,生成警报
     当可回收空间低于DB_RECOVERY_FILE_DEST_SIZE定义值的3%时,生成严重警报
     当整个FRA被完全填满时,系统不可用,直接给你ORA-19815,ORA-19809 :limit exceeded for recovery files
     注FRA空间被填满,不表示当前的磁盘挂载点空间不够。
    
  FRA空间不够用或出现严重告警的情形,应考虑从以下方面着手解决
     如果仅仅是参数DB_RECOVERY_FILE_DEST_SIZE大小限制,磁盘空闲空间很多,则直接修改该参数到一个更大的值
     如果磁盘空闲空间不多,应考虑分配更多的磁盘空间给文件系统,然后再修改DB_RECOVERY_FILE_DEST_SIZE参数到一个更大的值
     如果无法分配额外的磁盘空间,可以考虑迁移FRA到有较多可用空间的另外一个文件系统
     可以使用backup recovery area命令将整个FRA内容移动到另外的位置
     删除FRA中较早备份集或归档日志,建议使用RMAN命令来删除,若直接从os删除,Oracle认为FRA的空间并没有释放(需要crosscheck再delete)
  --Author : Leshami
  --Blog   :
http://blog.csdn.net/leshami
  
3、监控FRA
  Oracle除了在alert日志中对有关FRA空间产生警告之外,还提供了一系列相关的视图来监控FRA
  DBA_OUTSTANDING_ALERTS
     可以查询FRA空间相关的问题,注,空间问题记录到该视图中存在一定程度的延迟,也就是说不够及时
    
  V$RECOVERY_FILE_DEST
     该视图中描述了与FRA有关的定义信息,包括FRA的位置,大小,所使用的空间数量,可回收空间等等
    
  V$FLASH_RECOVERY_AREA_USAGE
     该视图提供了关于占用FRA空间的文件类型的详细信息。按文件类型进行分组,分别列出该类文件已使用的,可回收的百分比以及文件数量

 

4、演示FRA的使用  

--环境
sys@USBO> select * from v$version where rownum<2;

BANNER
---------------------------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

--设定FRA的大小
sys@USBO> alter system set db_recovery_file_dest_size=3852m;

--设定FRA的位置
sys@USBO> alter system set db_recovery_file_dest='/u03/database/usbo/fr_area';  

--FRA位置可存储的文件类型
sys@USBO> select file_type from v$flash_recovery_area_usage;

FILE_TYPE
------------------------------------------------------------
CONTROL FILE
REDO LOG
ARCHIVED LOG
BACKUP PIECE
IMAGE COPY
FLASHBACK LOG
FOREIGN ARCHIVED LOG

--闪回区的相关信息
sys@USBO> select * from v$recovery_file_dest;

NAME                                               SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------------------------------------- ----------- ---------- ----------------- ---------------
/u03/database/usbo/fr_area                          4039114752 3207343104         830105600              52
  
--闪回区使用的详细情形
sys@USBO> select * from v$flash_recovery_area_usage;

FILE_TYPE                      PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------------------------ ------------------ ------------------------- ---------------
CONTROL FILE                                    0                         0               0
REDO LOG                                        0                         0               0
ARCHIVED LOG                                49.33                     20.31              48
BACKUP PIECE                                30.08                       .24               4
IMAGE COPY                                      0                         0               0
FLASHBACK LOG                                   0                         0               0
FOREIGN ARCHIVED LOG                            0                         0               0

--当前闪回区已存在的文件类型 
sys@USBO> ho ls /u03/database/usbo/fr_area/USBO
archivelog  backupset  snap

--结合FRA设置多路归档位置
sys@USBO> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     91
Next log sequence to archive   93
Current log sequence           93
sys@USBO> show parameter log_archive_dest_10;

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
log_archive_dest_10                  string
sys@USBO> show parameter log_archive_dest_1;

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
log_archive_dest_1                   string

--设置log_archive_dest_10
sys@USBO> alter system set log_archive_dest_10='LOCATION=USE_DB_RECOVERY_FILE_DEST';

System altered.

--设置log_archive_dest_1
sys@USBO> alter system set log_archive_dest_1='LOCATION=/u03/database/archdir';

System altered.

sys@USBO> ho ls /u03/database/archdir

sys@USBO> ho ls /u03/database/usbo/fr_area/USBO/archivelog/2013_11_06

--日志切换
sys@USBO> alter system switch logfile;

System altered.

--查看生成的归档日志
sys@USBO> ho ls /u03/database/archdir
1_93_826991792.dbf

sys@USBO> ho ls /u03/database/usbo/fr_area/USBO/archivelog/2013_11_06
o1_mf_1_93_97n1kwrp_.arc

--注意,此处日志使用了不同的格式,对于FRA,使用的是o1_mf_1_93_97n1kwrp_.arc,而磁盘位置使用的是1_93_826991792.dbf
--即普通的磁盘按照参数log_archive_format生成归档日志文件名格式,而FRA则是按照OMF方式来记录日志文件名格式
--可参考: Oralce OMF 功能详解 http://blog.csdn.net/leshami/article/details/5478323

 

Oracle 牛鹏社    Oracle DBsupport

更多参考

有关Oracle RAC请参考
     使用crs_setperm修改RAC资源的所有者及权限
     使用crs_profile管理RAC资源配置文件
     RAC 数据库的启动与关闭
     再说 Oracle RAC services
     Services in Oracle Database 10g
     Migrate datbase from single instance to Oracle RAC
     Oracle RAC 连接到指定实例
     Oracle RAC 负载均衡测试(结合服务器端与客户端)
     Oracle RAC 服务器端连接负载均衡(Load Balance)
     Oracle RAC 客户端连接负载均衡(Load Balance)
     ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
     ORACLE RAC 监听配置 (listener.ora tnsnames.ora)
     配置 RAC 负载均衡与故障转移
     CRS-1006 , CRS-0215 故障一例 
     基于Linux (RHEL 5.5) 安装Oracle 10g RAC
     使用 runcluvfy 校验Oracle RAC安装环境

有关Oracle 网络配置相关基础以及概念性的问题请参考:
     配置非默认端口的动态服务注册
     配置sqlnet.ora限制IP访问Oracle
     Oracle 监听器日志配置与管理
     设置 Oracle 监听器密码(LISTENER)
     配置ORACLE 客户端连接到数据库

有关基于用户管理的备份和备份恢复的概念请参考
     Oracle 冷备份
     Oracle 热备份
     Oracle 备份恢复概念
     Oracle 实例恢复
     Oracle 基于用户管理恢复的处理
     SYSTEM 表空间管理及备份恢复
     SYSAUX表空间管理及恢复
     Oracle 基于备份控制文件的恢复(unsing backup controlfile)

有关RMAN的备份恢复与管理请参考
     RMAN 概述及其体系结构
     RMAN 配置、监控与管理
     RMAN 备份详解
     RMAN 还原与恢复
     RMAN catalog 的创建和使用
     基于catalog 创建RMAN存储脚本
     基于catalog 的RMAN 备份与恢复
     RMAN 备份路径困惑
     使用RMAN实现异机备份恢复(WIN平台)
     使用RMAN迁移文件系统数据库到ASM
     linux 下RMAN备份shell脚本
     使用RMAN迁移数据库到异机

有关ORACLE体系结构请参考
     Oracle 表空间与数据文件
     Oracle 密码文件
     Oracle 参数文件
     Oracle 联机重做日志文件(ONLINE LOG FILE)
     Oracle 控制文件(CONTROLFILE)
     Oracle 归档日志
     Oracle 回滚(ROLLBACK)和撤销(UNDO)
     Oracle 数据库实例启动关闭过程
     Oracle 10g SGA 的自动化管理
     Oracle 实例和Oracle数据库(Oracle体系结构) 

你可能感兴趣的:(-----RMAN备份恢复)