mysql 检查点_什么是检查点,及其作用

为什么oracle要引入检查点机制?

降低实例恢复的时间

通过实验来简单观察下checkpoint

SQL> select file#,checkpoint_change# from v$datafile order by 1;

FILE# CHECKPOINT_CHANGE#

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

1            7642610

2            7642610

4            7642610

5            7642610

6            7642610

SQL> c/datafile/datafile_header

1* select file#,checkpoint_change# from v$datafile_header order by 1

SQL> /

FILE# CHECKPOINT_CHANGE#

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

1            7642610

2            7642610

4            7642610

5            7642610

6            7642610

SQL> alter system checkpoint;

System altered.

SQL> select file#,checkpoint_change# from v$datafile order by 1;

FILE# CHECKPOINT_CHANGE#

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

1            7649054

2            7649054

4            7649054

5            7649054

6            7649054

SQL> select file#,checkpoint_change# from v$datafile_header order by 1;

FILE# CHECKPOINT_CHANGE#

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

1            7649054

2            7649054

4            7649054

5            7649054

6            7649054

SQL> alter system set log_checkpoints_to_alert=true; ----通过设置该参数,可以将检查点信息输出到alert log中

ALTER SYSTEM SET log_checkpoints_to_alert=TRUE SCOPE=BOTH;

Mon Nov 19 11:00:33 2018

Beginning log switch checkpoint up to RBA [0x133.2.10], SCN: 7649105

Thread 1 advanced to log sequence 307 (LGWR switch)

Current log# 1 seq# 307 mem# 0: /u01/app/oracle/oradata/orcl/redo01.log

Mon Nov 19 11:00:33 2018

全局检查点

alter system checkpoint global;(这个针对rac而言,相对local方式来讲,更为复杂,因为其需要保证一致性)

实际单机环境也存在这个说法。

1、full checkpoint

2、 thread checkpoint(loacal checkpoint,global checkpoint)

3 datafile checkpoint

4 mini-checkpoint(object checkpoint 基于DDL)

5 parallel query checkpoint

6 incremental checkpoint(log switch checkpoint)

从oracle9i R2版本,引入了如下一个参数:

SQL> show parameter fast_start_mttr_target

NAME                                 TYPE        VALUE

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

fast_start_mttr_target               integer     0

实例恢复的时间

实际上oracle一直在优化这个操作,所以在oracle 10g又引入了检查点自动调节机制。

所以,在10g版本中,我们不需要再去设置 show parameter fast_start_mttr_target参数了。

_disable_selftune_checkpointing false--- oracle是通过这个隐含参数来控制检查点的自动调节(默认开启)

oracle也提供了视图供我们进行判断实例恢复所需要的时间:

select  tt.ACTUAL_REDO_BLKS,tt.TARGET_REDO_BLKS,tt.TARGET_MTTR,tt.ESTIMATED_MTTR,tt.WRITES_AUTOTUNE  from v$instance_recovery tt

65304371631010156624553

target_mttr值是做什么,实际上这个值是基于fast_start_mttr_target计算出来的一个估算值。

如果说,当fast_start_mttr_target没有设置,实际上这个估计值就等于当前估算出来的mttr值。

ESTIMATED_MTTR 就是oracle自己估算出来的实例恢复所需要的时间。(实际上是根据cache buffer中的脏块数据和redo block个数来估算的,如果fast_start_mttr_target参数没有设置的话

。如果设置了,那么久根据fast_start_mttr_target来进行估算)

通俗点讲,就是该点以及该点之前所有脏块都要被写入到disk中。其实我认为,就理解为检查点就是一种机制,触发dbwr去写脏块的机制就行了。

阅读(3292) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值