Oracle闪回区(FRA)

文章转载于http://blog.csdn.net/leshami/article/details/14230679


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/<db_name>/<file_type>/<date>/<file_name>

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的使用  

[sql]  view plain  copy
 print ?
  1. --环境  
  2. sys@USBO> select * from v$version where rownum<2;  
  3.   
  4. BANNER  
  5. ---------------------------------------------------------------------------------------------------  
  6. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production  
  7.   
  8. --设定FRA的大小  
  9. sys@USBO> alter system set db_recovery_file_dest_size=3852m;  
  10.   
  11. --设定FRA的位置  
  12. sys@USBO> alter system set db_recovery_file_dest='/u03/database/usbo/fr_area';    
  13.   
  14. --FRA位置可存储的文件类型  
  15. sys@USBO> select file_type from v$flash_recovery_area_usage;  
  16.   
  17. FILE_TYPE  
  18. ------------------------------------------------------------  
  19. CONTROL FILE  
  20. REDO LOG  
  21. ARCHIVED LOG  
  22. BACKUP PIECE  
  23. IMAGE COPY  
  24. FLASHBACK LOG  
  25. FOREIGN ARCHIVED LOG  
  26.   
  27. --闪回区的相关信息  
  28. sys@USBO> select * from v$recovery_file_dest;  
  29.   
  30. NAME                                               SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES  
  31. -------------------------------------------------- ----------- ---------- ----------------- ---------------  
  32. /u03/database/usbo/fr_area                          4039114752 3207343104         830105600              52  
  33.     
  34. --闪回区使用的详细情形  
  35. sys@USBO> select * from v$flash_recovery_area_usage;  
  36.   
  37. FILE_TYPE                      PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES  
  38. ------------------------------ ------------------ ------------------------- ---------------  
  39. CONTROL FILE                                    0                         0               0  
  40. REDO LOG                                        0                         0               0  
  41. ARCHIVED LOG                                49.33                     20.31              48  
  42. BACKUP PIECE                                30.08                       .24               4  
  43. IMAGE COPY                                      0                         0               0  
  44. FLASHBACK LOG                                   0                         0               0  
  45. FOREIGN ARCHIVED LOG                            0                         0               0  
  46.   
  47. --当前闪回区已存在的文件类型   
  48. sys@USBO> ho ls /u03/database/usbo/fr_area/USBO  
  49. archivelog  backupset  snap  
  50.   
  51. --结合FRA设置多路归档位置  
  52. sys@USBO> archive log list;  
  53. Database log mode              Archive Mode  
  54. Automatic archival             Enabled  
  55. Archive destination            USE_DB_RECOVERY_FILE_DEST  
  56. Oldest online log sequence     91  
  57. Next log sequence to archive   93  
  58. Current log sequence           93  
  59. sys@USBO> show parameter log_archive_dest_10;  
  60.   
  61. NAME                                 TYPE                              VALUE  
  62. ------------------------------------ --------------------------------- ------------------------------  
  63. log_archive_dest_10                  string  
  64. sys@USBO> show parameter log_archive_dest_1;  
  65.   
  66. NAME                                 TYPE                              VALUE  
  67. ------------------------------------ --------------------------------- ------------------------------  
  68. log_archive_dest_1                   string  
  69.   
  70. --设置log_archive_dest_10  
  71. sys@USBO> alter system set log_archive_dest_10='LOCATION=USE_DB_RECOVERY_FILE_DEST';  
  72.   
  73. System altered.  
  74.   
  75. --设置log_archive_dest_1  
  76. sys@USBO> alter system set log_archive_dest_1='LOCATION=/u03/database/archdir';  
  77.   
  78. System altered.  
  79.   
  80. sys@USBO> ho ls /u03/database/archdir  
  81.   
  82. sys@USBO> ho ls /u03/database/usbo/fr_area/USBO/archivelog/2013_11_06  
  83.   
  84. --日志切换  
  85. sys@USBO> alter system switch logfile;  
  86.   
  87. System altered.  
  88.   
  89. --查看生成的归档日志  
  90. sys@USBO> ho ls /u03/database/archdir  
  91. 1_93_826991792.dbf  
  92.   
  93. sys@USBO> ho ls /u03/database/usbo/fr_area/USBO/archivelog/2013_11_06  
  94. o1_mf_1_93_97n1kwrp_.arc  
  95.   
  96. --注意,此处日志使用了不同的格式,对于FRA,使用的是o1_mf_1_93_97n1kwrp_.arc,而磁盘位置使用的是1_93_826991792.dbf  
  97. --即普通的磁盘按照参数log_archive_format生成归档日志文件名格式,而FRA则是按照OMF方式来记录日志文件名格式  
  98. --可参考: Oralce OMF 功能详解 http://blog.csdn.net/leshami/article/details/5478323  

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值