这是本节的多页打印视图。 .
预设选项
- 1: block_size
- 2: data_checksums
- 3: data_directory_mode
- 4: debug_assertions
- 5: debug_exec_backend
- 6: effective_wal_level
- 7: huge_pages_status
- 8: in_hot_standby
- 9: integer_datetimes
- 10: lc_collate
- 11: lc_ctype
- 12: max_function_args
- 13: max_identifier_length
- 14: max_index_keys
- 15: num_os_semaphores
- 16: segment_size
- 17: server_encoding
- 18: server_version
- 19: server_version_num
- 20: shared_memory_size
- 21: shared_memory_size_in_huge_pages
- 22: ssl_library
- 23: wal_block_size
- 24: wal_segment_size
条目 URL 保持扁平;本分类仅用于侧栏与浏览组织。
1 - block_size
Fact — 官方简述译文:显示磁盘页块大小。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 8192
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示该集群是否启用了数据校验和。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 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 | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示数据目录的权限模式。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 448
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG11 |
| 在档版本 | PG11–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | c37b3d08ca68 — Allow group access on PGDATA |
| 提交日期 | 2018-04-07 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示运行中的服务器是否启用了断言检查。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- off
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示运行中的服务器是否启用了 EXEC_BACKEND 构建选项。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- off
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG19 Beta 3 |
| 在档版本 | PG19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | b3fe098d330f — Add GUC to show EXEC_BACKEND state |
| 提交日期 | 2025-11-26 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示系统当前实际生效的 WAL 级别。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- replica
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG19 Beta 3 |
| 在档版本 | PG19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 67c20979ce72 — Toggle logical decoding dynamically based on logical slot presence. |
| 提交日期 | 2025-12-23 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示大页的使用状态。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- unknown
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG17 |
| 在档版本 | PG17–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | a14354cac0e3 — Add GUC parameter “huge_pages_status” |
| 提交日期 | 2023-07-06 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示当前是否处于 hot standby 状态。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- off
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG14 |
| 在档版本 | PG14–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | bf8a662c9afa — Introduce a new GUC_REPORT setting “in_hot_standby”. |
| 提交日期 | 2021-01-05 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示日期时间是否采用整数表示。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- on
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示排序规则所使用的区域设置。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- C
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–15 |
| 移除版本 | PG16 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示字符分类与大小写转换所使用的区域设置。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- C
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–15 |
| 移除版本 | PG16 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示函数参数数量上限。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 100
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示标识符长度上限。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 63
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示索引键数量上限。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 32
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示服务器所需的操作系统信号量数量。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 0
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG18 |
| 在档版本 | PG18–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 0dcaea569034 — Introduce num_os_semaphores GUC. |
| 提交日期 | 2024-07-26 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示每个磁盘文件所含的页数。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 1 GiB (131072 × 8kB)
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示服务器(数据库)字符集编码。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- SQL_ASCII
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示服务器版本。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 19beta3 (Debian 19~beta3-1.pgdg13+1)
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:以整数形式显示服务器版本。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 190000
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示服务器主共享内存区的大小(向上取整到 MB)。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 0 B
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG15 |
| 在档版本 | PG15–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | bd1788051b02 — Introduce GUC shared_memory_size |
| 提交日期 | 2021-09-08 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示主共享内存区所需的大页数量。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- -1
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG15 |
| 在档版本 | PG15–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 43c1c4f65eab — Introduce GUC shared_memory_size_in_huge_pages |
| 提交日期 | 2021-09-21 |
| Discussion | 讨论 1 |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示 SSL 库的名称。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- OpenSSL
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG12 |
| 在档版本 | PG12–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 98efa76fe313 — Add ssl_library preset parameter |
| 提交日期 | 2018-06-26 |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示预写日志块大小。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 8192
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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
Fact — 官方简述译文:显示预写日志段文件大小。
身份
类型,- 上游 pg_settings 类型
Context,- 内部或预设值,用户不可修改
单位,- 原始单位
范围,- 最后在档版本的原始上下限
枚举值,- 非枚举类型记为 —
分类,- 上游分类
最后 boot 值,- 16 MiB
生命周期
| Fact | 值 |
|---|---|
| 首次观测 | PG9.0(研究下界) |
| 在档版本 | PG9.0–19 Beta 3 |
| 移除版本 | 否 |
| 引入提交 | 不作断言:早于 PG9.0 研究边界 |
| 提交日期 | — |
| Discussion | — |
默认值变迁
| 版本 | 原始 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