跳转到主要内容

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

返回本页常规视图.

预设选项

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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值8192 – 8192
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值0 – 511
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值100 – 100
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值63 – 63
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值32 – 32
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值0 – 2147483647
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
原始单位
范围 , 值131072 – 131072
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值190000 – 190000
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
原始单位
范围 , 值0 – 2147483647
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值-1 – 2147483647
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
内部或预设值,用户不可修改
单位 , 值—
原始单位
范围 , 值8192 – 8192
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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
原始单位
范围 , 值1048576 – 1073741824
最后在档版本的原始上下限
枚举值 , 值—
非枚举类型记为 —
分类 , 值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

参考资料