Which options would you consider while configuring a flash recovery area (fast recovery area in 11g
Release 2) for your production database that is running in ARCHIVELOG mode? (Choose all that apply.)
A. Setting the FAST_START_MTTR_TARGET to set the mean time to recover
B. Setting the RECOVERY_PARALLELISM parameter to twice the number of CPUs
C. Using the DB_RECOVERY_FILE_DEST parameter to set the location for flash recovery area
D. Using the DB_RECOVERY_FILE_DEST_SIZE parameter to define the disk space limit for the
recovery files created in the flash recovery area
Section: (none)
Explanation
Explanation/Reference:
一、FAST_START_MTTR_TARGET参数的作用和实现方法
参数FAST_START_MTTR_TARGET参数是一个加快实例恢复的参数,我们可以根据服务界别来定义一个合理的、可接受的值。该值得单位为秒。比如设定为60S,假定该值处于合理的情况之下,则一旦实例崩溃,在60S以内实例应当能够被恢复。合理即该值不能太大,也不能太小。太大则实例恢复所需的时间较长,太小则导致大量数据的及时写入,增加了系统的I/O。
影响实例恢复时间长短的主要因素是从最近检查点位置到联机重做日志尾部之间的距离。距离越长则所需要的cache recovery和undo、redo的时间越长。所以如何有效的缩短最近检查点位置与联机重做日志尾部之间的距离,正是FAST_START_MTTR_TARGET的目的。
FAST_START_MTTR_TARGET的值实际上是通过触发检查点来实现它的目的的。当内存中产生的dirty buffer所需的恢复时间(estimated_mttr)到达FAST_START_MTTR_TARGET所指定的时间,则检查点进程被触发。检查点进程一旦被触发,将通过DBWn进程按检查点队列顺序将脏数据写入到数据文件,从而缩短了最后检查点位置与联机重做日志间的距离,减少了实例恢复所需的时间。
二、FAST_START_MTTR_TARGET参数为0的情况
如果将FAST_START_MTTR_TARGET设置为0将关闭检查点自动调整功能。当设定一个大于0的值给FAST_START_MTTR_TARGET,则自动调整检查点功能将启用。
三、设置FAST_START_MTTR_TARGET
这个参数值得设定需要考虑到可接受的实例的恢复时间、可承受的I/O吞吐量等等。可以再系统正常负载时参考v$instance_recovery视图来设置该参数的值。
假定将FAST_TARGET_MTTR_TARGET的值设置为30S:
SYS@ tsid > alter system set fast_start_mttr_target=30;
视图v$instance_recovery中有两个相关字段:TARGET_MTTR和ESTIMATED_MTTR
TARGET_MTTR:参照FAST_START_MTTR_TARGET参数中设定的值计算出来的一个值。
ESTIMATED_MTTR:系统根据dirty buffer中计算出来的值。
SYS@tsid>select recovery_estimated_ios,actual_redo_blks,target_redo_blks,target_mttr,estimated_mttr
2 from v$instance_recovery;
RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR
---------------------- ---------------- ---------------- ----------- --------------
1768 104036 184320 28 23