参数FAST_START_MTTR_TARGET的理解

本文来源:keeptrying  《参数FAST_START_MTTR_TARGET的理解

参数FAST_START_MTTR_TARGET的理解

一、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 checkpointing refers to the periodic writes by the database writer (DBWn) processes for the purpose of writing changed data blocks from the Oracle buffer cache to disk and advancing the thread-checkpoint. Setting the database parameter FAST_START_MTTR_TARGET to a value greater than zero enables the fast-start checkpointing feature. Fast-start checkpointing should always be enabled for the following reasons:

It reduces the time required for cache recovery, and makes instance recovery time-bounded and predictable. This is accomplished by limiting the number of dirty buffers (data blocks which have changes in memory that still need to be written to disk) and the number of redo records (changes in the database) generated between the most recent redo record and the last checkpoint.

Fast-Start checkpointing eliminates bulk writes and corresponding I/O spikes that occur traditionally with interval- based checkpoints, providing a smoother, more consistent I/O pattern that is more predictable and easier to manage. If the system is not already near or at its maximum I/O capacity, fast-start checkpointing will have a negligible impact on performance. Although fast-start checkpointing results in increased write activity, there is little reduction in database throughout, provided the system has sufficient I/O capacity.

Explicit setting of the FAST_START_MTTR_TARGET parameter to 0 disables automatic checkpoint tuning.Explicit setting of the FAST_START_MTTR_TARGET parameter to a value other than 0 also enables the Redo Log Advisor.

从上面的描述可以看出,如果将FAST_START_MTTR_TARGET设置为0将关闭检查点自动调整功能。当设定一个大于0的值给FAST_START_MTTR_TARGET,则自动调整检查点功能将启用。

三、设置FAST_START_MTTR_TARGET

这个参数值得设定需要考虑到可接受的实例的恢复时间、可承受的I/O吞吐量等等。可以再系统正常负载时参考v$instance_recovery视图来设置该参数的值。

假定将FAST_TARGET_MTTR_TARGET的值设置为30S:

  1 [email protected] 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中计算出来的值。

  1 [email protected]>select recovery_estimated_ios,actual_redo_blks,target_redo_blks,target_mttr,estimated_mttr  from v$instance_recovery;
  3
  4 RECOVERY_ESTIMATED_IOS ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR
  5 ---------------------- ---------------- ---------------- ----------- --------------
  6                   1768           104036           184320          28             23

四、启用MTTR Advisor

首先需要设置两个参数:STATISTICS_LEVEL,设置为typical或者all  ;FAST_START_MTTR_TARGET,设置为非0值。

  1 [email protected] tsid > show parameter mttr;  --当前参数设置为30S
  2
  3 NAME                                 TYPE        VALUE
  4 ------------------------------------ ----------- ------
  5 fast_start_mttr_target               integer     30
  6
  7
  8 [email protected] tsid > select target_mttr,estimated_mttr from v$instance_recovery;
  9
 10 TARGET_MTTR ESTIMATED_MTTR
 11 ----------- --------------
 12          28             23                     --系统计算出的mttr为28S
 13
 14 [email protected]>select mttr_target_for_estimate,dirty_limit,estd_cache_writes,estd_cache_write_factor,estd_total_writes,estd_total_write_factor from v$mttr_target_advice;
 15
 16 MTTR_TARGET_FOR_ESTIMATE DIRTY_LIMIT ESTD_CACHE_WRITES ESTD_CACHE_WRITE_FACTOR ESTD_TOTAL_WRITES ESTD_TOTAL_WRITE_FACTOR
 17 ------------------------ ----------- ----------------- ----------------------- ----------------- -----------------------
 18                       27        1000             75103                  1.0043             75296              1.0043
 19                       28        1103             74974                  1.0026             75167              1.0026
 20                       30        1313             74781                       1             74974                   1
 21                       31        1417             74652                   .9983             74845               .9983
 22                       32        1522             74587                   .9974             74780               .9974
 23
 24 --mttr_target_for_estimate有一个值最接近设定的目标时间30。
 25 --给出了几组不同的mttr_target值及dirty_limit,cache_write,io来供DBA来选择设定合适的mttr。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

时间: 2024-10-17 13:57:13

参数FAST_START_MTTR_TARGET的理解的相关文章

js参数arguments的理解

原文地址:js参数arguments的理解 对于函数的参数而言,如下例子 function say(name, msg){ alert(name + 'say' + msg); } say('xiao', 'hello'); 当调用say()函数时,函数会创建arguments参数数组,这个数组跟形参没有多大关系,即使没有形参, function say(){ alert(arguments[0] + 'say' + arguments[1]); } say('xiao', 'hello');

关于ECMAScript函数参数的多方面理解

写在前面 无论在哪种编程语言中,函数都是特别有意思的部分,但同时也是一个难点.在ECMAScript中,作为对象的函数也不例外,让人又爱又恨.这一章我们主要从多个方面聊一聊函数参数这一部分,至于函数像海一样深的其他部分我们有机会再聊. 函数的有些知识点是比较简单的,所以在进入正题之前,我们先简单介绍两点:函数的return和函数的重载,因为函数的重载需要arguments的知识,所以我们最后来理解函数的重载. 章节结构如下: 函数的return 函数参数 函数的重载 注:如没有另外说明,文中的函

第三周 7.17LJY关于方法参数的一些理解

在java中采用的是按值调用.也就是得到的是变量的一个拷贝 class Text22 { static int i = 1; public static void main(String[] args) { System.out.println(triple(i)); System.out.println(i); } public static int triple(int x) { int result = x * 3; return result; } } 其输出结果为3, 1;所以方法参数

MySQL增强半同步的搭建实验,和一些参数的个人理解

环境信息 role ip port hostname master 192.168.188.101 4306 mysqlvm1 slave 192.168.188.201 4306 mysqlvm1-1 5306 6306 7306 MySQL版本 5.7.26 前置条件 已配置好主从复制. 配置增强半同步 1.加载lib,所有主从节点都要配置. 主库:install plugin rpl_semi_sync_master soname 'semisync_master.so'; 从库:inst

linear-grident的属性和使用以及对颜色后面参数(百分比)的理解

css3新增Gradient属性,用来增加渐变的效果,渐变分为线性渐变 linear-grident 和 径向渐变 radial-grident,这篇文章主要介绍线性渐变linear-grident . linear-grident语法: background: linear-gradient(direction, color-stop1, color-stop2, ...); 1. direction表示渐变方向,取值有 to top, to bottom, to left, to right

JVM日志和参数的理解

jvm日志和参数 一:理解GC日志格式,读GC日志的方法 1:开启日志 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/gc.log -XX:+UseGCLogFileRotation  启用GC日志文件的自动转储 (Since Java) -XX:NumberOfGClogFiles=1  GC日志文件的循环数目 (Since Java) -XX:GCLogFileSize=1M  控制GC日志文件的大小

深入理解Java虚拟机-常用vm参数分析

Java虚拟机深入理解系列全部文章更新中... 深入理解Java虚拟机-Java内存区域透彻分析 深入理解Java虚拟机-常用vm参数分析 深入理解Java虚拟机-JVM内存分配与回收策略原理,从此告别JVM内存分配文盲 深入理解Java虚拟机-如何利用JDK自带的命令行工具监控上百万的高并发的虚拟机性能 深入理解Java虚拟机-如何利用VisualVM对高并发项目进行性能分析 深入理解Java虚拟机-你了解GC算法原理吗 话不多说,今天就分析一下一些常用的Java虚拟机的参数设置,以及如何更好

linux内核参数注释与优化

转自:http://yangrong.blog.51cto.com/6945369/1321594 目录 1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 参数解释由网络上收集整理,常用优化参数对比了网上多个实际应用进行表格化整理,使查看更直观. 学习linux也有不少时间了,每次优化linux内核参数时,都是在网上拷贝而使用,甚至别人没有列出来的参数就不管了,难道我就不需要了吗? 参考文章: linux内核TCP相关参数解释 http://os.chinaunix

Java语法糖初探(三)--变长参数

变长参数概念 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用.形如 function(T -args).但是需要明确的一点是,java方法的变长参数只是语法糖,其本质上还是将变长的实际参数 varargs 包装为一个数组. 看下面的例子: 12345678910111213 public class VariVargs { public static void main(String []args) { tes