Q
题目
Your database is open in ARCHIVELOG mode.LOG_ARCHIVE_DEST is set to Fast Recovery Area (FRA) and It is 100% full when a log switch takes place.No alternative or optional archive destinations are defined.
What is the outcome?
A.Obsolete backups are automatically deleted and new archivelogs are generated.
B.All active sessions hang until the database administrator (DBA) makes space available in the FRA.
C.The archivelog entries are made in the diagnostic destination and when space is available, new archivelogs are generated.
D.All active sessions are disconnected and their transactions rolled back.
E.No archivelogs are generated.
A
答案
Answer:E
对于A选项,当FRA使用率达到90%时,会触发自动删除。现在已经到达100%,说明并没有过期的归档日志,所以A选项错误。
对于B选项,不是所有的会话会hang住,而是需要FRA空间的会话会hang住,例如切换归档的会话。
对于C选项,归档路径不会变动。
对于D选项,活动会话不会断开。
如果定义了备份保留策略,Oracle会根据策略判断哪些文件过期(obsolete)进而删除,但只有在定义了备份保留策略时,Oracle才会自动判断和删除。当快速恢复区空间使用率达到90%时,会触发自动删除。删除过程会在alert文件中记录日志,但是如果没有空间可以释放,并且使用空间超过85%,就会记录一个warning日志;如果超过了97%,会记录一条critical warning日志,这些日志内容可以从dba_outstanding_alerts视图中看到。如果FRA满了,那么会导致所有需要FRA空间的会话hang住,例如切换归档的会话。
An optional disk location that you can use to store recovery-related files such as control file and online redo log copies, archived redo log files, flashback logs, and RMAN backups. Oracle Database and RMAN manage the files in the fast recovery area automatically. You can specify the disk quota, which is the maximum size of the fast recovery area. Formerly referred to as flash recovery area.
闪回恢复区(Fast Recovery Area,FRA)是一块可选的磁盘位置,可以用来存储与恢复相关的文件,例如控制文件和联机重做日志副本、归档重做日志文件、闪回日志和RMAN备份。Oracle数据库和RMAN自动管理快速恢复区域中的文件。可以指定磁盘配额(由参数DB_RECOVERY_FILE_DEST_SIZE决定),这是FRA区域的最大大小。Fast Recovery Area之前称为Flash Recovery Area,也可称为快速恢复区。
注:快速恢复区的英文名称已从flash recovery area改为fast recovery area,但当前的某些英文版Oracle产品可能仍在使用flash recovery area。
1.创建快速恢复区
使用快速恢复区需要设置两个初始化参数,DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE。
第一个参数指定了快速恢复区的位置,这个位置可以指向磁盘,也可以指向ASM磁盘组;
第二个参数定义了快速恢复区的大小。
在RAC环境下配置快速恢复区时,要保证每个节点的配置值都相同。
这两个参数可以在数据库运行过程中在线修改,修改后立即就能生效,比如以下例子:
SQL> alter system set db_recovery_file_dest_size='2G' scope=both sid='*';
System altered.
SQL> alter system set db_recovery_file_dest='+fra' scope=both sid='*';
System altered.
SQL>
注意1:如果使用ASM作为Fast Recovery Area时,只能指定到Diskgroup级别,而不能成某个目录。比如下面这个例子演示了这个错误:
SQL> alter system set db_recovery_file_dest='+fra/test' scope=both sid='*';
alter system set db_recovery_file_dest='+fra/test' scope=both sid='*'
*
ERROR at line 1:
ORA-02097:无法修改参数,因为指定的值无效
ORA-01261:无法转换参数db_recovery_file_dest的目标字符串
注意2:在配置Fast Recovery Area时,需要先设置参数DB_RECOVERY_FILE_DEST_SIZE,然后再设置参数DB_RECOVERY_FILE_DEST,否则会报错,如下:
SQL> alter system set db_recovery_file_dest='+fra' scope=both sid='*';
alter system set db_recovery_file_dest='+fra' scope=both sid='*'
*
ERROR at line 1:
ORA-02097:无法修改参数,因为指定的值无效
ORA-19802:无法使用DB_RECOVERY_FILE_DEST,由于缺少DB_RECOVERY_FILE_DEST_SIZE
2.快速恢复区的监控
配置快速恢复区时,需要定义区域空间大小,也就是必须配置参数DB_RECOVERY_FILE_DEST_SIZE。这个参数值确定了快速恢复区能使用的存储空间上限。
如果定义了备份保留策略,Oracle会根据策略判断哪些文件过期(obsolete)进而删除,但只有在定义了备份保留策略时,Oracle才会自动判断和删除。当快速恢复区空间使用率达到90%时,会触发自动删除。删除过程会在alert文件中记录日志,但是如果没有空间可以释放,并且使用空间超过85%,就会记录一个warning日志;如果超过了97%,会记录一条critical warning日志,这些日志内容可以从dba_outstanding_alerts视图中看到。
因此日常工作中需要监控快速恢复区的使用情况,在需要时及时进行调整。可以通过视图V$RECOVERY_FILE_DEST和V$RECOVERY_AREA_USAGE来监控快速恢复区的使用情况。
V$RECOVERY_FILE_DEST displays information about the disk quota and current disk usage in the fast recovery area.
V$RECOVERY_AREA_USAGE displays usage information about recovery areas.
col name format a32 heading 'file name'
col spc_lmt_mb format 9999.99 heading 'space|limit|(mb)'
col spc_usd_mb format 9999.99 heading 'space|used|(mb)'
col spc_rcl_mb format 9999.99 heading 'space|reclaim|(mb)'
col number_of_files format 99999 heading 'files'
select name,space_limit/(1024*1024) spc_lmt_mb,space_used/(1024*1024) spc_usd_mb,space_reclaimable/(1024*1024) spc_rcl_mb,
number_of_files
from v$recovery_file_dest;--汇总
select * from v$recovery_area_usage;--明细
DBA宝典小程序
领取专属 10元无门槛券
私享最新 技术干货