pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
pg_waldump — 以人类可读形式显示 PostgreSQL 数据库集簇的预写式日志
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 #指定一个 tar 归档或用于搜索 WAL 段文件的目录,或者指定一个包含 pg_wal 子目录且其中包含此类文件的目录。默认会在当前目录、当前目录的 pg_wal 子目录以及 PGDATA 的 pg_wal 子目录中搜索。
如果提供了 tar 归档且其中的 WAL 段文件不是按顺序排列,则这些文件会写入一个以 waldump_tmp 开头的临时目录。若设置了 TMPDIR 环境变量,该目录会创建在其指定的目录中;否则,它会创建在 tar 归档所在的同一目录中。
-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
| 组成部分 | 说明 |
|---|---|
| TIMELINE | 记录所在 WAL 段文件的时间线,格式为一个 8 字符的十六进制数 %08X |
| LSN | 带有该镜像的记录的 LSN,格式为两个 8 字符的十六进制数 %08X-%08X |
| RELTABLESPACE | 块的表空间 OID |
| DATOID | 块的数据库 OID |
| RELNODE | 块的文件节点 |
| BLKNO | 块的块号 |
| FORK | 该整页镜像来源的分支名称,例如 main、fsm、vm 或 init。 |
-?--help #显示 pg_waldump 命令行参数的帮助信息,并退出。
服务器运行时,可能给出错误的结果。
只显示指定的时间线(如果未指定,则使用默认时间线)。其他时间线中的记录会被忽略。
pg_waldump 不能读取带有.partial 后缀的 WAL 文件。如果需要读取这些文件,则必须从文件名中移除.partial 后缀。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游会在正式发布前持续修订。