ITPub博客

首页 > 数据库 > Oracle > 【TUNE_ORACLE】Oracle检查点(三)增量检查点四个关键参数介绍

【TUNE_ORACLE】Oracle检查点(三)增量检查点四个关键参数介绍

原创 Oracle 作者:Attack_on_Jager 时间:2021-08-20 11:33:43 1 删除 编辑
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud
(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

说明

检查点系列相关文章地址:

Oracle检查点(一)检查点(Checkpoint)概念介绍: /69992972/viewspace-2787595/

Oracle检查点(二)检查点性能: /69992972/viewspace-2787789/

Oracle检查点(三)增量检查点四个关键参数介绍: /69992972/viewspace-2787943/

Oracle检查点(四)检查点对redo日志的影响和redo日志大小设置建议: /69992972/viewspace-2788206/

Oracle检查点(五)创建并利用Statspack定位检查点故障: /69992972/viewspace-2788418/


增量检查点关键的四个参数


#####################################################

# 注意:日志文件切换将始终覆盖由以下四个参数引起的检查点!#

#####################################################


1. FAST_START_MTTR_TARGET(重要参数)

自 Oracle 9i 以来, FAST_START_MTTR_TARGET参数已成为优化增量检查点目标的 首选方法。通过 FAST_START_MTTR_TARGET,可以指定数据库执行单实例的崩溃恢复所要花费的秒数。基于内部统计信息,增量检查点会自动调整检查点目标,以满足 FAST_START_MTTR_TARGET的要求。

1)查看动态性能视图V$INSTANCE_RECOVERY.ESTIMATED_MTTR可以显示当前预计的平均恢复时间 (MTTR)(以秒为单位)。即使未指定 FAST_START_MTTR_TARGET,也同样会显示此值。

2) 查看动态性能视图V$INSTANCE_RECOVERY.TARGET_MTTR可以显示由系统强制执行的有效 MTTR 目标(以秒为单位)。

3) 查看动态性能视图V$MTTR_TARGET_ADVICE可以显示在当前的 MTTR 设置下由当前的工作负载产生的 I/O 数量,以及在其他 MTTR 设置下将由当前的工作负载产生的预计 I/O 数量。此视图可帮助我们在运行时性能和设置 FAST_START_MTTR_TARGET 以实现快速恢复之间进行权衡。


2. LOG_CHECKPOINT_INTERVAL

LOG_CHECKPOINT_INTERVAL 参数指定增量检查点目标滞后于当前日志尾的最多 redo 块数量。

如果指定了 FAST_START_MTTR_TARGET,就不应设置 LOG_CHECKPOINT_INTERVAL 或将其设置为0。在大多数 Unix 系统上, 操作系统块大小都是 512 字节

比如,将 LOG_CHECKPOINT_INTERVAL 的值设置为 10000 就意味着增量检查点目标相对于当前日志尾的滞后不得超过 5M。以此计算,如果 redo 日志的大小为50M,则会对每个日志产生10个检查点。

LOG_CHECKPOINT_INTERVAL也会影响检查点的发生时间,所以需要保持其随 redo 日志文件的大小变化而更新。检查点的频率是影响数据库从意外故障中恢复所需时间的因素之一。 检查点之间的间隔越长,则在发生系统崩溃时,数据库恢复所需的时间就越长。检查点间隔越短意味着数据库的恢复速度越快,但是代价是检查点操作会消耗更多的资源。

另外,此参数还会影响在恢复的前滚阶段期间完成数据库恢复操作所需的时间。实际的恢复时间取决于此时间和其他因素,例如,故障类型(实例或系统崩溃、介质故障等)以及需要应用的归档 redo 日志数量。


3. LOG_CHECKPOINT_TIMEOUT

LOG_CHECKPOINT_TIMEOUT 参数指定增量检查点目标应滞后于当前日志尾的最长秒数。换句话说,它指定缓冲区缓存中的脏缓存可以保持脏状态的时间。

检查点频率影响数据库从意外故障中恢复所需的时间。检查点之间的间隔越长,数据库恢复所需的时间就越多。

Oracle官方建议使用 LOG_CHECKPOINT_INTERVAL 而不是 LOG_CHECKPOINT_TIMEOUT 来控制检查点间隔,后者会每“n”秒启动一次检查点,而不管事务频率。这可能会导致在事务量变化的情况下出现不必要的检查点。只要出现这个可能,就必须避免不必要的检查点,以实现最佳性能。

注:

许多人会有这样一种误解:将 LOG_CHECKPOINT_TIMEOUT 设置为给定值之后,系统就会按该间隔启动日志切换,从而启用用于standby数据库配置的恢复窗口。 日志切换会引起检查点,但检查点并不会引起日志切换 引起日志切换的唯一方式是使用 ALTER SYSTEM SWITCH LOGFILE 进行手动操作或重新调节 redo 日志大小,以引起更为频繁的切换。这由操作系统块而非时间间隔控制。因此, 在线 redo 日志的大小对性能和恢复至关重要!不能过大,也不能过小。


4. LOG_CHECKPOINTS_TO_ALERT

通过 LOG_CHECKPOINTS_TO_ALERT,我们可以将检查点记录到alert日志中。

这样做有助于确定检查点是否按所需频率发生。

注:

1)从Oracle9i开始,此参数变为动态参数。

2)Oracle 通常建议将此参数设置为 TRUE,因为开销很小,可以忽略不计,但alert日志中的信息可能会非常有用。


来自 “ ITPUB博客 ” ,链接:/69992972/viewspace-2787943/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    102
  • 访问量
    260849


http://www.vxiaotou.com