max_wal_size 是一个配置参数,它确定在执行自动检查点之前,未检查的WAL可以增长到多大。
max_wal_size 在 PostgreSQL 9.5 中引入。
max_wal_size 并不意味着所有WAL文件总大小的绝对上限
默认值
max_wal_size 的默认值为:1GB。
按 PostgreSQL 版本详细信息
max_wal_size (PostgreSQL 19)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/19/postgresql.conf |
| 源行 | 267 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 18)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/18/postgresql.conf |
| 源行 | 267 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 17)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/17/postgresql.conf |
| 源行 | 257 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 16)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/16/postgresql.conf |
| 源行 | 247 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 15)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/15/postgresql.conf |
| 源行 | 241 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 14)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/14/postgresql.conf |
| 源行 | 240 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 13)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/13/postgresql.conf |
| 源行 | 229 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 12)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/12/postgresql.conf |
| 源行 | 225 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 11)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 配置文件 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | /home/barwick/devel/postgres/data/11/postgresql.conf |
| 源行 | 213 |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 10)
| 设置 | 1024 |
| 单位 | MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 1024 |
| 重置值 | 1024 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 9.6)
| 设置 | 64 |
| 单位 | 16MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 64 |
| 重置值 | 64 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: max_wal_size
max_wal_size (PostgreSQL 9.5)
| 设置 | 64 |
| 单位 | 16MB |
| 类别 | 预写日志 / 检查点 |
| 简短描述 | 设置触发检查点所需的WAL大小。 |
| 扩展描述 | |
| 上下文 | sighup |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 2 |
| 最大值 | 2147483647 |
| 枚举值 | |
| 启动值 | 64 |
| 重置值 | 64 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档: max_wal_size
变更历史
- PostgreSQL 9.5
- (提交 88e98230 添加)
max_wal_size 和 min_wal_size 取代了 checkpoint_segments。
参考资料
- PostgreSQL文档: max_wal_size
有用链接
- max_wal_size 的重要性 - Christophe Pettus 于 2023 年 3 月撰写的博客文章
- 调整 PostgreSQL 中的 max_wal_size - EnterpriseDB 于 2022 年 3 月撰写的博客文章
- 检查点距离和 WAL 的数量 - CyberTec 于 2017 年 1 月撰写的博客文章
- 检查点调优基础 - 2ndQuadrant 于 2016 年 11 月撰写的博客文章
