跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

预设选项

Preset Options 分类下的 24 个 PostgreSQL 核心配置参数档案。

条目 URL 保持扁平;本分类仅用于侧栏与浏览组织。

1 - block_size

block_size:显示磁盘页块大小。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 8192,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示磁盘页块大小。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 81928192
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 8192
8192

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 8192 8192

机制详解

显示磁盘页块大小。它是只读状态,不能通过 SET 或修改配置文件来改变。

它反映构建 PostgreSQL 时选定的 BLCKSZ(通常为 8 KiB);所有堆表与索引页布局都依赖该值。

联动解读应同时查看 wal_block_size、wal_segment_size、segment_size。应用与运维工具可读取 block_size 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 block_size 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 block_size 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 block_size。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

wal_block_size · wal_segment_size · segment_size · data_checksums · server_version_num · max_function_args

参考资料

2 - data_checksums

data_checksums:显示该集群是否启用了数据校验和。实测在档范围为 PG9.3–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 off,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示该集群是否启用了数据校验和。

身份

类型 , enum
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 , ""
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , off
off

生命周期

Fact
首次观测 PG9.3
在档版本 PG9.3–19 Beta 3
移除版本
引入提交 5a7e75849cb5 — Add a GUC to report whether data page checksums are enabled.
提交日期 2013-09-16
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.3–19 Beta 3 off off

机制详解

报告控制文件记录的集群级数据校验和状态。它在 SQL 中是 internal/只读值,不能通过 SET 修改。

校验和可由 initdb 选定,也可在服务器停止后通过 pg_checksums 修改。PostgreSQL 从存储读取页时验证校验和,写页时计算校验和。

校验和能发现撕裂或损坏页,但不能修复,也不能证明 WAL、备份、内存与所有存储层都健康。变更需要离线流程、全集群扫描容量和已验证备份。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 把该值视作完整性能力,而非性能旋钮。持久集群优先使用校验和并监控失败;既有集群应通过计划好的离线 pg_checksums 流程变更。
OLAP 按真实数据集预算校验和 CPU 与启停所需的全集群扫描;离线转换前验证备份与副本兼容性。
小规格 尽量在 initdb 时启用。既有小集群通常用 pg_checksums 比重建简单,但仍需停机与可恢复备份。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.3–19 Beta 3 未修改;OLAP: PG9.3–19 Beta 3 未修改;CRIT: PG9.3–19 Beta 3 未修改;TINY: PG9.3–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试通过 SET 或 ALTER SYSTEM 修改只读报告。
  • 服务器未干净停机时运行 pg_checksums。
  • 误以为忽略校验和错误就能修复损坏。
  • 误以为校验和本身能验证 WAL 记录、逻辑正确性或备份。
  • 启用后未监控校验和失败与存储健康。

ignore_checksum_failure · zero_damaged_pages · wal_log_hints · full_page_writes · data_directory · block_size

参考资料

3 - data_directory_mode

data_directory_mode:显示数据目录的权限模式。它是 PG11–18 的只读元数据,不是运行时调优旋钮。
说明

Fact — 官方简述译文:显示数据目录的权限模式。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 0511
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 448
448

生命周期

Fact
首次观测 PG11
在档版本 PG11–19 Beta 3
移除版本
引入提交 c37b3d08ca68 — Allow group access on PGDATA
提交日期 2018-04-07
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG11–19 Beta 3 448 448

机制详解

显示数据目录的权限模式。它是只读状态,不能通过 SET 或修改配置文件来改变。

它以 pg_settings 的十进制表示报告数据目录的有效 Unix 权限,常见值对应 0700 或允许同组读取的 0750。

联动解读应同时查看 block_size、data_checksums、debug_assertions。应用与运维工具可读取 data_directory_mode 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 data_directory_mode 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 data_directory_mode 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG11–19 Beta 3 未修改;OLAP: PG11–19 Beta 3 未修改;CRIT: PG11–19 Beta 3 未修改;TINY: PG11–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 data_directory_mode。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

block_size · data_checksums · debug_assertions · huge_pages_status · in_hot_standby · integer_datetimes

参考资料

4 - debug_assertions

debug_assertions:显示运行中的服务器是否启用了断言检查。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 off,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示运行中的服务器是否启用了断言检查。

身份

类型 , bool
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , off
off

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 off off

机制详解

显示运行中的服务器是否启用了断言检查。它是只读状态,不能通过 SET 或修改配置文件来改变。

它反映服务器二进制是否带断言检查构建;这是会增加开销、并可能在违反内部不变量时中止的开发诊断功能。

联动解读应同时查看 server_version、server_version_num、server_encoding。应用与运维工具可读取 debug_assertions 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 debug_assertions 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 debug_assertions 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 debug_assertions。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

server_version · server_version_num · server_encoding · ssl_library · integer_datetimes · block_size

参考资料

5 - debug_exec_backend

debug_exec_backend:显示运行中的服务器是否启用了 EXEC_BACKEND 构建选项。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 off,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示运行中的服务器是否启用了 EXEC_BACKEND 构建选项。

身份

类型 , bool
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , off
off

生命周期

Fact
首次观测 PG19 Beta 3
在档版本 PG19 Beta 3
移除版本
引入提交 b3fe098d330f — Add GUC to show EXEC_BACKEND state
提交日期 2025-11-26
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG19 Beta 3 off off

机制详解

debug_exec_backend:显示运行中的服务器是否启用了 EXEC_BACKEND 构建选项。它是 PostgreSQL 报告的只读状态,不是操作员可设置的调优旋钮。 本站在 PG19 Beta 3 实测到它;boot_val 是编译或初始化基线,并不能证明某个运行集群的当前有效值。

EXEC_BACKEND 通过执行新的服务器进程创建后端,而不只依赖 fork 后继承地址空间。该只读值由平台或构建选项决定,在 Windows 上通常为 true;它可用于解释参数传递方式和平台相关的后端启动行为。

应与 debug_assertions、server_version、server_version_num、dynamic_shared_memory_type 一起理解。请在目标服务器检查 SHOW 与 pg_settings,确认 source 和 pending_restart,并在修改前后对比真实负载、日志和资源指标。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 在出现可复现的运维需求前保持上游默认;应在代表性并发下测试,并在全局修改前检查日志、延迟与关联参数。
OLAP 结合有代表性的长查询和批处理评估,比较整个任务的总耗时、资源、日志量与失败行为,而不是孤立操作。
小规格 尽量减少覆盖并记录回滚。小系统容纳额外日志、worker、内存或保留 WAL 的余量更小,必须用明确资源上限验证。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG19 Beta 3 未修改;OLAP: PG19 Beta 3 未修改;CRIT: PG19 Beta 3 未修改;TINY: PG19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 把 debug_exec_backend 的实测 boot_val 当成初始化后或托管集群当前有效值的证明。
  • 忽略 pg_settings 报告的 internal context,误以为修改会立即生效。
  • 孤立修改该参数,没有检查关联上限、可观测性和回滚路径。
  • 在生产中依赖测试版行为,却没有在 PostgreSQL 19 正式版发布后重新验证。

debug_assertions · server_version · server_version_num · dynamic_shared_memory_type

参考资料

6 - effective_wal_level

effective_wal_level:显示系统当前实际生效的 WAL 级别。实测在档范围为 PG19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 replica,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示系统当前实际生效的 WAL 级别。

身份

类型 , enum
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 , minimal, replica, logical
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , replica
replica

生命周期

Fact
首次观测 PG19 Beta 3
在档版本 PG19 Beta 3
移除版本
引入提交 67c20979ce72 — Toggle logical decoding dynamically based on logical slot presence.
提交日期 2025-12-23
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG19 Beta 3 replica replica

机制详解

effective_wal_level:显示系统当前实际生效的 WAL 级别。它是 PostgreSQL 报告的只读状态,不是操作员可设置的调优旋钮。 本站在 PG19 Beta 3 实测到它;boot_val 是编译或初始化基线,并不能证明某个运行集群的当前有效值。

它不同于配置项 wal_level,是系统实际 WAL 记录级别的只读报告。PG19 在 wal_level=replica 但逻辑槽需要时仍可维持等价于 logical 的 WAL;备用库则继承复制链最上游服务器的有效级别。

应与 wal_level、max_replication_slots、max_wal_senders、track_commit_timestamp 一起理解。请在目标服务器检查 SHOW 与 pg_settings,确认 source 和 pending_restart,并在修改前后对比真实负载、日志和资源指标。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 在出现可复现的运维需求前保持上游默认;应在代表性并发下测试,并在全局修改前检查日志、延迟与关联参数。
OLAP 结合有代表性的长查询和批处理评估,比较整个任务的总耗时、资源、日志量与失败行为,而不是孤立操作。
小规格 尽量减少覆盖并记录回滚。小系统容纳额外日志、worker、内存或保留 WAL 的余量更小,必须用明确资源上限验证。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG19 Beta 3 未修改;OLAP: PG19 Beta 3 未修改;CRIT: PG19 Beta 3 未修改;TINY: PG19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 把 effective_wal_level 的实测 boot_val 当成初始化后或托管集群当前有效值的证明。
  • 忽略 pg_settings 报告的 internal context,误以为修改会立即生效。
  • 孤立修改该参数,没有检查关联上限、可观测性和回滚路径。
  • 在生产中依赖测试版行为,却没有在 PostgreSQL 19 正式版发布后重新验证。

wal_level · max_replication_slots · max_wal_senders · track_commit_timestamp

参考资料

7 - huge_pages_status

huge_pages_status:显示大页的使用状态。它是 PG17–18 的只读元数据,不是运行时调优旋钮。
说明

Fact — 官方简述译文:显示大页的使用状态。

身份

类型 , enum
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 , off, on, unknown
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , unknown
unknown

生命周期

Fact
首次观测 PG17
在档版本 PG17–19 Beta 3
移除版本
引入提交 a14354cac0e3 — Add GUC parameter “huge_pages_status”
提交日期 2023-07-06
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG17–19 Beta 3 unknown unknown

机制详解

报告主共享内存区是否实际使用显式大页。它是 internal、只读的启动结果,取值为 off、on 或 unknown。

PostgreSQL 应用 huge_pages 后,根据操作系统支持与可用大页池尝试启动分配,再得出该状态;它不由 PostgreSQL 二进制或 initdb 固定。

用 shared_memory_size_in_huge_pages 估算所需池,并在每次重启后把 huge_pages_status 与请求的 huge_pages 策略对照。Transparent Huge Pages 是另一套操作系统机制。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不能直接调该状态。请求 on 却显示 off 时,检查 huge_pages 策略、OS 支持、池大小、权限与启动日志;调整 OS 池后重启。
OLAP 大型共享内存可能需要大量大页;按真实 shared_memory_size 预留余量,并在每个节点验证 NUMA 放置与重启行为。
小规格 平台策略无特殊要求时保持 huge_pages=try。不要只为让小共享内存显示 on 就预留过大的 OS 大页池。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG17–19 Beta 3 未修改;OLAP: PG17–19 Beta 3 未修改;CRIT: PG17–19 Beta 3 未修改;TINY: PG17–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试 SET 一个只读启动结果。
  • 混淆 huge_pages_status 与配置请求 huge_pages。
  • 忽略操作系统大页池过小或启动分配失败。
  • 混淆 PostgreSQL 显式大页与 Transparent Huge Pages。
  • 误以为一个节点的状态适用于 OS 配置不同的故障切换节点。

huge_pages · shared_memory_size_in_huge_pages · shared_memory_size · shared_buffers · min_dynamic_shared_memory · dynamic_shared_memory_type

参考资料

8 - in_hot_standby

in_hot_standby:显示当前是否处于 hot standby 状态。它是 PG14–18 的只读元数据,不是运行时调优旋钮。
说明

Fact — 官方简述译文:显示当前是否处于 hot standby 状态。

身份

类型 , bool
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , off
off

生命周期

Fact
首次观测 PG14
在档版本 PG14–19 Beta 3
移除版本
引入提交 bf8a662c9afa — Introduce a new GUC_REPORT setting “in_hot_standby”.
提交日期 2021-01-05
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG14–19 Beta 3 off off

机制详解

显示当前是否处于 hot standby 状态。它是只读状态,不能通过 SET 或修改配置文件来改变。

它会随恢复进入或退出 hot standby 而变化,供 SQL 代码进行能力探测。

联动解读应同时查看 hot_standby、max_standby_streaming_delay、hot_standby_feedback。应用与运维工具可读取 in_hot_standby 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 in_hot_standby 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 in_hot_standby 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG14–19 Beta 3 未修改;OLAP: PG14–19 Beta 3 未修改;CRIT: PG14–19 Beta 3 未修改;TINY: PG14–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 in_hot_standby。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

hot_standby · max_standby_streaming_delay · hot_standby_feedback · primary_conninfo · block_size · data_checksums

参考资料

9 - integer_datetimes

integer_datetimes:显示日期时间是否采用整数表示。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 on,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示日期时间是否采用整数表示。

身份

类型 , bool
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , on
on

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 on on

机制详解

显示日期时间是否采用整数表示。它是只读状态,不能通过 SET 或修改配置文件来改变。

它报告服务器的日期时间表示。全部实测 PG9.0–19 Beta 3 构建都使用整数日期时间,应用应把它视作兼容元数据。

联动解读应同时查看 server_version、server_version_num、server_encoding。应用与运维工具可读取 integer_datetimes 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 integer_datetimes 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 integer_datetimes 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 integer_datetimes。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

server_version · server_version_num · server_encoding · ssl_library · debug_assertions · block_size

参考资料

10 - lc_collate

lc_collate:显示排序规则所使用的区域设置。实测在档范围为 PG9.0–15;最后在档的 PG15 启动默认值为 C,context 为 internal。它在 PG16 被移除。
说明

Fact — 官方简述译文:显示排序规则所使用的区域设置。

身份

类型 , string
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , C
C

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–15
移除版本 PG16
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–15 C C

机制详解

在 PG15 及更早版本通过只读值报告当前数据库的排序 locale。它是 internal 状态而非可配置 GUC,PostgreSQL 16 将其从 pg_settings 移除。

排序 locale 在建库时选定,同一集群不同数据库可以不同。它影响排序与比较语义;修改服务器配置不能重写既有索引或数据库 locale 元数据。

PG16 及以后,监控与应用应读取 pg_database 中当前数据库及对应 locale provider 元数据,并通过 pg_collation 查看具体 collation 对象。collation 版本变化应独立验证,不能依赖已移除 reporter。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 SHOW/current_setting 读取改为版本感知的 pg_database 查询;跨 locale provider 或版本迁移时回归测试索引排序与唯一性。
OLAP 在分析导出旁记录每个数据库的 provider 与 locale。改变排序规则需要有计划的数据库/对象迁移,并可能需要 REINDEX,而不是改 GUC。
小规格 只有明确接受时才使用建库默认 locale。应在清单与备份中保留 locale 元数据,避免重建时悄然采用不同排序规则。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG15 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–15 未修改;OLAP: PG9.0–15 未修改;CRIT: PG9.0–15 未修改;TINY: PG9.0–15 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试在配置中删除或设置 lc_collate,尽管它一直是 internal/只读值。
  • 误以为一个集群级值适用于所有数据库。
  • 操作系统或 ICU locale 数据变化后,未检查 collation 版本并重建受影响索引。
  • 只凭 locale 名称就比较不同 provider 的文本行为。

lc_ctype · server_encoding · client_encoding · icu_validation_level · default_text_search_config · server_version_num

参考资料

11 - lc_ctype

lc_ctype:显示字符分类与大小写转换所使用的区域设置。实测在档范围为 PG9.0–15;最后在档的 PG15 启动默认值为 C,context 为 internal。它在 PG16 被移除。
说明

Fact — 官方简述译文:显示字符分类与大小写转换所使用的区域设置。

身份

类型 , string
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , C
C

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–15
移除版本 PG16
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–15 C C

机制详解

在 PG15 及更早版本报告当前数据库的字符分类与大小写转换 locale。它是 internal/只读值,PostgreSQL 16 将其从 pg_settings 移除。

该 locale 在建库时固定,并可因数据库而异。它影响 locale 感知的字符分类与大小写转换,但不是会话开关,也不能通过 ALTER SYSTEM 修改。

PG16 及以后,应把 SHOW/current_setting 消费者迁移到 pg_database 的 locale provider 元数据,并通过 pg_collation 检查对象级行为;应用测试应覆盖大小写转换及模式/字符类假设。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把读取迁移到 pg_database,并在 locale/provider 升级前测试大小写折叠、upper/lower 行为与表达式索引。
OLAP 若 ETL 分类或规范化依赖该属性,应随输出记录 locale 元数据。改变 locale 需要有计划迁移,而不是运行时设置。
小规格 在建库与重建自动化中显式指定 locale;不要假定主机默认值在镜像或操作系统升级后保持稳定。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG15 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–15 未修改;OLAP: PG9.0–15 未修改;CRIT: PG9.0–15 未修改;TINY: PG9.0–15 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试配置一个一直是 internal/只读的值。
  • 误以为不同数据库或 locale provider 的字符分类完全相同。
  • locale 库变化后未测试表达式索引与大小写转换结果。
  • 只迁移监控文案,却让应用继续依赖 SHOW lc_ctype。

lc_collate · server_encoding · client_encoding · icu_validation_level · default_text_search_config · server_version_num

参考资料

12 - max_function_args

max_function_args:显示函数参数数量上限。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 100,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示函数参数数量上限。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 100100
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 100
100

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 100 100

机制详解

显示函数参数数量上限。它是只读状态,不能通过 SET 或修改配置文件来改变。

它暴露 FUNC_MAX_ARGS 构建常量;修改需要兼容的自定义构建,而不是改配置。

联动解读应同时查看 max_identifier_length、max_index_keys、block_size。应用与运维工具可读取 max_function_args 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 max_function_args 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 max_function_args 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 max_function_args。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

max_identifier_length · max_index_keys · block_size · server_version_num · data_checksums · data_directory_mode

参考资料

13 - max_identifier_length

max_identifier_length:显示标识符长度上限。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 63,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示标识符长度上限。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 6363
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 63
63

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 63 63

机制详解

显示标识符长度上限。它是只读状态,不能通过 SET 或修改配置文件来改变。

它暴露 NAMEDATALEN 减一的结果;创建对象时,超过长度的标识符会被截断。

联动解读应同时查看 max_function_args、max_index_keys、block_size。应用与运维工具可读取 max_identifier_length 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 max_identifier_length 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 max_identifier_length 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 max_identifier_length。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

max_function_args · max_index_keys · block_size · server_version_num · data_checksums · data_directory_mode

参考资料

14 - max_index_keys

max_index_keys:显示索引键数量上限。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 32,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示索引键数量上限。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 3232
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 32
32

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 32 32

机制详解

显示索引键数量上限。它是只读状态,不能通过 SET 或修改配置文件来改变。

它暴露 INDEX_MAX_KEYS 构建上限,约束索引属性数量(适用时也包括 INCLUDE 列)。

联动解读应同时查看 max_function_args、max_identifier_length、block_size。应用与运维工具可读取 max_index_keys 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 max_index_keys 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 max_index_keys 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 max_index_keys。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

max_function_args · max_identifier_length · block_size · server_version_num · data_checksums · data_directory_mode

参考资料

15 - num_os_semaphores

num_os_semaphores:显示服务器所需的操作系统信号量数量。实测在档范围为 PG18–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 0,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示服务器所需的操作系统信号量数量。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 02147483647
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 0
0

生命周期

Fact
首次观测 PG18
在档版本 PG18–19 Beta 3
移除版本
引入提交 0dcaea569034 — Introduce num_os_semaphores GUC.
提交日期 2024-07-26
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG18–19 Beta 3 0 0

机制详解

显示服务器所需的操作系统信号量数量。它是只读状态,不能通过 SET 或修改配置文件来改变。

它根据启动时的进程与连接配置计算,供管理员规划 System V 信号量容量。

联动解读应同时查看 shared_memory_size、shared_memory_size_in_huge_pages、huge_pages。应用与运维工具可读取 num_os_semaphores 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 num_os_semaphores 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 num_os_semaphores 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG18–19 Beta 3 未修改;OLAP: PG18–19 Beta 3 未修改;CRIT: PG18–19 Beta 3 未修改;TINY: PG18–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 num_os_semaphores。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

shared_memory_size · shared_memory_size_in_huge_pages · huge_pages · huge_pages_status · max_connections · block_size

参考资料

16 - segment_size

segment_size:显示每个磁盘文件所含的页数。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 1 GiB (131072 × 8kB),context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示每个磁盘文件所含的页数。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 , 8kB
原始单位
范围 , 131072131072
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 131072
1 GiB (131072 × 8kB)

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 131072 8kB 1 GiB (131072 × 8kB)

机制详解

显示每个磁盘文件所含的页数。它是只读状态,不能通过 SET 或修改配置文件来改变。

它报告每个关系段文件包含的数据库页数;与 block_size 一起决定文件分段边界。

联动解读应同时查看 block_size、wal_block_size、wal_segment_size。应用与运维工具可读取 segment_size 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 segment_size 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 segment_size 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 segment_size。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

block_size · wal_block_size · wal_segment_size · data_checksums · server_version_num · data_directory_mode

参考资料

17 - server_encoding

server_encoding:显示服务器(数据库)字符集编码。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 SQL_ASCII,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示服务器(数据库)字符集编码。

身份

类型 , string
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , SQL_ASCII
SQL_ASCII

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 SQL_ASCII SQL_ASCII

机制详解

显示服务器(数据库)字符集编码。它是只读状态,不能通过 SET 或修改配置文件来改变。

它报告当前数据库编码;编码在建库时选定,同一集群的不同数据库可以不同。

联动解读应同时查看 lc_collate、lc_ctype、client_encoding。应用与运维工具可读取 server_encoding 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 server_encoding 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 server_encoding 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 server_encoding。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

lc_collate · lc_ctype · client_encoding · default_text_search_config · icu_validation_level · server_version

参考资料

18 - server_version

server_version:显示服务器版本。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 19beta3 (Debian 19~beta3-1.pgdg13+1),context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示服务器版本。

身份

类型 , string
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 19beta3 (Debian 19~beta3-1.pgdg13+1)
19beta3 (Debian 19~beta3-1.pgdg13+1)

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0 9.0.23 9.0.23
PG9.1 9.1.24 9.1.24
PG9.2 9.2.23 9.2.23
PG9.3 9.3.25 9.3.25
PG9.4 9.4.26 9.4.26
PG9.5 9.5.25 9.5.25
PG9.6 9.6.24 9.6.24
PG10 10.23 (Debian 10.23-1.pgdg110+1) 10.23 (Debian 10.23-1.pgdg110+1)
PG11 11.22 (Debian 11.22-1.pgdg120+1) 11.22 (Debian 11.22-1.pgdg120+1)
PG12 12.22 (Debian 12.22-1.pgdg120+1) 12.22 (Debian 12.22-1.pgdg120+1)
PG13 13.23 (Debian 13.23-1.pgdg13+1) 13.23 (Debian 13.23-1.pgdg13+1)
PG14 14.24 (Debian 14.24-1.pgdg13+2) 14.24 (Debian 14.24-1.pgdg13+2)
PG15 15.19 (Debian 15.19-1.pgdg13+2) 15.19 (Debian 15.19-1.pgdg13+2)
PG16 16.15 (Debian 16.15-1.pgdg13+2) 16.15 (Debian 16.15-1.pgdg13+2)
PG17 17.11 (Debian 17.11-1.pgdg13+2) 17.11 (Debian 17.11-1.pgdg13+2)
PG18 18.6 (Debian 18.6-1.pgdg13+2) 18.6 (Debian 18.6-1.pgdg13+2)
PG19 Beta 3 19beta3 (Debian 19~beta3-1.pgdg13+1) 19beta3 (Debian 19~beta3-1.pgdg13+1)

机制详解

显示服务器版本。它是只读状态,不能通过 SET 或修改配置文件来改变。

它是人类可读的服务器构建/版本字符串,可能包含发行商文字,不适合做数值排序。

联动解读应同时查看 server_version_num、server_encoding、ssl_library。应用与运维工具可读取 server_version 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 server_version 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 server_version 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 server_version。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

server_version_num · server_encoding · ssl_library · integer_datetimes · debug_assertions · block_size

参考资料

19 - server_version_num

server_version_num:以整数形式显示服务器版本。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 190000,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:以整数形式显示服务器版本。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 190000190000
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 190000
190000

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0 90023 90023
PG9.1 90124 90124
PG9.2 90223 90223
PG9.3 90325 90325
PG9.4 90426 90426
PG9.5 90525 90525
PG9.6 90624 90624
PG10 100023 100023
PG11 110022 110022
PG12 120022 120022
PG13 130023 130023
PG14 140024 140024
PG15 150019 150019
PG16 160015 160015
PG17 170011 170011
PG18 180006 180006
PG19 Beta 3 190000 190000

机制详解

以整数报告当前服务器二进制版本。它是 internal/只读值,由二进制决定,与 initdb 或建库无关。

在本项目实测的 PG9.0–19 Beta 3 中,该整数编码大版本与小版本更新,软件可据此做数值比较,无需解析 server_version 的发行商文字。

只有无法直接探测服务端能力时才用它做兼容 gating。扩展与客户端仍需考虑不改变上游版本号的发行商 backport。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。升级后记录每个服务器的值,并在部署检查中做数值比较;改变它意味着运行不同 PostgreSQL 二进制。
OLAP 启用版本专属 SQL 或优化器功能前,核对协调节点、worker、副本与扩展构建对应的真实服务器版本。
小规格 可用该值做简单兼容检查,但优先直接探测所需能力;不要尝试通过配置或 initdb 修改。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 把整数当字符串比较。
  • 尝试通过配置或重建数据库修改。
  • 误以为该数值包含发行商 backport 与下游补丁信息。
  • 用客户端库版本替代所连接服务器版本。

server_version · server_encoding · integer_datetimes · ssl_library · max_identifier_length · block_size

参考资料

20 - shared_memory_size

shared_memory_size:显示服务器主共享内存区的大小(向上取整到 MB)。它是 PG15–18 的只读元数据,不是运行时调优旋钮。
说明

Fact — 官方简述译文:显示服务器主共享内存区的大小(向上取整到 MB)。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 , MB
原始单位
范围 , 02147483647
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 0
0 B

生命周期

Fact
首次观测 PG15
在档版本 PG15–19 Beta 3
移除版本
引入提交 bd1788051b02 — Introduce GUC shared_memory_size
提交日期 2021-09-08
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG15–19 Beta 3 0 MB 0 B

机制详解

显示服务器主共享内存区的大小(向上取整到 MB)。它是只读状态,不能通过 SET 或修改配置文件来改变。

它报告 PostgreSQL 完成启动尺寸计算后、按 MB 向上取整的主共享内存段大小。

联动解读应同时查看 shared_memory_size_in_huge_pages、huge_pages、huge_pages_status。应用与运维工具可读取 shared_memory_size 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 shared_memory_size 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 shared_memory_size 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG15–19 Beta 3 未修改;OLAP: PG15–19 Beta 3 未修改;CRIT: PG15–19 Beta 3 未修改;TINY: PG15–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 shared_memory_size。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

shared_memory_size_in_huge_pages · huge_pages · huge_pages_status · num_os_semaphores · max_connections · block_size

参考资料

21 - shared_memory_size_in_huge_pages

shared_memory_size_in_huge_pages:显示主共享内存区所需的大页数量。它是 PG15–18 的只读元数据,不是运行时调优旋钮。
说明

Fact — 官方简述译文:显示主共享内存区所需的大页数量。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , -12147483647
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , -1
-1

生命周期

Fact
首次观测 PG15
在档版本 PG15–19 Beta 3
移除版本
引入提交 43c1c4f65eab — Introduce GUC shared_memory_size_in_huge_pages
提交日期 2021-09-21
Discussion 讨论 1

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG15–19 Beta 3 -1 -1

机制详解

显示主共享内存区所需的大页数量。它是只读状态,不能通过 SET 或修改配置文件来改变。

它估算主共享内存段所需的大页数量;平台无法给出估算时返回 -1。

联动解读应同时查看 shared_memory_size、huge_pages、huge_pages_status。应用与运维工具可读取 shared_memory_size_in_huge_pages 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 shared_memory_size_in_huge_pages 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 shared_memory_size_in_huge_pages 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG15–19 Beta 3 未修改;OLAP: PG15–19 Beta 3 未修改;CRIT: PG15–19 Beta 3 未修改;TINY: PG15–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 shared_memory_size_in_huge_pages。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

shared_memory_size · huge_pages · huge_pages_status · num_os_semaphores · max_connections · block_size

参考资料

22 - ssl_library

ssl_library:显示 SSL 库的名称。它是 PG12–18 的只读元数据,不是运行时调优旋钮。
说明

Fact — 官方简述译文:显示 SSL 库的名称。

身份

类型 , string
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 ,
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , OpenSSL
OpenSSL

生命周期

Fact
首次观测 PG12
在档版本 PG12–19 Beta 3
移除版本
引入提交 98efa76fe313 — Add ssl_library preset parameter
提交日期 2018-06-26
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG12–19 Beta 3 OpenSSL OpenSSL

机制详解

显示 SSL 库的名称。它是只读状态,不能通过 SET 或修改配置文件来改变。

它报告服务器链接的 SSL 实现,可用于诊断 TLS provider 特有行为。

联动解读应同时查看 server_version、server_version_num、server_encoding。应用与运维工具可读取 ssl_library 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 ssl_library 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 ssl_library 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG12–19 Beta 3 未修改;OLAP: PG12–19 Beta 3 未修改;CRIT: PG12–19 Beta 3 未修改;TINY: PG12–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 ssl_library。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

server_version · server_version_num · server_encoding · integer_datetimes · debug_assertions · block_size

参考资料

23 - wal_block_size

wal_block_size:显示预写日志块大小。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 8192,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示预写日志块大小。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 ,
原始单位
范围 , 81928192
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 8192
8192

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–19 Beta 3 8192 8192

机制详解

显示预写日志块大小。它是只读状态,不能通过 SET 或修改配置文件来改变。

它反映构建时选定的 XLOG_BLCKSZ(通常为 8 KiB),用于 WAL I/O 缓冲。

联动解读应同时查看 block_size、wal_segment_size、segment_size。应用与运维工具可读取 wal_block_size 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 wal_block_size 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 wal_block_size 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 wal_block_size。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

block_size · wal_segment_size · segment_size · data_checksums · server_version_num · data_directory_mode

参考资料

24 - wal_segment_size

wal_segment_size:显示预写日志段文件大小。实测在档范围为 PG9.0–19 Beta 3;最后在档的 PG19 Beta 3 启动默认值为 16 MiB,context 为 internal。这是测试版快照事实,PostgreSQL 19 正式发布前仍可能变化。
说明

Fact — 官方简述译文:显示预写日志段文件大小。

身份

类型 , integer
上游 pg_settings 类型
Context , internal
内部或预设值,用户不可修改
单位 , B
原始单位
范围 , 10485761073741824
最后在档版本的原始上下限
枚举值 ,
非枚举类型记为 —
分类 , Preset Options
上游分类
最后 boot 值 , 16777216
16 MiB

生命周期

Fact
首次观测 PG9.0(研究下界)
在档版本 PG9.0–19 Beta 3
移除版本
引入提交 不作断言:早于 PG9.0 研究边界
提交日期
Discussion

默认值变迁

PG9.0–19 Beta 3 实测 boot 默认值
版本 原始 boot_val 单位 人类可读值
PG9.0–10 2048 8kB 16 MiB (2048 × 8kB)
PG11–19 Beta 3 16777216 B 16 MiB

机制详解

显示预写日志段文件大小。它是只读状态,不能通过 SET 或修改配置文件来改变。

它报告 WAL 段大小。PostgreSQL 11 及以后在 initdb 时选择该值;更早集群通常使用构建时数值。

联动解读应同时查看 min_wal_size、max_wal_size、wal_keep_size。应用与运维工具可读取 wal_segment_size 做能力或环境判断,但不能依靠 SET 改变它;跨集群比较时还要考虑构建、initdb 与当前数据库差异。

调优建议

提示

Advice。 以下建议是工作负载起点,必须用真实测量验证。

场景 建议
OLTP 不可调。把 wal_segment_size 当作部署与能力事实记录;若与预期不符,应修正二进制、initdb 或数据库创建流程,而不是 SET。
OLAP 不可调。用 wal_segment_size 校验分析节点的格式、构建或资源假设,并确保所有读写节点兼容。
小规格 不可调。只需在清单与故障报告中保留该值;不要为改变它而做不必要的自定义构建或重建。

Pigsty 取值

以下值来自固定 8 核、32 GiB、100 GiB SSD 夹具,并按 PG19 Beta 3 渲染当前 Pigsty 模板;这不表示 Pigsty 当前支持该历史或测试版本。

模板 有效值 与上游 boot 比较 源表达式
OLTP 未修改
OLAP 未修改
CRIT 未修改
TINY 未修改
注意

Advice — 待人工复核。 当前 Pigsty 模板投影事实:OLTP: PG9.0–19 Beta 3 未修改;OLAP: PG9.0–19 Beta 3 未修改;CRIT: PG9.0–19 Beta 3 未修改;TINY: PG9.0–19 Beta 3 未修改。 未发现覆盖值,因此不推断 Pigsty 专属理由。

常见坑

  • 尝试用 SET 或配置文件改变只读的 wal_segment_size。
  • 假定所有集群、数据库或发行包的报告值相同。
  • 在文件格式或功能兼容性检查中忽略该值。
  • 把显示值当作性能目标,而不是环境事实。

min_wal_size · max_wal_size · wal_keep_size · checkpoint_timeout · checkpoint_completion_target · wal_keep_segments

参考资料