使用快速恢复区
快速恢复区是Oracle DB 中所有与恢复相关的文件和活动的统一存储位置。在发生介质故
障后完全恢复数据库所需的所有文件都包含在快速恢复区中。与恢复相关的文件有两种类
型:永久文件和临时文件。永久文件由实例主动使用。临时文件只有在执行某类恢复操作
时才需要。
永久项目
• 控制文件:根据几个初始化参数的设置,控制文件的副本是在创建新数据库或控制文
件时在快速恢复区中创建的。
• 联机重做日志文件的多路复用副本:可包含每个重做日志组的镜像副本。创建数据库
时,可以使用LOGFILE 子句指定联机重做日志文件的位置。如果未包含该子句,则
系统会根据下列初始化参数的值设置位置:
- DB_CREATE_ONLINE_LOG_DEST_n:如果设置了这些变量中的一个或多个,
则只使用这些位置。
- DB_CREATE_FILE_DEST:如果设置了此参数,则该位置是主要文件位置。
- DB_RECOVERY_FILE_DEST:如果除DB_CREATE_FILE_DEST 外还设置了此
参数,则此位置将用作镜像。
临时项目
• 归档重做日志文件:配置了快速恢复区后,LOG_ARCHIVE_DEST_1 会被自动设置为
快速恢复区位置。归档进程后台进程会在快速恢复区和所配置的其它
LOG_ARCHIVE_DEST_n 位置中创建归档重做日志文件。如果未定义
LOG_ARCHIVE_DEST_n 位置,则归档重做日志文件的默认位置是快速恢复区。
• 闪回日志:启用闪回数据库时会生成闪回日志。
• 控制文件自动备份:由RMAN 创建的控制文件自动备份和由Oracle DB Server 生成的
自动备份的默认位置是快速恢复区。
• 数据文件副本:BACKUP AS COPY 命令在快速恢复区中创建映像数据文件副本。
• RMAN 文件:快速恢复区是RMAN 用于备份和通过恢复操作从磁带还原归档日志内
容的默认位置。
FRA 是通过设置以下两个动态初始化参数来定义的:
• DB_RECOVERY_FILE_DEST_SIZE:设置磁盘限制
• DB_RECOVERY_FILE_DEST:设置FRA 的位置
可以发出以下查询来确定要执行的操作:
SELECT object_type, message_type, message_level,reason, suggested_action FROM dba_outstanding_alerts;
在设置闪回区之前首先要查看是否已经开启归档模式。
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/oracle/fast_recovery_area
Oldest online log sequence 1
Next log sequence to archive 2
Current log sequence 2
如果尚未设置归档模式需要先设置用归档
1.关闭数据库,启动到mount模式下,查看并设置归档文件路径,启用归档。
SQL> show parameter archive
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
log_archive_config string
log_archive_dest string
log_archive_dest_1 string location=/opt/oracle/fast_reco
very_area mandatory
SQL> alter system set log_archive_dest_1='location=/opt/oracle/fast_recovery_area mandatory';
System altered.
SQL> alter database archivelog;
Database altered.
确定归档日志开启后设置闪回,并打开数据库
SQL> show parameter recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 2G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
remote_recovery_file_dest string
SQL> alter system set db_recovery_file_dest_size=2g;
System altered.
SQL> alter system set db_recovery_file_dest='/opt/oracle/fast_recovery_area';
System altered.
SQL> alter database open;
Database altered.
视图
select * from v$flash_recovery_area_usage;
select * from v$flashback_database_log;
select * from v$flashback_database_logfile;
select * from v$flashback_database_stat;
select * from v$flashback_txn_graph;
select * from v$flashback_txn_mods; ###查询闪回记录
select * from v$flashfilestat;