WAL Internals
WAL 会自动启用;管理员除了确保满足 WAL 文件的磁盘空间需求,并完成任何必要调优之外,不需要再做其他操作(见 第 28.5 节 )。 每写入一条新记录, WAL 记录就会追加到 WAL 文件中。插入位置由日志序列号( LSN )描述,它是 WAL 内的一个字节偏移量,会随着每条新记录的写入而单调递增。 LSN 值以数据类型 pg_lsn 返回。通过比较两个值,可以计算它们之间相隔的 WAL 数据量,因此它们可用于衡量复制和恢复的进度。 WAL 文件保存在数据目录下的 pg_wal 目录中…
当前查看 PostgreSQL 18。
中文定义与说明
存储结构 wal-internals。
同版本中文手册节选
WAL 会自动启用;管理员除了确保满足 WAL 文件的磁盘空间需求,并完成任何必要调优之外,不需要再做其他操作(见第 28.5 节)。
每写入一条新记录,WAL 记录就会追加到
WAL 文件中。插入位置由日志序列号(LSN)描述,它是 WAL 内的一个字节偏移量,会随着每条新记录的写入而单调递增。LSN 值以数据类型
pg_lsn 返回。通过比较两个值,可以计算它们之间相隔的 WAL 数据量,因此它们可用于衡量复制和恢复的进度。
WAL 文件保存在数据目录下的 pg_wal 目录中,由一组段文件组成,每个段通常为 16 MB(不过可通过修改
--wal-segsize initdb 选项来改变大小)。每个段又分为若干页面,通常每页 8 kB(该大小可通过 configure 选项 --with-wal-blocksize 更改)。WAL 记录头定义在
access/xlogrecord.h 中;记录内容则取决于被记录的事件类型。段文件以不断递增的数字命名,从
000000010000000000000001 开始。这些编号不会回绕,但要把可用的编号耗尽还需要非常、非常长的时间。
如果能将 WAL 放在与主数据库文件不同的磁盘上,会更有利。这可以通过把
pg_wal 目录移动到其他位置(当然要在服务器关闭时进行),然后在主数据目录中的原位置创建一个指向新位置的符号链接来实现。
说明
WAL 会自动启用;管理员除了确保满足 WAL 文件的磁盘空间需求,并完成任何必要调优之外,不需要再做其他操作(见 第 28.5 节 )。 每写入一条新记录, WAL 记录就会追加到 WAL 文件中。插入位置由日志序列号( LSN )描述,它是 WAL 内的一个字节偏移量,会随着每条新记录的写入而单调递增。 LSN 值以数据类型 pg_lsn 返回。通过比较两个值,可以计算它们之间相隔的 WAL 数据量,因此它们可用于衡量复制和恢复的进度。 WAL 文件保存在数据目录下的 pg_wal 目录中,由一组段文件组成,每个段通常为 16 MB(不过可通过修改 --wal-segsize initdb 选项来改变大小)。每个段又分为若干页面,通常每页 8 kB(该大小可通过 configure 选项 --with-wal-blocksize 更改)。WAL 记录头定义在 access/xlogrecord.h 中;记录内容则取决于被记录的事件类型。段文件以不断递增的数字命名,从 000000010000000000000001 开始。这些编号不会回绕,但要把可用的编号耗尽还需要非常、非常长的时间。 如果能将 WAL 放在与主数据库文件不同的磁盘上,会更有利。这可以通过把 pg_wal 目录移动到其他位置(当然要在服务器关闭时进行),然后在主数据目录中的原位置创建一个指向新位置的符号链接来实现。
- 定义范围
- 同版本核心物理存储文档
相关条目
文档与源码
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回存储结构 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。