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

--环境
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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

ASM 磁盘、目录的管理

ASM磁盘是ASM体系结构的重要组成部分,ASM磁盘由ASM实例来定位、管理,本文主要讲述ASM磁盘组、故障组等等。

1334
来自专栏乐沙弥的世界

Oracle 归档日志

Oracle可以将联机日志文件保存到多个不同的位置,将联机日志转换为归档日志的过程称之为归档。相应的日志被称为归档日志。

822
来自专栏L宝宝聊IT

MFS分布式文件系统

2255
来自专栏程序员的SOD蜜

Oracle 免费的数据库--Database 快捷版 11g 安装使用与"SOD框架"对Oracle的CodeFirst支持

一、Oracle XE 数据库与连接工具安装使用 Oracle数据库历来以价格昂贵出名,当然贵有贵的道理,成为一个Oracle DBA也是令人羡慕的事情,如果程...

4227
来自专栏xingoo, 一个梦想做发明家的程序员

oracle数据库性能

性能视图V$开头 V$SYSTEM_EVENT 正在等待的资源的系统信息 V$SESSION_EVENT 会话累计发生的等待事件 V$SESSION_WAIT ...

2237
来自专栏散尽浮华

分布式监控系统Zabbix-3.0.3-完整安装记录(3)-监控nginx,php,memcache,Low-level discovery磁盘IO

前段时间在公司IDC服务器上部署了zabbix3.0.3监控系统,除了自带的内存/带宽/CPU负载等系统资源监控模板以及mysql监控模板外,接下来对诸如ngi...

2396
来自专栏数据和云

Oracle 12.2新特性掌上手册 - 第六卷 ADG的性能与诊断

编辑手记:在Oracle 12.2中,ADG有许多惊人的改进,通过ADG standby数据库的性能数据收集和诊断、快照standby数据库的应用,以及实时的数...

3857
来自专栏数据库新发现

如何查询redo logfile的使用率

redo logfile的使用,不能通过v$视图查询,但是我们可以通过底层视图得到.

692
来自专栏杨建荣的学习笔记

MySQL备份恢复第一篇(r5笔记第5天)

今天学习了下MySQL的备份恢复内容,也算是对之前的 数据导入导出的一个细化内容。备份恢复的内容其实还是蛮复杂的,一般网站上提到的备份恢复也基本都是逻辑备份恢复...

3846
来自专栏乐沙弥的世界

使用RMAN迁移数据库到异机

        迁移数据库的方法有多种,较为常用的则是使用RMAN来迁移。使用RMAN迁移数据库属于数据库的物理备份与恢复范畴,整个过程中数据库的相关信息是完整...

1792

扫码关注云+社区

领取腾讯云代金券