Postgresql之checkpooint

 

1、checkpoint是什么?

又名检查点,其实可以看成是个时间戳,在这个时间戳之前的所有脏数据都已经写盘。

 

2、checkpoint的目的或者好处是什么?

为了缩短崩溃恢复时间。

 

3、怎么理解缩短数据库崩溃恢复的时间?

在pg中,用户进行更新操作,并不会直接对磁盘上的数据文件进行io操作,而是先修改内存中的数据,然后写入wal文件,所以内存中就有会未刷到磁盘上的脏页,如果这个时候数据库突然宕机,这部分数据就会丢失了。

那么数据库在重新启动时,就需要利用wal文件里的数据,对数据进行恢复,但是真正从哪个位置开始恢复,就需要借助checkpoint的机制。

因为上面我们提到,checkpoint之前的所有脏数据都已经写盘。基于这个原则,那么做实例恢复的时候,只需要重演检查点之后的wal日志记录即可。

 

4、能不能详细介绍下checkpoint的具体过程?

checkpoint被触发后,它会经历以下几个过程。

  • 将共享内存中的脏页刷出到磁盘。

  • 生成checkpoint记录到xlog中(注意看这里,Checkpoint 本身也会被记录到XLOG)

  • 更新pg_control文件,其中有checkpoint的lsn信息(后期恢复可以从这个文件读取checkpoint的lsn)

 </

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值