-
检查点进程
角色定位 → 为什么需要它 → 它到底干什么 → 它和 WAL/bgwriter/后端写盘怎么分工 → 对性能和恢复有什么影响 → 怎么监控和排障”这条线讲,这样你能把 checkpointer 真正串起来。 把 checkpointer 进程 按 定义 → 存在意义 → 工作对象 → 触发机制 → 执行动作 → 与 WAL/恢复/性能的关系 → 和其他进程的边界 → 监控与调 ...
-
walsender(WAL 流那条,仅 -X stream)进程
pg_basebackup -X stream 场景里,“专门发 WAL 的那条 walsender 进程” 单独拎出来,按 角色 → 为什么需要它 → 它怎么启动 → 它持续在干什么 → 它和数据文件那条怎么配合 → 出现问题时怎么看 这条逻辑线,完整讲透。 1)先定性:这条进程到底是什么 这条 walsender 是 源库服务端侧 的一个复制发送进程。它 ...
-
pg_basebackup进程相关
pg_basebackup 客户端进程pg_basebackup 的“客户端进程”,本质上就是在备份机上启动的那个前台工具进程。它不是数据库实例内部的常驻后台进程,而是一个 PostgreSQL 客户端程序:负责连到源库,发起基础备份请求,接收服务器发来的数据流,并把备份文件落到本地目录、tar 包,或者按参数写到目标位置。官方文档明确说 ...
-
postgresql物理备份之: 冷备份
一: 冷备份流程 关闭数据库实例:pg_ctl stop -m fast 备份数据库目录:1. tar zcvf databackup-20260311.tar.gz /postgresql/data或者:2. mkdir -p /backup/data_bak cp -rp /postgresql/data/* backup/data_bak 模拟数据库崩溃 或在第三方机器上恢复数据库:1. 解压 备份的tar包: t ...
-
库使用了自定义表空间(pg_tblspc 目录下的软链接),必须顺藤摸瓜,把那些挂载在外部 /mnt/nvme_fast/ 等目录下的真实数据文件一并打包带走!
🌿 第一环:物理造假(CREATE TABLESPACE 到底干了什么?) 业务诉求:你的核心订单表太大了,且要求极高的读写速度。于是,你在系统里插了一块极速的 NVMe 固态硬盘,挂载在操作系统的 /mnt/nvme_fast/ 目录下。 物理动作:你敲下了 CREATE TABLESPACE order_space LOCATION '/mnt/nvme_fast';。 底层真相 ...
-
wal日志的归档进程 工作原理,逻辑条理 的推演
第一拍:源头封口(产生物理载荷) 物理现场:业务在疯狂写入,pg_wal 目录下的一个文件(比如叫 000000010000000A000000FF)刚好写到了第 16777216 个字节。 物理动作:负责写日志的 WAL Writer 进程或者前台业务进程,调用底层的 close() 函数,把这个 16MB 的文件彻底封口。从此以后,这个文件变成了**“只读 ...
-
组提交魔法(Group Commit,极其核心!)
第一杀:WAL Buffer 到底有多大?(智能的弹性气闸) 很多人的第一反应是去查文档背一个固定数字。但在现代 PostgreSQL 内核中,这个大小是极其狡猾且自适应的。 参数控制:wal_buffers。 默认的物理骗局 (-1):如果你去查 postgresql.conf,你会发现它的默认值是 -1。这代表“把控制权彻底交给内核”。 底 ...
-
每个 进程 在自己的私有内存里面生产的 wal日志写入到 wal buffer里面的时候,会抢什么锁?? wdal日志由wal buffer 落盘的时候会抢夺什么锁??
第一道闸门:私有内存 -> wal_buffers(抢夺 WALInsertLock) 【物理动作】: 业务进程在自己的私有内存(Local Memory)里,已经把 XLogRecord(核弹头)组装好了。现在,它要把这串二进制数据**拷贝(Copy)**到全局共享的 wal_buffers 环形队列里。 【争夺的锁】:WALInsertLock(WAL 插入锁) 【原厂 ...
-
段文件的回收与删除 wal日志文件的切换
第一帧:历史的血泪与防呆改名(pg_xlog ->pg_wal) 官方原话:“PostgreSQL将XLOG记录写入在pg_wal目录中(10之前为pg_xlog目录)” 慢动作推演:时间回到 PG 10 发布之前。夜里 3 点,某公司的服务器磁盘空间报警(使用率 99%)。一位睡眼惺忪的初级运维登录服务器,用 ls 扫了一眼数据目录,看到了一个叫 pg_x ...
-
全页写 问题:
全页写问题: 如果系统默认5分钟之内生成 20份脏页, flushed lsn从开始的1000 写到了 6000,checkpoint进程花了1分钟把20份脏页刷入磁盘,但是这个5分钟之内没有事务修改这20份脏页,但是在 第2个 5分钟之间新生成了40份脏页,flushed lsn从6000写到了10000,并触发了第二次checkpoint进程,把第二个5分钟之内生成的4 ...