pg_waldump — 显示 PostgreSQL 数据库集群预写日志的人类可读渲染
pg_waldump
[选项
...] [起始段
[结束段
]]
pg_waldump
显示预写日志 (WAL),主要用于调试或教育目的。
该实用程序只能由安装服务器的用户运行,因为它需要对数据目录的只读访问权。
以下命令行选项控制输出的位置和格式
起始段
从指定的 WAL 段文件开始读取。这隐式地确定了文件将在其中被搜索的路径,以及要使用的时间线。
结束段
读取指定 WAL 段文件后停止。
-b
--bkp-details
输出有关备份块的详细信息。
-B 块
--block=块
只显示修改给定块的记录。关系还必须通过 --relation
或 -R
提供。
-e 结束
--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
子目录以及 PGDATA
的 pg_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
--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]
显示汇总统计信息(记录和完整页面图像的数量和大小),而不是各个记录。可以按记录而不是按 rmgr 生成统计信息。
如果 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命令行参数的帮助,并退出。
PGDATA
数据目录,另请参阅-p
选项。
PG_COLOR
指定是否在诊断消息中使用颜色。可能的值为always
、auto
和never
。
当服务器正在运行时,可能会给出错误的结果。
只显示指定的时间线(或默认值,如果没有指定)。忽略其他时间线中的记录。
pg_waldump无法读取具有后缀.partial
的WAL文件。如果需要读取这些文件,则需要从文件名中删除.partial
后缀。