当前位置: gzslhs->优技培训 > PG技术大讲堂 - 第14讲:PostgreSQL 检查点

PG技术大讲堂 - 第14讲:PostgreSQL 检查点

2023-04-23作者:gzslhs来源:www.gzslhs.com

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。

Part 14:PostgreSQL检查点

内容1:检查点触发机制

内容2:检查点作用

内容3:检查点如何工作

内容4:检查点如何调整


检查点处理过程

· 检查点触发机制

在PostgreSQL中,检查点(后台)进程执行检查点;当发生下列情况之一时,其进程将启动: ? 检查点间隔时间由checkpoint_timeout设置(默认间隔为300秒(5分钟)) ? 在9.5版或更高版本中,pg_xlog中WAL段文件的总大小(在10版或更高版本中为pg_WAL)已超过参数max_WAL_size的值(默认值为1GB(64个16MB文件))。 ? PostgreSQL服务器在smart或fast模式下关闭。 ? 手动checkpoint。


检查点作用

· 为什么需要检查点

所有的数据库几乎都有检查点机制,为什么需要检查点呢,有以下几个作用:

1、定期保存修改过的数据块(保护劳动果实)

检查点发生时,检查点进程会把共享缓冲区中的脏块(被修改过的块)写入磁盘,永久保存,否则如果发生主机断电等故障,内存中的数据块就会丢失,该检查点的发生频率由checkpoint_timeout控制,定期发生。

2、做为实例恢复时起始位置

如果发生实例崩溃,那么下一次启动时则需要进行实例恢复,数据库根据最近一次检查点的位置作为起始位置开始recovery。

3、做为介质恢复时起始位置

每次进行物理备份时都会发生一个检查点,用来判断将来进行恢复时的起始位置,因为备份时数据文件是有先后顺序,备份出来的数据文件是不一致的,将来恢复出来后需要应用归档日志把他们变成同步,开始备份的位置就是将来recovery的位置。


XLOG 写记录

· 检查点工作流程


检查点记录位置

· 控制文件

控制文件中记录了检查点的相关信息 ? Latest checkpoint location –最新检查点记录的LSN位置。 ? Prior checkpoint location –先前检查点记录的LSN位置。


pg_control File

· 控制文件

控制文件中记录的检查点相关信息

postgres> pg_controldata /usr/local/pgsql/data

pg_control 最后修改: 2022/10/25 10:36:29

最新检查点位置: 0/65441F8

最新检查点的 REDO 位置: 0/65441F8

最新检查点的重做日志文件: 000000010000000000000006

最新检查点的 TimeLineID: 1

最新检查点的PrevTimeLineID: 1

... snip ...


Database Recovery

· 利用检查点做为recovery的起始位置


检查点调整

? 检查点发生的间隔时间决定了实例恢复需要的时长,checkpoint_timeout设置的值应该根据业务的需求设置,以实例崩溃时,下一次打开数据库时长的容忍度而设置。

? 间隔时间短,则实例恢复需要的时间就短,可提高数据库的可用性,但是会增加I/O操作,降低数据库状态性能,检查点发生时属于密集型I/O操作,会占用大量系统资源。

? 间隔时间长,则实例恢复需要的时间就长,会降低数据库的可用性,但是会减少I/O操作,提高数据库状态性能。

checkpoint_completion_target

? 数据库中一个至关重要的参数,主要与参数checkpoint_timeout(checkpoint_timeout)配合使用,值越小意味着检查点要越快完成,要求写得要快。

? 控制每次检查点发生时i/o的吞吐量,值越高,则i/o占用的资源越少,数据库性能越好;值越低,则i/o占用的资源越多,影响数据库性能,但是提高检查点完成速度。

往期视频和教程,联系cuug

  • Apache HBase数据库
  • IBM Informix数据库
  • MySQL 8.0 OCP认证考试题库持续更新
  • 海若向量数据库HaiRuo VectorDB
  • 瀚高数据库HIGHGO
  • 鸿蒙PC正式发布,有望加速数据库国产化进程
  • 巨杉数据库SequoiaDB
  • 万里数据库GreatDB
  • 2025年5月安同学PostgreSQL PGCP中级认证证书
  • 六六大顺!2025年6月6日李同学OCP 19c认证证书
  • 腾讯云TCCA认证考试报名 - TDSQL数据库交付运维工程师(MySQL版)
  • 腾讯云TCCA认证考试报名 - TDSQL数据库交付运维工程师(PostgreSQL版)
  • 腾讯云TCCP认证考试报名 - TDSQL数据库交付运维高级工程师(MySQL版)
  • 腾讯云TCCP认证考试报名 - TDSQL数据库交付运维高级工程师(PostgreSQL版)
  • 河北建筑工程学院与北京优技教育(CUUG)达成产教整合校企合作
  • TuGraph图数据库
  • 海量数据Vastbase数据库
  • 华为云数据库 GeminiDB
  • 华为云数据库TaurusDB
  • 磐维数据库PanWeiDB
  • 神舟通用数据库
  • 实时数仓 Hologres
  • PostgreSQL 17.5、16.9、15.13、14.18 和 13.21 发布!
  • PostgreSQL 18 测试版Beta 1 发布,新功能新特性!
  • PostgreSQL技术大讲堂 - 第89讲:重讲数据库完全恢复
  • PostgreSQL技术大讲堂 - 第90讲:重讲数据库不完全恢复
  • PostgreSQL证书有效期是几年
  • 学PostgreSQL技术,考工信部人才交流中心PG认证证书
  • OCM考试多少分及格?看看CUUG 张同学Oracle 19c OCM成绩单
  • OCP认证指南:学什么内容、考什么内容
  • 2025年5月陈同学PostgreSQL PGCP中级认证证书
  • 2025年5月份工信部人才交流中心PostgreSQL认证证书
  • 2025年5月胡同学PostgreSQL PGCP中级认证证书
  • 2025年5月李同学PostgreSQL PGCM高级认证证书
  • 2025年5月李同学PostgreSQL PGCP中级认证证书
  • 2025年5月王同学PostgreSQL PGCP中级认证证书
  • 2025年5月赵同学PostgreSQL PGCM高级认证证书
  • PostgreSQL技术大讲堂 - 第91讲:重讲表空间恢复
  • PostgreSQL认证培训考试中心,及证书查询网址
  • PostgreSQL相比Oracle有哪些优势
  • 推荐哪一家PostgreSQL认证?来看看工信部直属人才交流中心的PG认证
  • 信创PostgreSQL培训考试认证中心 -- 工信部人才交流中心唯一指定
  • 6月6日证书 - 工信部人才交流中心PostgreSQL中级PGCP高级PGCM认证
  • PostgreSQL从入门到精通教程- 第93讲:重讲pg流复制安装部署
  • PostgreSQL认证怎么选?PGCP中级认证PGCM高级认证
  • PostgreSQL数据库培训+认证+考试 - 工业和信息化部人才交流中心
  • 2025年5月30日证书,恭喜CUUG张同学通过OCM19c认证
  • CUUG入选2025年首批IITC工信人才岗位能力评价业务信息技术应用创新领域合作机构
  • PostgreSQL技术大讲堂 - 第92讲:重讲流复制原理
  • 高校信创数据库人才培养创新与变革暨天职师大数据库教学平台国产化替代院长峰会