2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不受支持的版本:11 / 10

pg_waldump

pg_waldump — 显示 PostgreSQL 数据库集群的预写日志的人类可读呈现

概要

pg_waldump [选项...] [startseg [endseg]]

描述

pg_waldump 显示预写日志 (WAL),主要用于调试或教育目的。

此实用程序只能由安装服务器的用户运行,因为它需要对数据目录的只读访问权限。

选项

以下命令行选项控制输出的位置和格式

startseg

从指定的 WAL 段文件开始读取。这隐式地确定了将搜索文件的路径以及要使用的时序。

endseg

读取完指定的 WAL 段文件后停止。

-b
--bkp-details

输出有关备份块的详细信息。

-B
--block=

仅显示修改给定块的记录。关系也必须使用 --relation-R 提供。

-e 结束
--end=结束

在指定的 WAL 位置停止读取,而不是读取到日志流的末尾。

-f
--follow

到达有效 WAL 的末尾后,每秒轮询一次以查看是否有新的 WAL 出现。

-F 分叉
--fork=分叉

仅显示修改给定分叉中块的记录。有效值为 main(主分叉)、fsm(空闲空间映射)、vm(可见性映射)和 init(初始化分叉)。

-n 限制
--limit=限制

显示指定的记录数,然后停止。

-p 路径
--path=路径

指定一个目录以搜索 WAL 段文件,或指定一个包含此类文件的 pg_wal 子目录的目录。默认情况下,将搜索当前目录、当前目录的 pg_wal 子目录以及 PGDATApg_wal 子目录。

-q
--quiet

除错误外,不打印任何输出。当您想知道是否可以成功解析一定范围的 WAL 记录但不在乎记录内容时,此选项很有用。

-r rmgr
--rmgr=rmgr

仅显示由指定资源管理器生成的记录。您可以多次指定选项以选择多个资源管理器。如果传递 list 作为名称,则打印有效资源管理器名称列表并退出。

扩展程序可以定义自定义资源管理器,但 pg_waldump 不会加载扩展程序模块,因此不会按名称识别自定义资源管理器。相反,您可以将自定义资源管理器指定为 custom###,其中 ### 是三位资源管理器 ID。此形式的名称始终被视为有效。

-R tblspc/db/rel
--relation=tblspc/db/rel

仅显示修改给定关系中块的记录。关系使用表空间 OID、数据库 OID 和 relfilenode 指定,用斜杠分隔,例如 1234/12345/12345。这与程序输出中关系使用的格式相同。

-s 开始
--start=开始

要开始读取的 WAL 位置。默认情况下,将从找到的第一个有效 WAL 记录开始读取,该记录位于找到的最早文件中。

-t 时序
--timeline=时序

要从中读取 WAL 记录的时序。默认情况下,使用 startseg 中的值(如果指定);否则,默认值为 1。该值可以使用十进制或十六进制指定,例如 170x11

-V
--version

打印 pg_waldump 版本并退出。

-w
--fullpage

仅显示包含完整页面映像的记录。

-x xid
--xid=xid

仅显示标记有给定事务 ID 的记录。

-z
--stats[=record]

显示摘要统计信息(记录和完整页面映像的数量和大小),而不是单个记录。可以选择按记录而不是按 rmgr 生成统计信息。

如果 pg_waldump 被信号 SIGINT (Control+C) 终止,则会显示截至终止点的计算统计信息的摘要。此操作在 Windows 上不受支持。

--save-fullpage=save_path

将 WAL 记录中找到的完整页面映像保存到 save_path 目录。保存的映像受与显示的记录相同的过滤和限制条件约束。

完整页面映像使用以下文件名格式保存:TIMELINE-LSN.RELTABLESPACE.DATOID.RELNODE.BLKNOFORK 文件名由以下部分组成

组件 描述
TIMELINE 包含记录的 WAL 段文件的时序,格式为一个 8 字符十六进制数 %08X
LSN 带有此映像的记录的LSN,格式为两个 8 字符十六进制数 %08X-%08X
RELTABLESPACE 块的表空间 OID
DATOID 块的数据库 OID
RELNODE 块的文件节点
BLKNO 块的块号
FORK 完整页面映像来自的分叉名称,例如 _main_fsm_vm_init
-?
--help

显示有关 pg_waldump 命令行参数的帮助并退出。

环境

PGDATA

数据目录;另请参阅 -p 选项。

PG_COLOR

指定是否在诊断消息中使用颜色。可能的值为 alwaysautonever

注意

当服务器正在运行时,可能会给出错误的结果。

仅显示指定的时序(或默认时序,如果未指定)。其他时序中的记录将被忽略。

pg_waldump 无法读取后缀为 .partial 的 WAL 文件。如果需要读取这些文件,则需要从文件名中删除 .partial 后缀。

另请参阅

第 28.6 节

提交更正

如果您在文档中发现任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表格 报告文档问题。