欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 闪回区(Oracle Flash recovery area)

程序员文章站 2022-06-15 23:50:46
...

Oracle闪回区已经有了好几载的岁月了,在10g的时候就被推出一直延续到现在。Oracle闪回区是为RMAN准备的,尽管抛开它我们可以同样

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 :

更多详情见请继续阅读下一页的精彩内容:

相关阅读:

Oracle 11g flashback Data Archive(闪回数据归档)

Oracle flashback闪回机制

flashback table快速恢复误删除的数据

Oracle 备份恢复:flashback闪回

[Oracle]闪回flashback功能的使用

Oracle 闪回区(Oracle Flash recovery area)