PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

pg_waldump

pg_waldump — 以人类可读的形式显示一个 PostgreSQL 数据库集群的预写式日志

Synopsis

pg_waldump [option...] [startseg [endseg]]

描述

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

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

选项

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

startseg

从指定的 WAL 段文件开始读取。这隐式地决定了在其中搜索文件的路径,以及要使用的时间线。

endseg

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

-b
--bkp-details

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

-B block
--block=block

只显示修改给定块的记录。还必须通过 --relation 或 -R 提供该关系。

-e end
--end=end

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

-f
--follow

到达有效 WAL 的末尾后,每秒轮询一次以等待新 WAL 出现。

-F fork
--fork=fork

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

-n limit
--limit=limit

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

-p path
--path=path

指定要在其中搜索 WAL 段文件的目录,或者指定一个带有包含这类文件的 pg_wal 子目录的目录。默认在当前目录、当前目录的 pg_wal 子目录以及 pg_wal 子目录(位于 PGDATA 下)中搜索。

-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
--start=start

开始读取的 WAL 位置。默认从所找到的最早文件中找到的第一条有效 WAL 记录开始读取。

-t timeline
--timeline=timeline

从其读取 WAL 记录的时间线。默认使用 startseg 中的值(如果指定了它);否则,默认值为 1。该值可以用十进制或十六进制指定,例如 17 或 0x11。

-V
--version

打印 pg_waldump 的版本并退出。

-w
--fullpage

只显示包含全页映像的记录。

-x xid
--xid=xid

只显示以给定事务 ID 标记的记录。

-z
--stats[=record]

显示摘要统计信息(记录和全页映像的数量与大小)而不是单个记录。还可以选择按记录而不是按资源管理器生成统计信息。

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

--save-fullpage=save_path

把 WAL 记录中找到的全页映像保存到 save_path 目录。保存的映像与显示的记录遵循相同的过滤和限制条件。

全页映像将按下列文件名格式保存: TIMELINE-LSN.RELTABLESPACE.DATOID.RELNODE.BLKNO_FORK 文件名由以下部分组成:

ComponentDescription
TIMELINE该记录所在的 WAL 段文件的时间线,格式为一个 8 字符的十六进制数 %08X
LSN包含此映像的记录的 LSN,格式为两个 8 字符的十六进制数 %08X-%08X
RELTABLESPACE该块的表空间 OID
DATOID该块的数据库 OID
RELNODE该块的文件节点
BLKNO该块的块号
FORK 全页映像所来自的 fork 的名称,例如 main、fsm、vm 或 init。

-?
--help

显示关于 pg_waldump 命令行参数的帮助,然后退出。

环境

PGDATA

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

PG_COLOR

指定是否在诊断消息中使用颜色。可能的值是 always、auto 和 never。

注记

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

只显示指定的时间线(如果未指定则显示默认时间线)。其他时间线中的记录会被忽略。

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

另请参阅

Section 28.6