首页 > 数据库 >PG技术大讲堂 - 第14讲:PostgreSQL 检查点

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

时间:2023-04-17 11:48:41浏览次数:48  
标签:PostgreSQL 14 数据库 位置 checkpoint 检查点 PG

 

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

标签:PostgreSQL,14,数据库,位置,checkpoint,检查点,PG
From: https://www.cnblogs.com/cnblogs5359/p/17325338.html

相关文章

  • NUKE 14 for mac(电影特效合成软件) v14.0v4激活版
    NUKE14中文版是一款电影特效合成软件。可用于电影、电视和视频游戏行业,以创建高质量的视觉效果和动态图形。Nuke拥有超过200个创意节点,提供您处理数字合成各种挑战所需的一切。这包括行业标准的键控器,旋光仪,矢量绘图工具,颜色校正等等。为你的视频编辑提供帮助!Nuke用于电影、电视和......
  • 【2023-04-14】连岳摘抄
    23:59我不是佛教徒,不相信“转生”,但如果真的再一次重新来到这个世界,我将还是“常书鸿”,我要去完成那些尚未完成的工作。我觉得这半个世纪过得太快了,敦煌研究和保护是几代人的事,还有许多事情要做。回首已过去的人生,我自豪地认为,我的人生选择没有错。我们奉献给敦煌的应该是许许多......
  • 4.14 站立会议
    首先今天我们进一步讨论了作业的整体流程,大致明确了思路。前端的页面大致快完成,我们打算先通过调接口的方式实现拍照和语音实现垃圾分类。如果有条件的话,学习一下如何在安卓布置服务器,实现类似于咸鱼的社区效果。其次就是SSM框架和VUE前端框架,之前太懒散了,坚持每天学一点点吧。......
  • 第 14 章Linux 实操篇-进程管理(重点)
    第14章Linux实操篇-进程管理(重点)目录第14章Linux实操篇-进程管理(重点)14.1基本介绍14.2显示系统执行的进程14.2.1基本介绍14.2.2ps详解14.2.3应用实例14.1终止进程kill和killall14.3.1介绍:14.3.2基本语法14.3.3常用选项14.3.4最佳实践14.5服务(service)......
  • NumPy 初学者指南中文第三版:11~14
    十一、玩转Pygame本章适用于希望使用NumPy和Pygame快速轻松创建游戏的开发人员。基本的游戏开发经验会有所帮助,但这不是必需的。您将学到的东西如下:pygame基础matplotlib集成表面像素数组人工智能动画OpenGLPygamePygame是Python框架,最初由PeteShinners编写,顾名思义......
  • Hugging News #0414: Attention 在多模态情景中的应用、Unity API 以及 Gradio 主题构
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」,本期HuggingNews有哪些有趣的消息,快来看看吧!社区动向Attention在视觉领域的应用注......
  • Python 强化学习实用指南:11~14
    原文:Hands-OnReinforcementLearningwithPython协议:CCBY-NC-SA4.0译者:飞龙本文来自【ApacheCN深度学习译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。不要担心自己的形象,只关心如何实现目标。——《原则》,生活原则2.3.c十一、策略梯度和优化在最后三章中,我们学......
  • 2023/4/14每日总结
    在JS中操作JSON1.创建JSON对象varjson={“name1”:”value1”,”name2”:”value2”,“name3”:[1,”str”,true]};varjson=[{“name1”:”value1”},{“name2”:”value2”}];2.JSON对象转换为JSON字符串JSON.stringify(JSON对象)3.JSON字符串转换为JSON对象JSON.parse(......
  • OpenCV图像连通区域分析(14)
    图像连通区域图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。提取图像中不同的连通域是图像处理中较为常用的方法,例如在车牌识别、文字识别、目标检测等领域对感兴趣区域分割与识别。一般情况......
  • UVA1451
     二分平均值x,每个数减去x,   找区间S[r]-S[l]>=0,r-l>=m#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;constintN=1e5+5;#defineinf1e9intn,m,a[N];doubles[N];intchk(doublemd,intok=0){ i......