news 2026/4/16 12:09:13

pg_waldump 和 pg_xlogdump

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pg_waldump 和 pg_xlogdump

目录标题

    • 一句话结论
    • 背景:为什么改名?
    • 具体对比
      • 1️⃣ pg_xlogdump(已废弃)
      • 2️⃣ pg_waldump(当前标准)
    • 功能层面有没有区别?
    • 运维视角(结合你最近在看的 WAL / 复制槽问题)
    • 总结表

在 PostgreSQL 里,pg_waldumppg_xlogdump本质上是同一个工具的不同时代名字,区别主要在版本和命名演进,而不是功能层面。


一句话结论

  • pg_xlogdump:旧名字(PostgreSQL ≤ 9.6)
  • pg_waldump:新名字(PostgreSQL ≥ 10)
  • 功能基本一致,都是用来解析和查看 WAL(Write-Ahead Log)内容

背景:为什么改名?

PostgreSQL 10 开始,官方做了一次非常重要的术语统一

旧名称新名称
xlogwal
pg_xlog目录pg_wal
pg_xlogdumppg_waldump
XLOG_*WAL_*

目的:
👉让概念更清晰,避免 “xlog / wal 混用” 给运维和新手带来理解成本。


具体对比

1️⃣ pg_xlogdump(已废弃)

  • 适用版本:PostgreSQL 9.6 及以前
  • 解析对象pg_xlog/目录下的 WAL 文件
  • 命令示例
pg_xlogdump 00000001000000000000000A

⚠️ PostgreSQL 10+不再提供该命令


2️⃣ pg_waldump(当前标准)

  • 适用版本:PostgreSQL 10 及以后
  • 解析对象pg_wal/目录下的 WAL 文件
  • 命令示例
pg_waldump pg_wal/00000001000000000000000A
  • 支持更完善的过滤参数:
pg_waldump\--rmgr=Heap\--limit=20\--start=0/16B6C50\pg_wal/00000001000000000000000A

功能层面有没有区别?

👉几乎没有本质区别

二者都能:

  • 查看 WAL record 类型(INSERT / UPDATE / COMMIT / CHECKPOINT)

  • 分析复制延迟、WAL 堆积

  • 排查:

    • replication slot 导致 WAL 无法回收
    • 备库 / logical decoding 卡住
    • 异常 checkpoint / 大事务

PostgreSQL 10+ 的pg_waldump只是:

  • 命名更规范
  • 输出字段略有增强
  • 与新 rmgr / WAL record 类型保持一致

运维视角(结合你最近在看的 WAL / 复制槽问题)

你之前在关注复制槽 + WAL 堆积 + max_slot_wal_keep_size,这里给你一个典型用法场景

# 看某个 WAL 里是不是一直在产生大量 heap recordpg_waldump --rmgr=Heap --limit=50pg_wal/0000000100000000000000AF

或者定位某个 LSN 附近发生了什么:

pg_waldump --start=0/2A000000 --end=0/2A010000 pg_wal/0000000100000000000000AF

这在分析:

  • 逻辑复制 slot 阻塞
  • 订阅端长期不消费
  • WAL 无法回收

时非常有价值。


总结表

项目pg_xlogdumppg_waldump
PostgreSQL 版本≤ 9.6≥ 10
是否还维护❌ 否✅ 是
WAL 目录pg_xlogpg_wal
功能解析 WAL解析 WAL
推荐使用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 21:46:09

mybatis insert后返回id

在 MyBatis 中插入数据后返回自增 ID 有以下几种常用方法&#xff1a;1. 使用 useGeneratedKeys和 keyProperty&#xff08;推荐&#xff09;XML 映射文件方式<insert id"insertUser" parameterType"User" useGeneratedKeys"true" keyPropert…

作者头像 李华
网站建设 2026/4/14 13:38:40

3P游戏动作为何总对不上位移?

你在玩第三人称(3P)射击 / 动作游戏时, 一定见过这种“违和感爆表”的画面: 敌人明明在狂奔,腿跑得飞快,整个人却像在慢动作滑行 模型已经一脚迈出去了,判定还当他站在原地 你看见对面刚停下,马上抬枪瞄他,结果他在你眼里还在跑步动画 有的人“脚下踩着风火轮”,位移…

作者头像 李华
网站建设 2026/4/8 22:26:24

D365 CE Power Platform 编程系列 (8):JS编程之客户端实体

今天我们来看看怎么针对不同类型的字段构造Javascript对象&#xff0c;并在表单js里面对他们进行更新操作。下图是我们为了今天的测试创建的字段&#xff0c;名称代表了它的字段类型&#xff1a;接下来我们通过如下JS代码对这些字段进行赋值操作&#xff1a;Form_onsave:functi…

作者头像 李华
网站建设 2026/4/16 12:22:30

构建高效任务中心:CDC 数据同步的工程实践与架构权衡

构建高效任务中心&#xff1a;CDC 数据同步的工程实践与架构权衡 在现代业务系统中&#xff0c;任务中心&#xff08;Task Center&#xff09;作为连接数据与行动的核心枢纽&#xff0c;其核心能力之一是从上游业务数据库中可靠、高效、低延迟地同步关键状态变更&#xff0c;并…

作者头像 李华
网站建设 2026/4/12 4:27:52

自动化测试报告设计分享

在软件质量保障体系中&#xff0c;自动化测试已成为不可或缺的环节。然而&#xff0c;测试的价值不仅在于执行过程&#xff0c;更在于结果的呈现与分析。一份精心设计的自动化测试报告&#xff0c;能够将复杂的测试数据转化为有价值的洞察&#xff0c;帮助团队快速定位问题、评…

作者头像 李华