19.15. 预置选项 #
下列“参数”是只读的,因此未列入示例 postgresql.conf 文件。这些选项报告 PostgreSQL 行为的各个方面,某些应用(特别是管理前端)可能对此感兴趣。其中大多数参数在编译或安装 PostgreSQL 时确定。
block_size(integer) #报告一个磁盘块的大小。它由编译服务器时
BLCKSZ的值确定。默认值是 8192 字节。有些配置变量的含义(例如 shared_buffers)会被block_size影响。详见第 19.4 节。data_checksums(bool) #报告这个集簇的数据校验和状态。详见第 28.2 节。
data_directory_mode(integer) #在 Unix 系统上,这个参数报告服务器启动时数据目录(由 data_directory 定义)的权限。(在 Microsoft Windows 上这个参数将总是显示
0700。)更多信息请参考 initdb 的-g选项。debug_assertions(boolean) #报告 PostgreSQL 是否在构建时启用了断言。如果在构建 PostgreSQL 时定义了宏
USE_ASSERT_CHECKING(例如通过configure选项--enable-cassert),则会报告已启用。默认情况下,PostgreSQL 是在未启用断言的情况下构建的。debug_exec_backend(boolean) #报告 PostgreSQL 是否在构建时启用了
EXEC_BACKEND。在 Windows 上,或者在构建 PostgreSQL 时定义了宏EXEC_BACKEND,就属于这种情况。effective_wal_level(enum) #报告当前系统中实际生效的 WAL 记录级别。此参数与 wal_level 共享同一组取值,但反映的是运行中的 WAL 级别,而非配置值。各可能取值的说明请参见
wal_level参数文档。实际生效的 WAL 级别在某些情况下可能与配置的
wal_level不同。例如,当wal_level设置为replica且系统中有一个或多个逻辑复制槽时,effective_wal_level会显示为logical,表示系统正在以等同于logical级别的方式维护 WAL 记录。在备库服务器上,
effective_wal_level与复制链中最上游服务器的effective_wal_level值一致。huge_pages_status(enum) #报告当前实例中大页的状态:
on、off或unknown(当通过postgres -C查看时)。这个参数有助于确定在huge_pages=try时分配大页是否成功。更多信息参见 huge_pages。integer_datetimes(boolean) #报告 PostgreSQL 是否在编译时启用了对 64 位整数日期和时间的支持。从 PostgreSQL 10 起,这个值总是
on。in_hot_standby(boolean) #报告服务器当前是否处于热备模式。当此值为
on时,所有事务都被强制为只读。在会话中,此值只有在服务器被提升为主库时才会改变。更多信息参见第 26.4 节。max_function_args(integer) #报告函数参数的最大数量。它由编译服务器时的
FUNC_MAX_ARGS值决定。默认值是 100 个参数。max_identifier_length(integer) #报告标识符的最大长度。它由编译服务器时的
NAMEDATALEN值减一决定。NAMEDATALEN的默认值是 64;因此max_identifier_length的默认值是 63 字节,在使用多字节编码时,这可能不足 63 个字符。max_index_keys(integer) #报告索引键的最大数目。它由编译服务器时的
INDEX_MAX_KEYS值决定。默认值是 32 个键。num_os_semaphores(integer) #根据配置的最大连接数(max_connections)、允许的自动清理工作进程数(autovacuum_max_workers)、允许的 WAL 发送进程数(max_wal_senders)、允许的后台进程数(max_worker_processes)等,报告服务器所需的信号量数量。
segment_size(integer) #报告一个文件段中可以存储的块(页)的数量。由编译服务器时的
RELSEG_SIZE值决定。一个段文件的最大尺寸(以字节计)等于segment_size乘以block_size,默认是 1GB。server_encoding(string) #报告数据库的编码(字符集)。这是在数据库被创建时决定的。通常,客户端只需要关心 client_encoding 的值。
server_version(string) #报告服务器的版本号。它是由编译服务器时的
PG_VERSION值决定的。server_version_num(integer) #以整数形式报告服务器的版本号。它是由编译服务器时的
PG_VERSION_NUM值决定的。shared_memory_size(integer) #报告主共享内存区域的大小,向上取整到整数兆字节。
-
shared_memory_size_in_huge_pages(integer) # 报告基于指定的 huge_page_size 所需的主共享内存区域的大页数。如果不支持大页,这将是
-1。这个设置仅在 Linux 上受支持。在其他平台上,它始终设置为
-1。有关在 Linux 上使用大页的更多详细信息,请参见第 18.4.5 节。ssl_library(string) #报告此 PostgreSQL 服务器在构建时使用的 SSL 库的名称(即使此实例当前未配置或使用 SSL),例如
OpenSSL,如果没有使用 SSL 库,则报告空字符串。wal_block_size(integer) #报告一个 WAL 磁盘块的尺寸。由编译服务器时的
XLOG_BLCKSZ值决定。默认是 8192 字节。wal_segment_size(integer) #报告 WAL 段文件的大小。默认是 16MB。详见第 28.5 节。