首页 > 数据库 >Postgresql检查点

Postgresql检查点

时间:2023-08-22 16:59:13浏览次数:36  
标签:Postgresql 数据库 位置 checkpoint 实例 检查点 timeout

一、 检查点触发机制

在PostgreSQL中,检查点(后台)进程执行检查点;当发生下列情况之一时,其进程将启动:

1、检查点间隔时间由checkpoint_timeout设置(默认间隔为300秒(5分钟))

2、在9.5版或更高版本中,pg_xlog中WAL段文件的总大小(在10版或更高版本中为pg_WAL)已超过参数max_WAL_size的值(默认值为1GB(64个16MB文件))。 

3、PostgreSQL服务器在smart或fast模式下关闭。

4、手动checkpoint。

二、检查点作用

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

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

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

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

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

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

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

三、检查点记录位置

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

Latest checkpoint location –最新检查点记录的LSN位置。

Prior checkpoint location –先前检查点记录的LSN位置。

四、检查点调整

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

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

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

五、checkpoint_completion_target

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

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

标签:Postgresql,数据库,位置,checkpoint,实例,检查点,timeout
From: https://www.cnblogs.com/zhenren001/p/17648983.html

相关文章

  • Postgresql涉及复杂视图查询的优化案例
    一、前言对于含有union,groupby等的视图,我们称之为复杂视图。这类的视图会影响优化器对于视图的提升,也就是视图无法与父查询进行合并,从而影响访问路径、连接方法、连接顺序等。本文通过例子,给大家展示PostgreSQL这类问题及针对该问题的优化方法。二、Union视图的优化1、......
  • postgresql 查询重复,多行合并
    --postgresql--替换字符串UPDATEtmpSETphone=REPLACE(phone,'myzs','');--查询替换中间4位为*SELECTCONCAT_WS('****',SUBSTR(phone,1,3),SUBSTR(phone,8))asnew_phone_numberFROMtmp;--更新手机号为中间四位为*UPDATEtmpsetnewphone=C......
  • postgresql使用dblink查异库数据
    背景环境postgresql-14,centos7.9当想夸库查询另一个数据库的数据时,pg就做的没oracle好了,也没mysql方便,但有数据库已经存了这么多年了,迁库什么都是不可能的,所以有总比没好配置安装dblink插件createextensiondblink;如果能装,就跳第三步往下看2.如果报没相关文件,安装依......
  • PostgreSQL-常用命令汇总
     1. 连接到PostgreSQL数据库:psql-h主机名-p 端口号-U用户名-d数据库名 2. 列出所有数据库:\l 3. 切换到指定数据库:\c 数据库名 4. 查看当前数据库中的所有表:\dt 5. 查看表的结构:\d 表名 6. 执行SQL查询:SELECT *FROM 表名; 7. 创......
  • PostgreSQL-查询每个表的大小
    1、查询数据库中单个表的大小(不包含索引)selectpg_size_pretty(pg_relation_size('表名')); 2、查询所有表的大小并排序(包含索引)SELECTtable_schema||'.'||table_nameAStable_full_name,pg_size_pretty(pg_total_relation_size('"'||table_schema||&#......
  • PostgreSQL 源码性能诊断(perf profiling)指南(含火焰图生成分析FlameGraph) - 珍藏级
    PostgreSQL源码性能诊断(perfprofiling)指南(含火焰图生成分析FlameGraph)-珍藏级作者digoal日期2016-11-28标签PostgreSQL,Linux,perf,性能诊断,stap,systemtap,strace,dtrace,dwarf,profiler,perf_events,probe,dynamicprobe,tracepoint......
  • PostgreSQL与Java类型的对照
    PostgreSQL™                JavaSE8date                    LocalDatetime                   LocalTimetimestamp withouttimezone      LocalDateTimetimestampwithtimezon......
  • 构建高性能的后端服务:使用 Java Spring Boot 和 PostgreSQL
    在现代应用开发中,构建高性能的后端服务是至关重要的。本文将介绍如何利用JavaSpringBoot框架和PostgreSQL数据库来构建一个高性能的后端服务,实现数据存储与检索。为什么选择JavaSpringBoot和PostgreSQL?JavaSpringBoot:SpringBoot是一个简化了的Spring框架,能够快速......
  • PostgreSQL技术大讲堂 - 第26讲:PG-FDW部署
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第26讲:PG-FDW部署 内容1:ForeignDataWrappers(FDW)简......
  • Linux centos7.6 在线及离线安装postgresql12 详细教程
    一、在线安装官网找到对应的版本PostgreSQL: https://www.postgresql.org/     1.配置yum源sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 2.在线安装PostgreSQLsudoyuminsta......