Azure Database for PostgreSQL 灵活服务器中的服务器参数

适用于: Azure 数据库用于 PostgreSQL 灵活服务器

Azure Database for PostgreSQL 为每个服务器都提供了一组可配置的参数。

这些参数可以对应于:

  • 数据库引擎:PostgreSQL 数据库引擎或实现扩展功能的二进制库定义的参数。 数据库引擎内置参数的一些示例包括 autovacuum_max_workersDateStyleclient_min_messagespassword_encryptionmax_connectionsgeqofrom_collapse_limitcpu_tuple_costcpu_tuple_costmax_standby_streaming_delaylog_connectionslog_min_duration_statementmax_parallel_workersbgwriter_delayshared_buffers。 扩展定义的一些参数示例包括 pg_qs.max_query_text_length(pg_qs 扩展、实现查询存储的功能)、pg_stat_statements.maxpg_stat_statements 扩展)、pgaudit.log_catalogpgaudit 扩展)和 cron.database_namecron 扩展)。
  • 非数据库引擎:控制某些内置功能的参数,这是 Azure Database for PostgreSQL 灵活服务器服务的核心,但不属于数据库引擎或其任何扩展。 这些参数的示例为 metrics.collector_database_activity(控制服务是否应收集被视为增强指标且默认未收集的指标列表)、pgbouncer.enabled(允许用户激活内置于服务的 PgBouncer 实例)、index_tuning.analysis_interval(设置应唤醒自动索引优化以生成建议的频率)

自定义参数

数据库引擎参数和非数据库引擎参数都可以在服务器级别配置。 有关详细信息,请参阅设置一个或多个服务器参数的值

注释

Azure Database for PostgreSQL 是托管数据库服务,因此用户没有主机或操作系统访问权限,无法查看或修改配置文件(例如 postgresql.conf)。 这些文件的内容会根据所做的参数更改自动更新。

数据库引擎参数也可以在更精细的范围内配置。 这些调整将覆盖全局设置的值。 它们的范围和持续时间取决于你创建它们的级别:

  • 数据库级别:使用 ALTER DATABASE 命令进行特定于数据库的配置。

  • 角色或用户级别:使用 命令进行以用户为中心的设置。ALTER USER

  • 函数、过程级别:定义函数或过程时,可以指定或更改在调用函数时使用的配置参数。

  • 表级别:例如,可在此级别修改与自动真空相关的参数。

  • 会话级别:在单个数据库会话的生命周期内,可以调整特定参数。 PostgreSQL 通过以下 SQL 命令促进这种调整:

    • 使用 SET 命令进行特定于会话的调整。 这些更改将作为当前会话期间的默认设置。 要访问这些更改,可能需要特定的 SET 权限,并且上述可修改参数和只读参数的限制不适用。 相应的 SQL 函数为 set_config(setting_name, new_value, is_local)
    • 使用 SHOW 命令检查现有参数设置。 其 SQL 函数等效项为 current_setting(setting_name text)

使用时区参数

如果你打算在 PostgreSQL 中使用日期和时间数据,请确保为你的位置设置正确的时区。 所有需要显示时区的日期和时间均以 UTC 形式存储在 PostgreSQL 内部。 它们会被转换为由 TimeZone 服务器参数指定的时区中的当地时间,然后再显示给客户端。 可以在“服务器参数”页上编辑此参数。 PostgreSQL 允许以三种不同的形式指定时区:

  • 完整的时区名称,例如 America/New_York。 pg_timezone_names 视图中列出了已识别的时区名称。
    在 psql 中查询此视图并获取时区名称列表的示例:

    select name FROM pg_timezone_names LIMIT 20;

    应看到如下所示的结果集:

              name
          -----------------------
          GMT0
          Iceland
          Factory
          NZ-CHAT
          America/Panama
          America/Fort_Nelson
          America/Pangnirtung
          America/Belem
          America/Coral_Harbour
          America/Guayaquil
          America/Marigot
          America/Barbados
          America/Porto_Velho
          America/Bogota
          America/Menominee
          America/Martinique
          America/Asuncion
          America/Toronto
          America/Tortola
          America/Managua
          (20 rows)
      
  • 时区的缩写,例如 PST。 此类规范仅定义相对于 UTC 的特定偏移量,而完全时区名称则意味着一组夏令时转换日期规则。 pg_timezone_abbrevs 视图中列出了已识别的缩写 在 psql 中查询此视图并获取时区缩写列表的示例:

     select abbrev from pg_timezone_abbrevs limit 20;

    应看到如下所示的结果集:

          abbrev|
          ------+
          ACDT  |
          ACSST |
          ACST  |
          ACT   |
          ACWST |
          ADT   |
          AEDT  |
          AESST |
          AEST  |
          AFT   |
          AKDT  |
          AKST  |
          ALMST |
          ALMT  |
          AMST  |
          AMT   |
          ANAST |
          ANAT  |
          ARST  |
          ART   |
      
  • 除了时区名称和缩写之外,PostgreSQL 还接受 POSIX 风格的时区规范,其形式为 STDoffset 或 STDoffsetDST。 STD 是区域缩写。 Offset 是数字偏移量,以晚于 UTC 时间的小时数表示。 DST 是可选的夏令时区缩写,被认为比给定的偏移量提前一小时。

支持的服务器参数

自动真空

名称 版本 说明
autovacuum 111213141516 启动 autovacuum 子进程。
autovacuum_analyze_scale_factor 111213141516 在分析之前,元组插入、更新或删除的数目占据 reltuples 的比例。
autovacuum_analyze_threshold 111213141516 分析之前,元组插入、更新或删除的最小数目。
autovacuum_freeze_max_age 111213141516 自动清理表格以防止事务 ID 回绕的年龄阈值。
autovacuum_max_workers 111213141516 设置同时运行的 autovacuum 辅助角色数量上限。
autovacuum_multixact_freeze_max_age 111213141516 用于自动设置表的多重处理期限,以防止多倍换行。
autovacuum_naptime 111213141516 运行 autovacuum 之间的睡眠时间。
autovacuum_vacuum_cost_delay 111213141516 对于 autovacuum,真空成本延迟(以毫秒为单位)。
autovacuum_vacuum_cost_limit 111213141516 在打盹之前可用的真空成本量,用于 autovacuum。
autovacuum_vacuum_insert_scale_factor 13141516 在执行真空操作之前插入到元组的数量占 reltuples 的比例。
autovacuum_vacuum_insert_threshold 13141516 清空之前的最小元组插入数,或 -1 禁用插入真空。
autovacuum_vacuum_scale_factor 111213141516 清空之前的元组更新或删除数,作为重新筛选的一小部分。
autovacuum_vacuum_threshold 111213141516 清空前的最小元组更新或删除数。

客户端连接默认值/区域设置和格式设置

名称 版本 说明
client_encoding 111213141516 设置客户端的字符集编码。
DateStyle 111213141516 设置日期和时间值的显示格式。 还控制对不明确日期输入的解释。
default_text_search_config 111213141516 设置默认文本搜索配置。
extra_float_digits 111213141516 设置要为浮点值显示的位数。 这会影响实际、双精度和几何数据类型。 零或负数参数值将被添加到参数值的标准位数(在适当情况下为FLT_DIG或DBL_DIG)之中。 大于零的任何值都选择精确的输出模式。
icu_validation_level 16 报告无效 ICU 区域设置字符串的日志级别。
IntervalStyle 111213141516 设置间隔值的显示格式。
lc_messages 111213141516 设置消息的显示语言。
lc_monetary 111213141516 设置用于指定货币金额格式的区域设置。
lc_numeric 111213141516 设置用于指定数字格式的区域设置。
lc_time 111213141516 设置用于指定日期和时间值格式的区域设置。
TimeZone 111213141516 设置用于显示和解释时间戳的时区。
timezone_abbreviations 111213141516 选择一个包含时区缩写的文件。

客户端连接默认值/其他默认值

名称 版本 说明
dynamic_library_path 111213141516 设置可动态加载模块的路径。 如果需要打开动态加载模块,并且指定名称没有目录组件(即名称不包含斜杠),系统将搜索指定文件的路径。
gin_fuzzy_search_limit 111213141516 设置通过 GIN 进行的精确搜索的最大允许结果数。

客户端连接默认值/共享库预加载

名称 版本 说明
jit_provider 111213141516 要使用的 JIT 提供者。
local_preload_libraries 111213141516 列出要预加载到每个后端的无特权共享库。
session_preload_libraries 111213141516 列出要预加载到每个后端的共享库。
shared_preload_libraries 111213141516 列出要预加载到服务器的共享库。

客户端连接默认值/语句行为

名称 版本 说明
bytea_output 111213141516 设置 bytea 的输出格式。
check_function_bodies 111213141516 在 CREATE FUNCTION 和 CREATE PROCEDURE 期间检查例程正文。
client_min_messages 111213141516 设置发送到客户端的消息级别。 每个级别包括其后面的所有级别。 级别越晚,发送的消息越少。
createrole_self_grant 16 设置 CREATEROLE 用户是否自动向自己授予角色以及具有哪些选项。
default_table_access_method 1213141516 设置新表的默认表访问方法。
default_tablespace 111213141516 设置要在其中创建表和索引的默认表空间。 空字符串选择数据库的默认表空间。
default_toast_compression 141516 设置可压缩值的默认压缩方法。
default_transaction_deferrable 111213141516 设置新事务的默认可延迟状态。
default_transaction_isolation 111213141516 设置每个新事务的事务隔离级别。
default_transaction_read_only 111213141516 设置新事务的默认只读状态。
gin_pending_list_limit 111213141516 设置 GIN 索引的挂起列表的大小上限。
idle_in_transaction_session_timeout 111213141516 设置事务中查询之间允许的最大空闲时间。 值为 0 时,超时功能会关闭。
idle_session_timeout 141516 设置查询之间允许的最大空闲时间(不在事务中时)。 值为 0 时,超时功能会关闭。
lock_timeout 111213141516 设置等待锁定的最大允许持续时间。 值为 0 时,超时功能会关闭。
restrict_nonsystem_relation_kind 12,16 禁止访问指定类型的非系统关系。
row_security 111213141516 启用行安全性。 启用后,行安全性将应用于所有用户。
search_path 111213141516 设置非架构限定的名称的架构搜索顺序。
session_replication_role 111213141516 设置触发器和重写规则的会话行为。
statement_timeout 111213141516 设置任何语句允许的最大持续时间。 值为 0 时,超时功能会关闭。
temp_tablespaces 111213141516 设置一个或多个表空间,用于临时表和排序文件。
transaction_deferrable 111213141516 是否延迟只读可序列化事务,直到可以执行该事务,且不会发生可能的序列化失败。
transaction_isolation 111213141516 设置当前事务的隔离级别。
transaction_read_only 111213141516 设置当前事务的只读状态。
vacuum_cleanup_index_scale_factor 111213 索引清理之前的元组插入数(作为 reltuples 的一部分)。
vacuum_failsafe_age 141516 VACUUM 触发防故障以避免回绕中断应达到的期限。
vacuum_freeze_min_age 111213141516 VACUUM 应冻结表行的最低年龄要求。
vacuum_freeze_table_age 111213141516 VACUUM 扫描整个表以冻结元组应达到的期限。
vacuum_multixact_failsafe_age 141516 VACUUM 触发防故障以避免回绕中断应达到的 Multixact 期限。
vacuum_multixact_freeze_min_age 111213141516 在表行中,VACUUM 应冻结 MultiXactId 时的最低年龄。
vacuum_multixact_freeze_table_age 111213141516 当“Multixact”的年龄达到一定值时,表的整个内容应通过“VACUUM”进行扫描,以冻结元组。
xmlbinary 111213141516 设置如何在 XML 中对二进制值进行编码。
xmloption 111213141516 设置是要将隐式分析和序列化操作中的 XML 数据视为文档还是内容片段。

连接和认证/身份验证

名称 版本 说明
authentication_timeout 111213141516 设置完成客户端身份验证的最大允许时间。
db_user_namespace 111213141516 启用按数据库分配的用户名。
gss_accept_delegation 16 设置是否应从客户端接受 GSSAPI 委派。
krb_caseins_users 111213141516 设置是否应将 Kerberos 和 GSSAPI 用户名视为不区分大小写。
krb_server_keyfile 111213141516 设置 Kerberos 服务器密钥文件的位置。
password_encryption 111213141516 选择用于加密密码的算法。
scram_iterations 16 设置 SCRAM 机密生成的迭代计数。

连接和身份验证/连接设置

名称 版本 说明
bonjour 111213141516 允许通过 Bonjour 播发服务器。
bonjour_name 111213141516 设置 Bonjour 服务名称。
listen_addresses 111213141516 设置要侦听的主机名或 IP 地址。
max_connections 111213141516 设置最大并发连接数。
port 111213141516 设置服务器侦听的 TCP 端口。
reserved_connections 111213141516 设置保留给具有pg_use_reserved_connections权限角色的连接插槽数量。
superuser_reserved_connections 111213141516 设置为超级用户保留的连接槽数。
unix_socket_directories 111213141516 设置将在其中创建 Unix 域套接字的目录。
unix_socket_group 111213141516 设置 Unix 域套接字的所属组。 套接字的拥有用户始终是启动服务器的用户。
unix_socket_permissions 111213141516 设置 Unix 域套接字的访问权限。 Unix 域套接字使用常用的 Unix 文件系统权限集。 参数值应是一个数字模式规范,该规范采用 chmod 和 umask 系统调用所接受的形式。 (若要使用自定义八进制格式,数字必须以 0 开头(零)。

连接和身份验证/SSL

名称 版本 说明
ssl 111213141516 启用 SSL 连接。
ssl_ca_file 111213141516 SSL 证书颁发机构文件的位置。
ssl_cert_file 111213141516 SSL 服务器证书文件的位置。
ssl_ciphers 111213141516 设置允许的 SSL 密码列表。
ssl_crl_dir 141516 SSL 证书吊销列表目录的位置。
ssl_crl_file 111213141516 SSL 证书吊销列表文件的位置。
ssl_dh_params_file 111213141516 SSL DH 参数文件的位置。
ssl_ecdh_curve 111213141516 设置用于 ECDH 的曲线。
ssl_key_file 111213141516 SSL 服务器私钥文件的位置。
ssl_max_protocol_version 1213141516 设置要使用的最高 SSL/TLS 协议版本。
ssl_min_protocol_version 1213141516 设置要使用的最低 SSL/TLS 协议版本。
ssl_passphrase_command 111213141516 获取 SSL 口令的命令。
ssl_passphrase_command_supports_reload 111213141516 控制在服务器重新加载期间是否调用“ssl_passphrase_command”。
ssl_prefer_server_ciphers 111213141516 优先考虑服务器密码套件顺序。

连接和身份验证/TCP 设置

名称 版本 说明
client_connection_check_interval 141516 设置在运行查询时检查断开连接之间的时间间隔。
tcp_keepalives_count 111213141516 TCP 保活重传的最大次数。 在连接被视为失效之前,可以丢失的连续保活重传次数。 当值为 0 时,将使用系统默认值。
tcp_keepalives_idle 111213141516 发出 TCP keepalives 的时间间隔。 当值为 0 时,将使用系统默认值。
tcp_keepalives_interval 111213141516 TCP 保活重传之间的时间。 当值为 0 时,将使用系统默认值。
tcp_user_timeout 1213141516 TCP 用户超时。 当值为 0 时,将使用系统默认值。

自定义选项

名称 版本 说明
age.enable_containment 13141516 使用 @> 运算符转换 MATCH 的筛选器。 否则,请使用 -> 运算符。
anon.algorithm 1213141516 用于假名化函数的哈希方法。
anon.k_anonymity_provider 1213141516 用于 k 匿名的安全标签提供程序。
anon.masking_policies 1213141516 定义多个掩码策略(尚未实现)。
anon.maskschema 1213141516 存储动态掩码视图的架构。
anon.privacy_by_default 1213141516 使用 NULL(或 NOT NULL 列的默认值)屏蔽所有列。
anon.restrict_to_trusted_schemas 1213141516 屏蔽筛选器必须位于受信任架构中。 激活此选项可防止非超级用户使用其自己的屏蔽筛选器。
anon.salt 1213141516 用于假名化函数的盐值。
anon.sourceschema 1213141516 动态掩码引擎屏蔽表时采用的架构。
anon.strict_mode 1213141516 掩码规则无法更改列数据类型,除非禁用它。 不建议禁用此模式。
anon.transparent_dynamic_masking 1213141516 新的掩码引擎(实验性)。
auto_explain.log_analyze 111213141516 使用 EXPLAIN ANALYZE 记录计划。
auto_explain.log_buffers 111213141516 日志缓冲区使用情况。
auto_explain.log_format 111213141516 用于记录计划的 EXPLAIN 格式。
auto_explain.log_level 1213141516 计划的日志级别。
auto_explain.log_min_duration 111213141516 设置计划执行时间的最低阈值,超过该阈值的计划将被记录。 零表示输出所有计划。 -1 关闭此功能。
auto_explain.log_nested_statements 111213141516 记录嵌套语句。
auto_explain.log_parameter_max_length 16 设置要记录的查询参数的最大长度。 零日志没有查询参数,-1 完整记录这些参数。
auto_explain.log_settings 1213141516 记录影响查询计划的已修改配置参数。
auto_explain.log_timing 111213141516 收集计时数据,而不仅仅是行计数。
auto_explain.log_triggers 111213141516 在计划中包括触发器统计信息。 除非还设置了 log_analyze,否则这不起作用。
auto_explain.log_verbose 111213141516 使用 EXPLAIN VERBOSE 记录计划。
auto_explain.log_wal 13141516 记录 WAL 使用情况。
auto_explain.sample_rate 111213141516 要处理的查询的占比。
azure.accepted_password_auth_method 111213141516 由服务器接受的密码身份验证方法(用逗号分隔)。
azure.allow_hostname_in_username 11 指定是否允许在 Azure Database for PostgreSQL 灵活服务器的用户名中使用主机名。
azure_cdc.change_batch_buffer_size 13141516 用于更改批处理的缓冲区大小(以 MB 为单位)。 这些缓冲区用于在将 CDC 更改写入磁盘之前临时存储这些更改。
azure_cdc.change_batch_export_timeout 13141516 最长的时间(以秒为单位),等待一批更改准备好导出。
azure_cdc.max_fabric_mirrors 13141516 可以同时运行的并行构造镜像的最大数目。
azure_cdc.max_snapshot_workers 13141516 快照导出的最大工作线程数。 每个工作线程一次导出一个表。
azure_cdc.onelake_buffer_size 13141516 要上传到 Onelake 的缓冲区大小(以兆字节为单位)。 Onelake 以区块的形式上传文件,并将数据缓冲到内存中,直至达到此限制。
azure_cdc.parquet_compression 13141516 用于 parquet 文件的压缩算法。 确定用于 parquet 文件的压缩算法。 支持的值为“未压缩”、“snappy”、“gzip”和“zstd”。
azure_cdc.snapshot_buffer_size 13141516 快照数据文件的缓冲区大小(以兆字节为单位)。 这些缓冲区用于写入快照数据。 虽然这间接影响文件大小,但由于压缩和其他因素,实际文件大小可能更小。
azure_cdc.snapshot_export_timeout 13141516 导出数据库快照时,最长等待时间,以分钟计算,在报告错误之前。
azure.enable_temp_tablespaces_on_local_ssd 111213141516 将临时对象存储在本地固态磁盘上。
azure.extensions 111213141516 允许名单中的扩展列表,用逗号分隔。 如果扩展不在此列表中,则尝试在该扩展上执行 CREATE、ALTER、COMMENT、DROP EXTENSION 语句失败。
cron.database_name 111213141516 用于存储pg_cron元数据的数据库。
cron.enable_superuser_jobs 1213141516 允许以超级用户身份安排作业。
cron.host 12131415, 16 要连接到 PostgreSQL 数据库的主机名。 使用后台辅助角色时,此设置不起作用。
cron.launch_active_jobs 1213141516 启动被定义为活动的作业。
cron.log_min_messages 1213141516 launcher bgworker 的 log_min_messages。
cron.log_run 111213141516 将所有作业运行记录到 job_run_details 表中。
cron.log_statement 111213141516 在执行之前记录所有 cron 语句。
cron.max_running_jobs 111213141516 可并发运行的最大作业数。
cron.timezone 1213141516 指定用于 cron 计划的时区。
cron.use_background_workers 1213141516 使用后台工作者而不是客户端会话。
pgaadauth.enable_group_sync 1213141516 启用 Microsoft Entra ID 组成员的同步。
pgaudit.log 111213141516 指定会话审核日志将记录哪些语句类。 可以使用逗号分隔的列表来提供多个类,并且可以通过用 - 符号开头来减去类。
pgaudit.log_catalog 111213141516 指定当语句中的所有关系都在 pg_catalog 中时,应启用会话日志记录。 禁用此设置将减少来自大量查询目录的工具(如 psql 和 PgAdmin)的日志中的干扰。
pgaudit.log_client 111213141516 指定审核消息是否应对客户端可见。 此设置通常应处于禁用状态,但对于调试或其他目的可能很有用。
pgaudit.log_level 111213141516 指定将用于日志条目的日志级别。 此设置用于回归测试,也可用于最终用户进行测试或其他目的。 它不应在生产环境中使用,因为它可能会泄露正在记录的语句给用户。
pgaudit.log_parameter 111213141516 指定审核日志应包含随语句一起传递的参数。 如果存在参数,这些参数将包含在语句文本之后的 CSV 格式。
pgaudit.log_parameter_max_size 16 指定要记录的可变长度参数的最大长度(以字节为单位)。 如果为 0(默认值),则不会检查参数的大小。 如果设置,当参数的大小超过设置时,审核日志中的值将替换为占位符。 请注意,对于字符类型,参数编码的长度为字节,而不是字符。
pgaudit.log_relation 111213141516 指定会话审核日志记录是否应为 SELECT 或 DML 语句中引用的每个关系创建单独的日志条目。 这是一种在不使用对象审核日志记录的情况下实现全面日志记录的有用快捷方式。
pgaudit.log_rows 141516 指定日志记录是否包括检索或受语句影响的行。
pgaudit.log_statement 141516 指定日志记录是否包括语句文本和参数。 根据要求,审核日志中可能不需要完整语句文本。
pgaudit.log_statement_once 111213141516 指定日志记录是否会包括语句文本及其参数,是在语句/子语句组合的第一条日志项目中包含,还是在每条日志项目中都包含。 禁用此设置将导致日志详细程度降低,但可能更难以确定生成日志条目的语句。不过,语句/子语句对以及进程 ID 应该足以识别与先前记录一起的语句文本。
pgaudit.role 111213141516 指定要用于对象审核日志的主角色。 可以通过向主角色授予多个审核角色来定义这些角色。 这样,多个组就可以负责审核日志记录的不同方面。
pg_failover_slots.drop_extra_slots 1213141516 是否删除不匹配 pg_failover_slots.synchronize_slot_names 的备用服务器上的额外槽。
pg_failover_slots.primary_dsn 1213141516 用于在备用服务器上同步逻辑槽的主服务器的连接字符串。 如果为空,则使用默认值primary_conninfo。
pg_failover_slots.standby_slot_names 1213141516 在解码插件发送更改之前,必须确认的槽名称列表。 在提交到该 lsn 之前,必须确认给定 lsn 持久刷新的物理复制槽的列表,这些槽可能由输出插件复制到逻辑对等方。 在逻辑复制之前强制执行物理复制的顺序。
pg_failover_slots.standby_slots_min_confirmed 1213141516 需要确认 lsn 的 pg_failover_slots.standby_slot_names 中的槽数量。 修改 pg_failover_slots.standby_slot_names 的行为,以便允许在至少有 pg_failover_slots.standby_slots_min_confirmed 个物理对等方确认事务已被持久刷新后,对事务进行逻辑复制。 值 -1(默认值)表示 pg_failover_slots.standby_slot_names 中的所有条目必须确认写入。 值 0 会导致 pg_failover_slots.standby_slots_min_confirmed 被有效忽略。
pg_failover_slots.synchronize_slot_names 1213141516 要从主备用服务器同步到物理待机的槽列表。
pg_failover_slots.version 1213141516 pg_failover_slots模块版本。
pg_failover_slots.wait_for_inactive_slots 1213141516 是否等待主节点上的非活动的复制槽赶上备用服务器。
pg_hint_plan.debug_print 1213141516 记录提示分析的结果。
pg_hint_plan.enable_hint 1213141516 强制规划器使用查询前面的提示注释中指定的计划。
pg_hint_plan.enable_hint_table 1213141516 让pg_hint_plan去查找提示表。
pg_hint_plan.hints_anywhere 13141516 从查询中的任何位置读取提示。 此选项允许pg_hint_plan忽略语法,因此对误读应谨慎。
pg_hint_plan.message_level 1213141516 调试消息的消息级别。
pg_hint_plan.parse_messages 1213141516 解析错误的信息级别。
pglogical.batch_inserts 111213141516 如果可能,请告知 PGLogical 使用批量插入机制。
pglogical.conflict_log_level 111213141516 设置当 pglogical.conflict_resolution 设置为除 error 以外的任何值时报告检测到的冲突的日志级别。
pglogical.conflict_resolution 111213141516 设置本地数据和传入更改之间检测到的任何冲突的解决方法。
pglogical.extra_connection_options 1213141516 要在所有对等节点的连接中添加的选项。
pglogical.synchronous_commit 1213141516 pglogical特定的同步提交值。
pglogical.temp_directory 1213141516 存储本地还原转储的目录。
pglogical.use_spi 111213141516 告知 PGLogical 使用 SPI 接口形成实际 SQL(INSERT、UPDATE、DELETE)语句来应用传入更改,而不是使用内部低级别接口。
pgms_stats.is_enabled_fs 111213141516 仅供内部使用:此参数用作功能替代开关。
pgms_wait_sampling.history_period 111213141516 设置采样等待事件的频率(以毫秒为单位)。
pgms_wait_sampling.is_enabled_fs 111213141516 仅供内部使用:此参数用作功能替代开关。 如果显示为“关闭”,则会禁用等待采样,即使为 pgms_wait_sampling.query_capture_mode 设置了值,也会禁用。
pgms_wait_sampling.query_capture_mode 111213141516 可以选择由该扩展跟踪的等待事件类型。 需要重新加载配置以使更改生效。
pg_partman_bgw.analyze 111213141516 是否在run_maintenance()期间创建新分区时对分区集运行分析。 设置为“开启”以发送 TRUE(默认)。 设置为“off”以发送 FALSE。
pg_partman_bgw.dbname 111213141516 群集中要运行pg_partman BGW 的特定数据库的 CSV 列表。
pg_partman_bgw.interval 111213141516 run_maintenance()的调用频率(以秒为单位)。
pg_partman_bgw.jobmon 111213141516 是否记录run_maintenance()对pg_jobmon的调用(如果已安装)。 设置为“开启”以发送 TRUE(默认)。 设置为“off”以发送 FALSE。
pg_partman_bgw.maintenance_wait 16 运行维护操作时,每个分区集之间的等待时间(以秒为单位)。
pg_partman_bgw.role 111213141516 供 BGW 使用的角色。 必须对 run_maintenance() 具有执行权限。
pg_prewarm.autoprewarm 1213141516 启动自动预热工作线程。
pg_prewarm.autoprewarm_interval 1213141516 设置共享缓冲区转储之间的间隔。 如果设置为零,则禁用基于时间的转储。
pg_qs.interval_length_minutes 111213141516 设置聚合窗口(以分钟为单位)。 需要重新加载配置以使更改生效。
pg_qs.max_captured_queries 13141516 指定查询存储在每个时间间隔内捕获到运行时统计信息的最相关查询的数量。
pg_qs.max_plan_size 111213141516 设置将保存查询计划文本的最大字节数;较长的计划将被截断。 需要重新加载此更改的配置才能生效。
pg_qs.max_query_text_length 111213141516 设置将保存的最大查询文本长度;将截断较长的查询。 需要重新加载配置以使更改生效。
pg_qs.parameters_capture_mode 111213141516 选择pg_qs捕获位置查询参数的方式。 需要重新加载配置,使更改生效。
pg_qs.query_capture_mode 111213141516 选择pg_qs跟踪的语句。 需要重新加载配置以使更改生效。
pg_qs.retention_period_in_days 111213141516 设置 pg_qs 的保留期窗口(以天为单位)- 数据将在此时间之后删除。 需要重启服务器以使更改生效。
pg_qs.store_query_plans 111213141516 打开或关闭保存查询计划功能。 需要重新加载配置,使更改生效。
pg_qs.track_utility 111213141516 选择是否通过 pg_qs 跟踪实用工具命令。 需要重新加载配置以使更改生效。
pg_stat_statements.max 111213141516 设置 pg_stat_statements 跟踪的语句数量上限。
pg_stat_statements.save 111213141516 每次服务器关机后保存 pg_stat_statements 统计信息。
pg_stat_statements.track 111213141516 选择pg_stat_statements跟踪的语句。
pg_stat_statements.track_planning 13141516 选择是否通过pg_stat_statements跟踪计划持续时间。
pg_stat_statements.track_utility 111213141516 选择是否通过 pg_stat_statements 跟踪实用工具命令。
postgis.gdal_enabled_drivers 111213141516 控制已启用 postgis GDAL 的驱动程序设置。
squeeze.max_xlock_time 1213141516 处理表的最长时间可能以独占方式锁定。 源表在处理的最后阶段以独占方式锁定。 如果锁定时间应超过此值,则会释放锁,最后阶段将重试几次。
squeeze.worker_autostart 1213141516 后台工作进程自动启动的数据库的名称。 群集启动完成后立即开始压缩工作线程的数据库的逗号分隔列表。
squeeze.worker_role 1213141516 后台工作者连接数据库时使用的角色。 如果在群集启动时自动启动后台工作进程,它将使用此角色来启动数据库连接。
squeeze.workers_per_database 1516 为每个数据库启动的最大压缩工作进程数。
timescaledb.bgw_launcher_poll_time 1213141516 启动器超时值(以毫秒为单位)。 配置启动器等待查找新的 TimescaleDB 实例的时间。
timescaledb.disable_load 1213141516 禁用实际扩展的加载。
timescaledb.max_background_workers 1213141516 分配给 TimescaleDB 的最大后台工作进程数。 为 TimescaleDB 分配的最大后台工作进程数 - 应设置为至少 1 加上 Postgres 实例中的数据库数量,以便使用后台工作进程。
timescaledb_osm.disable_load 13141516 禁用实际扩展的加载。

开发人员选项

名称 版本 说明
allow_in_place_tablespaces 111213141516 允许在 pg_tblspc 中直接创建表空间用于测试。
allow_system_table_mods 111213141516 允许修改系统表的结构。
backtrace_functions 13141516 记录对这些函数中错误的回溯。
debug_discard_caches 141516 出于调试目的,主动刷新系统缓存。
debug_io_direct 16 使用直接 I/O 进行文件访问。
debug_logical_replication_streaming 16 强制在大型事务中立即进行流式传输或序列化更改。 在发布服务器上,它允许对逻辑解码中的每个更改进行流式处理或序列化。 在订阅者一侧,它允许对文件的所有更改进行序列化,并通知并行应用工作者在事务结束时读取并应用这些更改。
debug_parallel_query 16 强制规划器使用并行查询节点。 这可用于测试并行查询基础结构,方法是强制规划器生成包含节点的计划,这些节点执行工作器与主进程之间的元组通信。
force_parallel_mode 1112131415 强制使用并行查询工具。
ignore_checksum_failure 111213141516 在校验和故障后继续处理。 校验和检测失败通常会导致 PostgreSQL 报告错误,从而中止当前事务。 将ignore_checksum_failure设置为 true 会导致系统忽略失败(但仍报告警告),并继续处理。 此行为可能会导致崩溃或其他严重问题。 仅当启用了校验和时,才有效。
ignore_invalid_pages 13141516 在页面无效故障后继续恢复。 检测在恢复期间引用无效页面的 WAL 记录会导致 PostgreSQL 引发 PANIC 级错误,从而中止恢复。 将“ignore_invalid_pages”设置为 true 会导致系统忽略 WAL 记录中的无效页面引用(但仍报告警告),并继续恢复。 此行为可能会导致崩溃、数据丢失、传播或隐藏损坏或其他严重问题。 仅在恢复或处于待机模式期间有效。
ignore_system_indexes 111213141516 禁止读取系统索引。 它不会阻止更新索引,因此可以安全地使用。 最严重的后果是缓慢。
jit_debugging_support 111213141516 向调试程序注册 JIT 编译的函数。
jit_dump_bitcode 111213141516 写出 LLVM Bitcode 以方便 JIT 调试。
jit_expressions 111213141516 允许 JIT 编译表达式。
jit_profiling_support 111213141516 向性能探查器注册 JIT 编译的函数。
jit_tuple_deforming 111213141516 允许 JIT 编译元组变形。
post_auth_delay 111213141516 设置在连接启动时进行身份验证之后等待的时间量。 这允许将调试器附加到进程。
pre_auth_delay 111213141516 设置在连接启动时进行身份验证之前等待的时间量。 这允许将调试器附加到进程。
remove_temp_files_after_crash 1416 在后端崩溃后删除临时文件。
send_abort_for_crash 16 在后端崩溃后,将 SIGABRT 而不是 SIGQUIT 发送到子进程。
send_abort_for_kill 16 将 SIGABRT 而不是 SIGKILL 发送到停滞的子进程。
trace_notify 111213141516 为 LISTEN 和 NOTIFY 生成调试输出。
trace_recovery_messages 111213141516 启用与恢复相关的调试信息的日志记录。
trace_sort 111213141516 发出有关排序中资源使用情况的信息。
wal_consistency_checking 111213141516 设置执行 WAL 一致性检查的 WAL 资源管理器。 将为所有数据块记录完整页面图像,并针对 WAL 重播的结果交叉检查。
zero_damaged_pages 111213141516 继续处理已损坏的页眉。 检测损坏的页面标头通常会导致 PostgreSQL 报告错误,中止当前事务。 将“zero_damaged_pages”设置为 true 会导致系统改为报告警告、零掉损坏的页面并继续处理。 此行为将销毁数据,即损坏页面上的所有行。

错误处理

名称 版本 说明
data_sync_retry 111213141516 同步数据文件失败后是否继续运行。
exit_on_error 111213141516 在任何错误时终止会话。
recovery_init_sync_method 141516 设置在故障恢复之前同步数据目录的方法。
restart_after_crash 111213141516 在后端故障后重新初始化服务器。

文件位置

名称 版本 说明
config_file 111213141516 设置服务器的主配置文件。
data_directory 111213141516 设置服务器的数据目录。
external_pid_file 111213141516 将 postmaster PID 写入指定文件。
hba_file 111213141516 设置服务器的“hba”配置文件。
ident_file 111213141516 设置服务器的“ident”配置文件。

智能优化

名称 版本 说明
index_tuning.analysis_interval 1213141516 将 index_tuning.mode 设置为“REPORT”时触发每个索引优化会话的频率。
index_tuning.max_columns_per_index 1213141516 任何建议索引的索引键中可以包含的最大列数。
index_tuning.max_index_count 1213141516 在一个优化会话期间可以为每个数据库推荐的最大索引数。
index_tuning.max_indexes_per_table 1213141516 每个表可推荐的最大索引数。
index_tuning.max_queries_per_database 1213141516 可向其推荐索引的每个数据库的最慢查询数。
index_tuning.max_regression_factor 1213141516 在一个优化会话期间所分析的任何查询上,由推荐的索引所引入的可接受回归。
index_tuning.max_total_size_factor 1213141516 任何给定数据库的所有建议索引所能使用的最大总空间占总磁盘空间的百分比。
index_tuning.min_improvement_factor 1213141516 在一个优化会话期间,建议的索引必须向至少一个所分析查询提供的成本改善幅度。
index_tuning.mode 1213141516 将索引优化配置为已禁用 ('OFF'),或仅启用以仅发出建议。 需要通过将 pg_qs.query_capture_mode 设置为 'TOP' 或 'ALL' 来启用查询存储。
index_tuning.unused_dml_per_table 1213141516 影响表的每日平均 DML 操作的最小数量,超过此值时将考虑删除其未使用的索引。
index_tuning.unused_min_period 1213141516 根据系统统计信息,未使用索引的最小天数,超过此值时将考虑删除索引。
index_tuning.unused_reads_per_table 1213141516 影响表的每日平均读取操作的最小数量,超过此值时将考虑删除其未使用的索引。
intelligent_tuning 111213141516 启用智能优化
intelligent_tuning.metric_targets 111213141516 指定智能优化将调整哪些指标。
logfiles.download_enable 111213141516 启用或禁用服务器日志功能。
logfiles.retention_days 111213141516 设置服务器日志的保留期时间段(以天为单位)- 数据将在此时间之后被删除。

锁管理

名称 版本 说明
deadlock_timeout 111213141516 设置在检查死锁之前等待锁的时间。
max_locks_per_transaction 111213141516 设置每个事务的最大锁数。 共享锁表的大小取决于每个服务器进程或准备事务的“max_locks_per_transaction”对象最多需要一次锁定。
max_pred_locks_per_page 111213141516 设置每页的谓词锁定元组数量上限。 如果同一页上连接锁定的元组数量超过此数,则这些锁将被页级锁替换。
max_pred_locks_per_relation 111213141516 设置每个关系的谓词锁定页和元组数量上限。 如果超过此总数的页面和元组在同一关系中被连接锁定,那么这些锁将被替换为关系级锁。
max_pred_locks_per_transaction 111213141516 设置每个事务的谓词锁定数量上限。 共享谓词锁表的大小基于一个假设,即在任何给定时刻,每个服务器进程或预备事务最多可能需要锁定“max_pred_locks_per_transaction”个对象。

指标

名称 版本 说明
metrics.autovacuum_diagnostics 111213141516 为数据库中的所有表统计信息启用指标收集
metrics.collector_database_activity 111213141516 为数据库和活动统计信息启用指标收集
metrics.pgbouncer_diagnostics 111213141516 为 PgBouncer 启用指标收集。

Migration

名称 版本 说明
azure.migration_copy_with_binary 111213141516 设置为 on 时,此参数将允许在迁移过程中使用二进制格式来复制数据。
azure.migration_skip_analyze 111213141516 设置为“启用”时,此参数将在迁移过程中跳过分析阶段(vacuumdb --analyze-only)。
azure.migration_skip_extensions 111213141516 设置为“开启”时,此参数将跳过扩展的迁移。
azure.migration_skip_large_objects 111213141516 设置为 on 时,此参数将跳过大型对象(如 BLOB)的迁移。
azure.migration_skip_role_user 111213141516 设置为“启用”时,此参数将从迁移过程中排除用户角色。
azure.migration_table_split_size 111213141516 设置时,此参数指定在迁移期间将分区表的大小。

PgBouncer

名称 版本 说明
pgbouncer.default_pool_size 111213141516 每个用户/数据库对允许的服务器连接数。
pgbouncer.enabled 111213141516 表示是否启用了 pgBouncer 服务。
pgbouncer.ignore_startup_parameters 111213141516 PgBouncer 可忽略的参数的逗号分隔列表,因为这些参数将由管理员处理。
pgbouncer.max_client_conn 111213141516 允许的最大客户端连接数。
pgbouncer.max_prepared_statements 111213141516 当它设置为非零值时,PgBouncer 会跟踪客户端在事务和语句池模式下发送的、协议级命名的、已准备好的语句相关命令。
pgbouncer.min_pool_size 111213141516 如果低于此数量,请将更多服务器连接添加到池。
pgbouncer.pool_mode 111213141516 指定服务器连接何时可供其他客户端重复使用。
pgbouncer.query_wait_timeout 111213141516 最大允许查询等待执行的时间(以秒为单位)。 如果在此期间未将查询分配给服务器,则客户端将断开连接。
pgbouncer.server_idle_timeout 111213141516 如果服务器连接空闲时间超过此秒数,则会将其断开。 如果为 0,则禁用超时。
pgbouncer.stats_users 111213141516 获允在 pgBouncer 控制台上连接和运行只读查询的数据库用户的逗号分隔列表。

预设选项

名称 版本 说明
block_size 111213141516 显示磁盘块的大小。
data_checksums 111213141516 显示是否为此群集启用了数据校验和。
data_directory_mode 111213141516 显示数据目录的模式。 参数值是以 chmod 和 umask 系统调用接受的形式表示的数字模式规范。 (若要使用自定义八进制格式,数字必须以 0 开头(零)。
debug_assertions 111213141516 显示正在运行的服务器是否启用了断言检查。
in_hot_standby 141516 显示热备用服务器当前是否处于活动状态。
integer_datetimes 111213141516 显示日期/时间是否基于整数。
lc_collate 1112131415 显示排序规则顺序区域设置。
lc_ctype 1112131415 显示字符分类和大小写转换区域设置。
max_function_args 111213141516 显示函数自变量的最大数目。
max_identifier_length 111213141516 显示最大标识符长度。
max_index_keys 111213141516 显示索引键的最大数目。
segment_size 111213141516 显示每个磁盘文件的页面数。
server_encoding 111213141516 显示服务器(数据库)字符集编码。
server_version 111213141516 显示服务器版本。
server_version_num 111213141516 将服务器版本显示为整数。
shared_memory_size 1516 显示服务器的主共享内存区域的大小(向上舍入到最近的 MB)。
shared_memory_size_in_huge_pages 1516 显示主共享内存区域所需的大型页数。 -1 表示无法确定该值。
ssl_library 1213141516 显示 SSL 库的名称。
wal_block_size 111213141516 显示预写日志中的块大小。
wal_segment_size 111213141516 显示预写日志段的大小。

进程标题

名称 版本 说明
cluster_name 111213141516 设置进程标题中包含的群集名称。
update_process_title 111213141516 更新进程标题以显示活动 SQL 命令。 启用每次服务器接收新的 SQL 命令时更新进程标题。

查询优化/遗传查询优化器

名称 版本 说明
geqo 111213141516 启用遗传查询优化。 此算法尝试进行规划,而无需详尽搜索。
geqo_effort 111213141516 GEQO:为其他 GEQO 参数设置默认值所付出的工作量。
geqo_generations 111213141516 GEQO:算法的迭代次数。 零选择合适的默认值。
geqo_pool_size 111213141516 GEQO:种群中的个体数目。 零选择合适的默认值。
geqo_seed 111213141516 GEQO:用于随机路径选择的种子。
geqo_selection_bias 111213141516 GEQO:种群内部的选择性压力。
geqo_threshold 111213141516 设置 FROM 项的阈值,超过该阈值时会使用 GEQO。

查询优化/其他规划器选项

名称 版本 说明
constraint_exclusion 111213141516 使规划器能够使用约束来优化查询。 如果某个表的约束确保没有行匹配查询条件,将跳过该表的扫描。
cursor_tuple_fraction 111213141516 设置规划器对要检索的游标行的分数的估算值。
default_statistics_target 111213141516 设置默认统计信息目标。 这适用于未通过 ALTER TABLE SET STATISTICS 设置特定于列的目标集的表列。
from_collapse_limit 111213141516 设置非折叠子查询的 FROM 列表大小。 规划器将在生成的 FROM 列表项不超过这个数量时,将子查询合并到上层查询中。
jit 111213141516 允许 JIT 编译。
join_collapse_limit 111213141516 设置 FROM 列表的大小,超过该大小时将不平展 JOIN 构造。 当列表中的项目数量不超过此值时,规划器会将显式 JOIN 结构转化为 FROM 项的列表。
plan_cache_mode 1213141516 控制规划器选择自定义或通用计划的行为。 准备好的语句可以有自定义和通用计划,规划器将尝试选择更好的计划。 这可以设置为替代默认行为。
recursive_worktable_factor 1516 设置规划器对递归查询的工作表的平均大小的估计值。

查询优化/规划器成本常量

名称 版本 说明
cpu_index_tuple_cost 111213141516 设置规划器对索引扫描期间处理每个索引条目的成本估算值。
cpu_operator_cost 111213141516 设置规划器对处理每个运算符或函数调用的成本的估计值。
cpu_tuple_cost 111213141516 设置规划器对每个元组(行)的处理成本的估计值。
effective_cache_size 111213141516 设置规划器关于数据缓存总大小的假设。 也就是说,用于 PostgreSQL 数据文件的缓存(内核缓存和共享缓冲区)的总大小。 这以磁盘页(通常为 8 kB)进行度量。
jit_above_cost 111213141516 如果查询成本更高,则执行 JIT 编译。 -1 禁用 JIT 编译。
jit_inline_above_cost 111213141516 如果查询成本更高,请执行 JIT 内联。 -1 禁用代码内联。
jit_optimize_above_cost 111213141516 如果查询成本更高,请优化 JIT 编译的函数。 -1 禁用优化。
min_parallel_index_scan_size 111213141516 设置并行扫描的最小索引数据量。 如果规划器估计它将读取的索引页数量不够达此限制,则不会考虑进行并行索引扫描。
min_parallel_table_scan_size 111213141516 设置并行扫描的最小表数据量。 如果规划器估计它将读取的表页数量小于此限制,则不会考虑并行扫描。
parallel_setup_cost 111213141516 设置规划器对为并行查询启动工作进程的成本估算值。
parallel_tuple_cost 111213141516 设置规划器对于将每个元组(行)从工作者传递到主后端的成本估计。
random_page_cost 111213141516 设置规划器对不按顺序提取磁盘页的成本估算值。
seq_page_cost 111213141516 设置规划器对按顺序提取磁盘页的成本估算值。

查询优化/规划器方法配置

名称 版本 说明
enable_async_append 14151617, 18 允许规划器使用异步追加计划。
enable_bitmapscan 111213141516 允许规划器使用位图扫描计划。
enable_gathermerge 111213141516 允许规划器使用收集合并计划。
enable_hashagg 111213141516 允许规划器使用哈希聚合计划。
enable_hashjoin 111213141516 允许规划器使用哈希联接计划。
enable_incremental_sort 13141516 允许规划器使用增量排序步骤。
enable_indexonlyscan 111213141516 允许规划器使用仅限索引的扫描计划。
enable_indexscan 111213141516 允许规划器使用索引扫描计划。
enable_material 111213141516 允许规划器使用具体化。
enable_memoize 141516 允许规划器使用记忆化。
enable_mergejoin 111213141516 允许规划器使用合并联接计划。
enable_nestloop 111213141516 允许规划器使用嵌套循环联接计划。
enable_parallel_append 111213141516 允许规划器使用并行追加计划。
enable_parallel_hash 111213141516 允许规划器使用并行哈希计划。
enable_partition_pruning 111213141516 启用计划时间和执行时间分区修剪。 允许查询规划器和执行程序将分区边界与查询中的条件进行比较,以确定必须扫描哪些分区。
enable_partitionwise_aggregate 111213141516 支持分区聚合和分组。
enable_partitionwise_join 111213141516 启用分区联接。
enable_presorted_aggregate 16 使规划器能够产生计划,这些计划为 ORDER BY 或 DISTINCT 聚合函数提供预排序的输入。 允许查询规划器生成使用 ORDER BY /DISTINCT 子句为聚合函数提供预排序输入的计划。 禁用时,隐式排序始终在执行过程中进行。
enable_seqscan 111213141516 允许规划器使用顺序扫描计划。
enable_sort 111213141516 允许规划器使用显式排序步骤。
enable_tidscan 111213141516 允许规划器使用 TID 扫描计划。

复制/主服务器

名称 版本 说明
synchronous_standby_names 111213141516 同步备用服务器数和潜在同步备用服务器的名称列表。

复制/主服务器

名称 版本 说明
vacuum_defer_cleanup_age 1112131415 指定 VACUUM 和 HOT 更新在清理“死行版本”前,会延迟多少个事务。

复制/发送服务器

名称 版本 说明
max_replication_slots 111213141516 设置同时定义的复制槽的最大数目。
max_slot_wal_keep_size 13141516 设置复制槽可以保留的最大 WAL 大小。 如果磁盘上的 WAL 占用了如此多的空间,复制槽将被标记为失败,并且释放了用于删除或回收的段。
max_wal_senders 111213141516 设置同时运行的 WAL 发送方进程数量上限。
track_commit_timestamp 111213141516 收集事务提交时间。
wal_keep_segments 1112 设置为备用服务器保留的 WAL 文件数。
wal_keep_size 13141516 设置为备用服务器保留的 WAL 文件的大小。
wal_sender_timeout 111213141516 设置等待 WAL 复制的最长时间。

复制/备用服务器

名称 版本 说明
hot_standby 111213141516 允许在恢复期间连接和查询。
hot_standby_feedback 111213141516 允许从热备用服务器向主服务器反馈,以避免查询冲突。
max_standby_archive_delay 111213141516 在热备用服务器正在处理已存档 WAL 数据时,在取消查询之前设置最大延迟。
max_standby_streaming_delay 111213141516 在热备用服务器处理流式处理 WAL 数据时,在取消查询之前设置最大延迟。
primary_conninfo 1213141516 设置用于连接到发送服务器的连接字符串。
primary_slot_name 1213141516 设置要在发送服务器上使用的复制插槽的名称。
promote_trigger_file 12131415 指定一个文件名,该文件的存在会在备用模式下终止恢复。
recovery_min_apply_delay 1213141516 设置在恢复期间应用更改的最小延迟。
wal_receiver_create_temp_slot 13141516 设置在未配置永久槽时 WAL 接收器是否应创建临时复制槽。
wal_receiver_status_interval 111213141516 将 WAL 接收方状态报告之间的最大间隔设置为发送服务器。
wal_receiver_timeout 111213141516 设置从发送服务器接收数据的最大等待时间。
wal_retrieve_retry_interval 111213141516 设置在失败后重试检索 WAL 之前的等待时间。

复制/订阅服务器

名称 版本 说明
max_logical_replication_workers 111213141516 逻辑复制工作进程的最大数目。
max_parallel_apply_workers_per_subscription 16 每个订阅的最大并行应用工作者数。
max_sync_workers_per_subscription 111213141516 每个订阅的表同步辅助角色数量上限。

报告和记录/要记录的内容

名称 版本 说明
application_name 111213141516 设置要在统计信息和日志中报告的应用程序名称。
debug_pretty_print 111213141516 缩进分析和计划树的显示内容。
debug_print_parse 111213141516 记录每个查询的分析树。
debug_print_plan 111213141516 记录每个查询的执行计划。
debug_print_rewritten 111213141516 记录每个查询的重写分析树。
log_autovacuum_min_duration 111213141516 设置自动清理操作的日志记录阈值为最小执行时间,任何超过该时间的操作都会被记录。 打印所有操作的零级日志。 将 autovacuum 日志记录关闭为 -1。
log_checkpoints 111213141516 记录每个检查点。
log_connections 111213141516 记录每个成功的连接。
log_disconnections 111213141516 记录会话结束时间,包括持续时间。
log_duration 111213141516 记录每个已完成 SQL 语句的持续时间。
log_error_verbosity 111213141516 设置记录的消息的详细程度。
log_hostname 111213141516 记录连接日志中的主机名。 默认情况下,连接日志仅显示连接主机的 IP 地址。 如果希望启用显示主机名的功能,可以选择开启,但这可能会根据您的主机名解析设置造成不可忽视的性能损失。
log_line_prefix 111213141516 控制每个日志行前缀的信息。 如果为空,则不使用前缀。
log_lock_waits 111213141516 记录长时间的锁等待。
log_parameter_max_length 13141516 设置记录语句时为绑定参数值记录的数据的最大长度(以字节为单位)。 使用 -1 可完整打印值。
log_parameter_max_length_on_error 13141516 设置记录语句并发生错误时为绑定参数值记录的数据的最大长度(以字节为单位)。 使用 -1 可完整打印值。
log_recovery_conflict_waits 141516 记录日志中备用恢复冲突等待的情况。
log_replication_commands 111213141516 记录每个复制命令。
log_statement 111213141516 设置记录的语句的类型。
log_temp_files 111213141516 记录使用大于此指定千字节数的临时文件。 Zero 记录所有文件。 默认值为 -1(关闭此功能)。
log_timezone 111213141516 设置在日志消息中使用的时区。

报告和记录/何时记录

名称 版本 说明
log_min_duration_sample 13141516 设置最短执行时间,超过该时间将记录语句示例。 采样由 log_statement_sample_rate 确定。 Zero 记录所有查询的样本。 -1 关闭此功能。
log_min_duration_statement 111213141516 设置记录所有语句所需的最小执行时间阈值。 “零”指令执行所有查询的打印任务。 -1 关闭此功能。
log_min_error_statement 111213141516 导致记录在此级别或更高级别生成错误的所有语句。 每个级别包括其后面的所有级别。 级别越晚,发送的消息越少。
log_min_messages 111213141516 设置记录的消息级别。 每个级别包括其后面的所有级别。 级别越晚,发送的消息越少。
log_startup_progress_interval 1516 长时间运行的启动操作的进度更新之间的时间。 0 关闭此功能。
log_statement_sample_rate 13141516 超过“log_min_duration_sample”时长限制的语句比例将被记录。 使用介于 0.0(永不记录)和 1.0(始终记录)之间的值。
log_transaction_sample_rate 1213141516 设置记录所有语句的事务的占比。 使用取值范围为 0.0(从不进行日志记录)到 1.0(记录所有事务的所有语句)的值。

报告生成和日志记录/日志记录位置

名称 版本 说明
event_source 111213141516 设置用于标识事件日志中的 PostgreSQL 消息的应用程序名称。
log_destination 111213141516 设置服务器日志输出的目标。 有效值为“stderr”、“syslog”、“csvlog”、“jsonlog”和“eventlog”的组合,具体取决于平台。
log_directory 111213141516 设置日志文件的目标目录。 可以指定为相对于数据目录的路径,也可以是绝对路径。
log_file_mode 111213141516 设置日志文件的文件权限。 参数值应是一个数字模式规范,该规范采用 chmod 和 umask 系统调用所接受的形式。 (若要使用自定义八进制格式,数字必须以 0 开头(零)。
log_filename 111213141516 设置日志文件的文件名模式。
logging_collector 111213141516 启动子进程,将 stderr、csvlog 和/或 jsonlog 捕获到日志文件中。
log_rotation_age 111213141516 设置在强制日志文件轮换之前等待的时间量。
log_rotation_size 111213141516 设置日志文件在轮换之前可以达到的最大大小。
log_truncate_on_rotation 111213141516 在日志轮换期间截断同名的现有日志文件。
syslog_facility 111213141516 设置启用 syslog 时要使用的 syslog“设施”。
syslog_ident 111213141516 设置用于标识 syslog 中的 PostgreSQL 消息的程序名称。
syslog_sequence_numbers 111213141516 将序列号添加到 syslog 消息,以避免重复抑制。
syslog_split_messages 111213141516 按行拆分发送到 syslog 的消息,使其不超过 1024 字节。

资源使用状况/异步行为

名称 版本 说明
backend_flush_after 111213141516 在将以前执行的写入刷新到磁盘之前所要达到的页数。
effective_io_concurrency 111213141516 可由磁盘子系统高效处理的同时请求数。
maintenance_io_concurrency 13141516 用于维护工作的“effective_io_concurrency”变体。
max_parallel_maintenance_workers 111213141516 设置每个维护操作的并行进程数量上限。
max_parallel_workers 111213141516 设置同时可处于活动状态的最大并行工作者数量。
max_parallel_workers_per_gather 111213141516 设置每个执行程序节点的并行进程数量上限。
max_worker_processes 111213141516 并发工作进程的最大数目。
old_snapshot_threshold 1213141516 创建快照之前的时间太旧,无法读取快照后更改的页面。
parallel_leader_participation 111213141516 控制 Gather 和 Gather Merge 是否也运行子计划。 收集节点还应运行子计划或仅收集元组?

资源使用情况/后台编写器

名称 版本 说明
bgwriter_delay 111213141516 背景编写器在轮次之间睡眠时间。
bgwriter_flush_after 111213141516 在将以前执行的写入刷新到磁盘之前所要达到的页数。
bgwriter_lru_maxpages 111213141516 要每轮刷新的 LRU 页面的最大后台编写器数。
bgwriter_lru_multiplier 111213141516 每个回合释放的平均缓冲区使用量的倍数。

资源使用状况/基于成本的清空延迟

名称 版本 说明
vacuum_cost_delay 111213141516 真空操作成本延迟(以毫秒为单位)。
vacuum_cost_limit 111213141516 在打盹之前可用的真空成本量。
vacuum_cost_page_dirty 111213141516 吸尘器所脏的页的真空成本。
vacuum_cost_page_hit 111213141516 在缓冲区缓存中找到的页面的清空成本。
vacuum_cost_page_miss 111213141516 缓冲区缓存中找不到页面的清空成本。

资源使用情况/磁盘

名称 版本 说明
temp_file_limit 111213141516 限制每个进程使用的所有临时文件的总大小。 -1 表示没有限制。

资源使用情况/内核资源

名称 版本 说明
max_files_per_process 111213141516 设置每个服务器进程同时打开的文件数量上限。

资源使用情况/内存

名称 版本 说明
autovacuum_work_mem 111213141516 设置可供每个 autovacuum 工作进程使用的最大内存。
dynamic_shared_memory_type 111213141516 选择使用的动态共享内存实现。
hash_mem_multiplier 1213141516 使用“work_mem”的倍数来配置哈希表。
huge_pages 111213141516 在 Linux 或 Windows 上使用大型页面。
huge_page_size 141516 应请求的大型页的大小。
logical_decoding_work_mem 13141516 设置用于逻辑解码的最大内存。 在溢出到磁盘之前,每个内部重新排序缓冲区都可以使用这么多内存。
maintenance_work_mem 111213141516 设置用于维护操作的最大内存。 这包括 VACUUM 和 CREATE INDEX 操作。
max_prepared_transactions 111213141516 设置同时准备的事务的数量上限。
max_stack_depth 111213141516 设置最大堆栈深度(以 KB 为单位)。
min_dynamic_shared_memory 141516 启动时保留的动态共享内存量。
shared_buffers 111213141516 设置服务器使用的共享内存缓冲区数。
shared_memory_type 1213141516 选择用于主共享内存区域的共享内存实现。
temp_buffers 111213141516 设置每个会话使用的最大临时缓冲区数。
vacuum_buffer_usage_limit 16 设置 VACUUM、ANALYZE 和 autovacuum 的缓冲池大小。
work_mem 111213141516 设置要用于查询工作区的最大内存。 在切换到临时磁盘文件之前,每个内部排序操作和哈希表都可以使用一定数量的内存。

统计信息/累积查询和索引统计信息

名称 版本 说明
stats_fetch_consistency 1516 设置对统计信息数据的访问的一致性。
track_activities 111213141516 收集有关执行命令的信息。 启用采集每个会话中当前正在执行的命令的信息,以及其命令开始执行时间的信息。
track_activity_query_size 111213141516 设置 pg_stat_activity.query 的保留大小,以字节为单位。
track_counts 111213141516 收集有关数据库活动的统计信息。
track_functions 111213141516 收集有关数据库活动的函数级统计信息。
track_io_timing 111213141516 收集数据库 I/O 活动的计时统计信息。
track_wal_io_timing 141516 收集有关 WAL I/O 活动的时间统计数据。

统计信息/监视

名称 版本 说明
compute_query_id 141516 启用查询标识符的核心计算。
log_executor_stats 111213141516 将执行程序性能统计信息写入服务器日志。
log_parser_stats 111213141516 将分析器性能统计信息写入服务器日志。
log_planner_stats 111213141516 将规划器性能统计信息写入服务器日志。
log_statement_stats 111213141516 将累积性能统计信息写入服务器日志。

统计信息/查询和索引统计信息收集器

名称 版本 说明
stats_temp_directory 11121314 将临时统计信息文件写入指定目录。

TLS

名称 版本 说明
require_secure_transport 111213141516 是否需要客户端连接到服务器来使用某种形式的安全传输。

版本和平台兼容性/其他平台和客户端

名称 版本 说明
transform_null_equals 111213141516 将“expr=NULL”视为“expr IS NULL”。 打开时,表单 expr = NULL(或 NULL = expr)的表达式被视为 expr IS NULL,也就是说,如果 expr 的计算结果为 null 值,则返回 true;否则返回 false。 expr = NULL 的正确行为是始终返回 null(未知)。

版本和平台兼容性/以前的 PostgreSQL 版本

名称 版本 说明
array_nulls 111213141516 启用数组中 NULL 元素的输入。 打开时,数组输入值中无引号的 NULL 被解释为 null 值;否则,它被按字面意义处理。
backslash_quote 111213141516 设置字符串字面量中是否允许“\”。
escape_string_warning 111213141516 警告普通字符串文本中的反斜杠转义。
lo_compat_privileges 111213141516 为针对大型对象的特权检查启用后向兼容性模式。 读取或修改大型对象时跳过特权检查,以便与 9.0 之前的 PostgreSQL 版本兼容。
operator_precedence_warning 111213 针对自 PostgreSQL 9.4 以来其含义已发生更改的构造发出警告。
quote_all_identifiers 111213141516 生成 SQL 片段时,引用所有标识符。
standard_conforming_strings 111213141516 导致“...”字符串以字面形式处理反斜杠。
synchronize_seqscans 111213141516 启用同步的顺序扫描。

预写日志/存档恢复

名称 版本 说明
archive_cleanup_command 1213141516 设置将在每次重启时执行的 shell 命令。
recovery_end_command 1213141516 设置将在恢复结束时执行一次的 shell 命令。
restore_command 1213141516 设置将调用以检索已存档 WAL 文件的 shell 命令。

预写日志/存档

名称 版本 说明
archive_command 111213141516 设置将调用以存档 WAL 文件的 shell 命令。 仅当未设置“archive_library”时,才使用此类型。
archive_library 1516 设置将调用以存档 WAL 文件的库。 空字符串指示应使用“archive_command”。
archive_mode 111213141516 允许使用“archive_command”存档 WAL 文件。
archive_timeout 111213141516 设置在强制切换到下一个 WAL 文件之前等待的时间量。

预写日志/检查点

名称 版本 说明
checkpoint_completion_target 111213141516 在检查点期间刷新脏缓冲区所用的时间(检查点间隔的分数)。
checkpoint_flush_after 111213141516 在将以前执行的写入刷新到磁盘之前所要达到的页数。
checkpoint_timeout 111213141516 设置自动 WAL 检查点之间的最长时间。
checkpoint_warning 111213141516 如果 WAL 卷触发的检查点过于频繁,则设置警告前的最大时间。 如果由于填充 WAL 段文件而导致检查点出现的频率超过此时间,则记录一条消息到服务器日志。 零将关闭警告。
max_wal_size 111213141516 设置触发检查点的 WAL 大小。
min_wal_size 111213141516 设置要将 WAL 收缩到的大小下限。

预写日志/恢复

名称 版本 说明
recovery_prefetch 1516 在恢复期间预提取引用的块。 在 WAL 中向前查找以找到对未缓存数据的引用。
wal_decode_buffer_size 1516 用于在恢复期间在 WAL 中进行预读的缓冲区大小。 在 WAL 中预读引用数据块时的最大距离。

预写日志/恢复目标

名称 版本 说明
recovery_target 1213141516 设置为“immediate”以便在达到一致状态后立即结束恢复。
recovery_target_action 1213141516 设置在达到恢复目标时要执行的操作。
recovery_target_inclusive 1213141516 设置是包含还是排除具有恢复目标的事务。
recovery_target_lsn 1213141516 设置将继续恢复的预写日志位置的 LSN。
recovery_target_name 1213141516 设置要继续恢复到的命名还原点。
recovery_target_time 1213141516 设置要继续恢复到的时间戳。
recovery_target_timeline 1213141516 指定要恢复到的时间线。
recovery_target_xid 1213141516 设置将继续恢复的事务 ID。

预写日志/设置

名称 版本 说明
commit_delay 111213141516 设置提交事务与将 WAL 刷新到磁盘之间的延迟(以微秒为单位)。
commit_siblings 111213141516 在执行“commit_delay”之前,设置所需的最小活跃并发事务数。
fsync 111213141516 强制将更新同步到磁盘。 服务器将在多个位置使用 fsync() 系统调用,以确保更新以物理方式写入磁盘。 这可确保数据库群集在作系统或硬件崩溃后恢复到一致状态。
full_page_writes 111213141516 在检查点后首次修改时,将完整页面写入 WAL。 在操作系统崩溃时,正在进行的页面写入过程可能仅部分写入到磁盘。 在恢复期间,存储在 WAL 中的行更改不足以恢复。 首次在检查点后修改页面时,此选项将它们写入WAL,从而使完全恢复成为可能。
synchronous_commit 111213141516 设置当前事务的同步级别。
wal_buffers 111213141516 设置 WAL 共享内存中的磁盘页缓冲区数。 指定 -1 将此值确定为shared_buffers的一小部分。
wal_compression 111213141516 压缩在 WAL 文件中编写的完整页面写入。
wal_init_zero 1213141516 首次使用之前,将零写入新 WAL 文件。
wal_level 111213141516 设置写入 WAL 的信息级别。
wal_log_hints 111213141516 在检查点后首次修改时,将完整页面写入 WAL,即使对于非关键修改也是如此。
wal_recycle 1213141516 通过重命名来回收 WAL 文件。
wal_skip_threshold 13141516 要 fsync 而不是写入 WAL 的新文件的最小大小。
wal_sync_method 111213141516 选择用于将 WAL 更新强制写入磁盘的方法。
wal_writer_delay 111213141516 WAL 写入器中执行 WAL 刷新之间的时间。
wal_writer_flush_after 111213141516 WAL 写入器写出的 WAL 数量,达到该数量将触发刷新。