pgsql checkpoint机制(1)
检查点触发时机
- 检查点间隔时间由checkpoint_timeout设置
- pg_xlog中wall段文件总大小超过参数max_WAL_size的值
- postgresql服务器在smart或fast模式下关闭
- 手动checkpoint
为什么需要检查点?
- 定期保持修改过的数据块
- 作为实例恢复时起始位置(问题:wal日志应该从哪开始重放?)
- 作为介质恢复时起始位置
示例

checkpoint过程描述
checkpoint操作首先记录下checkpoint的“开始”位置,记录为redo point(重做位点)
checkpoint将sharedbuffer中的数据刷到磁盘里面去
这时候数据库又来了一条SQL insert 3
checkpoint刷脏结束,redo point之前的数据均已被刷到磁盘存储(数据1和数据2)
这时候在wal日志里面记录checkpoint位点,表明checkpoint操作“结束”。checkpoint位点会记录相关信息,比如redo point的值(从哪开始重做)
将最新的checkpoint位点记录到pg_control文件
这个时候假如开始数据库恢复,那么数据库会从pg_control中文件中找到最新的checkpoint位置,再从checkpoint找到redo point的位置,开始重放日志。
不难看出,1和2这两个数据在checkpoint中已经持久化到磁盘存储,wal日志中也只有insert 3操作需要重放。
思考
为什么需要redo point?
redo point是记录本次开始刷脏数据的开始位点(即,redo point之前的数据都会被刷到磁盘存储),等到本次刷脏结束,会在wal日志中插入checkpoint位点,表明本次刷脏结束。
redo point和checkpoint位点之间逻辑上是一个时间段,在这个时间段内,由于写wal日志由walwriter进程完成,而刷脏由checkpoint进程完成,两个进程之间并行运行,在redo point和checkpoint位点之间,walwriter可能会插入新的wal日志记录(执行SQL),这样通过这两个位点就能够知道哪些数据已经刷到磁盘,哪些还没有,等到恢复的时候就能够准确定位到恢复的起点。
相关文章:
pgsql checkpoint机制(1)
检查点触发时机 检查点间隔时间由checkpoint_timeout设置pg_xlog中wall段文件总大小超过参数max_WAL_size的值postgresql服务器在smart或fast模式下关闭手动checkpoint 为什么需要检查点? 定期保持修改过的数据块作为实例恢复时起始位置(问题…...
微信小程序 map地图(轨迹)
allMarkers效果图 废话少说直接上马(最后是我遇到的问题) cover-view是气泡弹窗,可以自定义弹窗,要配合js:customCallout,如果是非自定义的话:callout(可以修改颜色、边框宽度、圆角…...
【钉钉接口】bpms_task_change、bpms_instance_change 的区别及举例
bpms_task_change:审批任务回调,是针对审批任务状态的推送。如审批人执行审批、审批人转交审批等针对具体某个审批节点的操作,属于 bpms_task_change 事件类型。bpms_instance_change:审批实例回调,是针对审批实例状态…...
vue左右div结构手动拉伸并且echarts图表根据拉伸宽高自适应
需求: 左右结构的div,可以根据数据抬起按下进行拉伸修改容器宽度的操作给左右结构某一图表设置拉伸自适应左右结构都设置个最小宽度,只能到一定区域内拉伸解决echarts的bug(重复加载chart实例):[ECharts] …...
开发工具Eclipse的使用
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Eclipse使用的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Eclipse是什么 二.使用Eclipse的…...
DrawerLayout布局使用教程Android侧边栏导航完全指南:创建简单实用的导航抽屉
导航抽屉(侧边栏)在现代移动应用中扮演着关键角色,提供了流畅的用户导航体验。本文将带您从头开始,逐步创建一个基本的 Android 侧边栏导航示例,为您的应用增添更多交互魅力。 1. 创建新的 Android 项目 首先&#x…...
Dynamics 365 实体快速创建功能启用
这里我会先用例子讲快速创建,包含了字段创建等内容。希望直接了解配置过程的,可以根据目目录跳转查看。 1 例子 我们这里创建了两个实体,学生和选择的科目。它们的关系是一个学生可以选择多个科目,即学生和科目选择是一对多关系。所以我们在选择的科目中创建了一个学生的…...
Mybatis三剑客(一)在springboot中自动生成Mybatis【generator】
1、pom.xml中新增plugin <plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><overwrite>true</overwrite><…...
【LeetCode 热题 100】图论 专题(bfs,拓扑排序,Trie树 字典树)
from: https://leetcode.cn/studyplan/top-100-liked/ bfs 具有 边权为1 的最短路性质 拓扑排序,入度 Trie树, 高效存储 字符串【见鬼,不知道为什么写错,需要掌握熟练度】 文章目录 200. 岛屿数量【dfs / bfs】994. 腐…...
Jmeter压测实战:Jmeter二次开发之自定义函数
目录 1 前言 2 开发准备 3 自定义函数核心实现 3.1 新建项目 3.2 继承实现AbstractFunction类 3.3 最终项目结构 4 Jmeter加载扩展包 4.1 maven构建配置 4.2 项目打包 4.3 Jmeter加载扩展包 5 自定义函数调用调试 5.1 打开Jmeter函数助手,选择自定义函数…...
在python中使用nvidia的VPF库对RTSP流进行硬解码并使用opencv进行显示
解码并处理视频流的多线程应用 随着视频处理技术的不断发展,越来越多的应用需要对视频流进行解码和处理。在本文中,我们将介绍一个基于Python的多线程应用程序,该应用程序可以解码并处理多个RTSP视频流,同时利用GPU加速࿰…...
C++中using namespace std的作用记录
using namespace std;这句代码的作用是引入std命名空间,使得程序可以直接使用std命名空间下的标识符,而不需要加上std::前缀。 在C中,标识符被组织在不同的命名空间中,以避免命名冲突。最常见的命名空间是std,它包含了C标准库中的所有标识符,如cout、vector、string等。 默认…...
【TX 企业微信私有化历史版本 API 信息泄露】
目录 影响版本 复现过程 修复方式 影响版本 影响私有化部署: toB toG版微信 2.5.x 版本 2.6.930000 版本以下 危险程度:高危。攻击者可以进行获取企业的部门信息,员工信息,如权限较高包括应用获取,记录文件等等均…...
腾讯云轻量应用服务器镜像应用模板清单大全
腾讯云轻量应用服务器支持多种应用模板镜像,Windows和Linux镜像模板都有,如:宝塔Linux面板腾讯云专享版、WordPress、WooCommerce、LAMP、Node.js、Docker CE、K3s、宝塔Windows面板和ASP.NET等应用模板镜像,腾讯云服务器网分享腾…...
C语言链表操作
目录 链表基本操作 删除重复元素 查找倒数第N个节点 查找中间节点 约瑟夫环 循环链表 合并有序链表 逆置链表 逆置链表(双向链表) 链表基本操作 //linklist.c#include "linklist.h" #include <stdlib.h>struct node *head NULL; struct node *tail…...
详解拦截器和过滤器
目录 代码演示过滤器Demo拦截器Demo 过滤器自定义拦截器配置拦截器过滤器执行原理多个过滤器的执行顺序 拦截器自定义拦截器注册拦截器1)注册拦截器2)配置拦截的路径3)配置不拦截的路径 多个拦截器的执行顺序 过滤器和拦截器的区别 代码演示 …...
关于`IRIS/Caché`进程内存溢出解决方案
文章目录 关于IRIS/Cach进程内存溢出解决方案 描述原因相关系统变量$ZSTORAGE$STORAGE 什么情况下进程内存会变化?内存不足原理解决方案 关于 IRIS/Cach进程内存溢出解决方案 描述 在IRIS/Cach中,进程内存溢出错误是指一个进程(例如运行中的…...
构建Docker容器监控系统(cadvisor+influxDB+grafana)
目录 一、部署 1、安装docker-cd 2、阿里云镜像加速 3、下载组件镜像 4、创建自定义网络 5、创建influxdb容器 6、创建Cadvisor 容器 7、创建granafa容器 一、部署 1、安装docker-cd [rootlocalhost ~]# iptables -F [rootlocalhost ~]# setenforce 0 setenforce: SELi…...
最强自动化测试框架Playwright(17)- 模拟接口
模拟接口 介绍 Web API 通常作为 HTTP 终结点实现。Playwright提供了API来模拟和修改网络流量,包括HTTP和HTTPS。页面所做的任何请求,包括 XHR 和获取请求,都可以被跟踪、修改和模拟。使用Playwright,您还可以使用包含页面发出的…...
Python爬虫——requests_get请求
import requests# ?可加可不加 url http://www.baidu.com/s?headers {Cookie: ,User-Agent: , }data {wd: 北京 } # params 参数 response requests.get(urlurl, paramsdata, headersheaders)content response.text print(content)总结: 参数使用params传递…...
实战指南(一)易语言与大漠插件:从零打造自动化脚本的避坑手册
1. 易语言与大漠插件入门指南 第一次接触易语言和大漠插件时,我完全被它们的强大功能震撼到了。易语言作为一款中文编程工具,对新手特别友好,而大漠插件则是自动化脚本开发的利器。记得刚开始学习时,我花了一整天时间才成功调通第…...
麒麟服务器系统LVM实战:从物理卷到逻辑卷的完整配置指南
1. LVM基础概念与麒麟服务器系统适配性 在麒麟服务器系统中管理存储空间时,传统分区方式会遇到一个典型问题:当分区空间不足时,往往需要备份数据、重新分区再恢复数据,这个过程不仅耗时还可能影响业务连续性。而LVM(Lo…...
刷手机刷到颈腰痛别不当回事,颈椎病腰间盘突出正在毁掉低头族,科学防护与诊疗指南来了!
如今,"低头族" 已成为随处可见的社会现象,无论是通勤路上、吃饭时还是睡前,人们都在低头刷手机。但很多人不知道,当你沉迷于短视频时,你的脊柱正在承受着巨大的伤害。医学研究表明,低头 60 时&am…...
E7Helper:第七史诗自动化助手,如何实现24小时无忧挂机?
E7Helper:第七史诗自动化助手,如何实现24小时无忧挂机? 【免费下载链接】e7Helper 【EPIC】第七史诗多功能覆盖脚本(刷书签🍃,挂讨伐、后记、祭坛✌️,挂JJC等📛,多服务器支持&#…...
yz-bijini-cosplay一文详解:Z-Image端到端Transformer架构优势解析
yz-bijini-cosplay一文详解:Z-Image端到端Transformer架构优势解析 1. 项目概述 yz-bijini-cosplay是一个专为RTX 4090显卡优化的Cosplay风格文生图解决方案。该项目基于通义千问Z-Image端到端Transformer架构,结合专属训练的LoRA权重,实现…...
golang如何使用BubbleTea开发终端UI_golang BubbleTea终端UI开发攻略
Bubble Tea要求Model为值类型以确保状态更新生效,Update须秒级返回且不可阻塞,View需防panic,跨平台构建Windows需加.exe后缀并注意编码。Model 必须是值类型,否则状态更新会失效Bubble Tea 的 Update 函数返回新模型实例…...
深入解析ZYNQ FSBL:从BOOT.bin构建到启动流程优化
1. ZYNQ启动流程与FSBL的核心作用 第一次接触ZYNQ启动流程时,我被这个"俄罗斯套娃"式的引导过程震惊了。就像打开一个礼盒发现里面还有更小的礼盒,ZYNQ的启动也是层层递进的过程。FSBL(First Stage Boot Loader)就是这…...
传统软件工程是不是已经噶了
站在2026年这个节点,面对满大街的“自然语言即代码”和满屏幕的智能体(Agent)自动协作,“传统软件工程”还活着么?如果深入到工业、能源、制造这些硬核生产力的底层看一眼,你会发现:传统软件工程…...
主流边缘AI嵌入式平台实战选型指南
1. 边缘AI嵌入式平台选型核心指标 当你准备为智能摄像头或者工业质检设备选配边缘AI计算平台时,最先遇到的灵魂拷问往往是:到底该看哪些参数?我经手过二十多个边缘计算项目后,发现开发者最容易陷入"唯算力论"的误区。实…...
别再混淆了!用大白话和实际案例,讲清楚BMS硬件版和软件版的那些事儿
别再混淆了!用大白话和实际案例,讲清楚BMS硬件版和软件版的那些事儿 想象一下,你正在健身房举铁。当杠铃突然滑落时,你的脊髓会瞬间触发肌肉收缩——这就像硬件版BMS的本能反应;而教练在一旁记录你的训练数据、调整下周…...
