↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

Wiki / 配置参数

synchronous_standby_names

英文手册覆盖始于 PostgreSQL 7.4. 来源历史与运行验证各自保留独立版本边界。

当前阅读 PG 18·选择有来源记录的版本

boot val
未知
category
Replication / Primary Server
context
sighup
documented
true
enumvals
未知
extra desc
未知
lang
en
max val
未知
metadata version
18
min val
未知
name
synchronous_standby_names
short desc
Number of synchronous standbys and list of names of potential synchronous ones.
source
pg-settings-source-snapshot
unit
未知
vartype
string

版本定义 PG 18

如第 26.2.8 节所述,这个参数指定一个支持同步复制的备库的列表。将有一个或多个活动的同步备库,在这些备库确认收到它们的数据之后,等待提交的事务将被允许继续下去。同步备库是那些名字出现在这个列表中,并且当前已连接并且正在实时流式传输数据(如pg_stat_replication视图中streaming的状态所示)的服务器。指定多于一台同步备库可以得到非常高的可用性并且能防止数据丢失。

用于这一目的的备库的名称是其application_name设置,它在备库的连接信息中设置。对于物理复制备库,应在 primary_conninfo 设置中指定。若已设置cluster_name,则默认使用其值;否则默认值为 walreceiver。对于逻辑复制,可以在订阅的连接信息中设置,默认值为订阅名称。对于其他复制流消费者,请参考其文档。

这个参数使用下面的语法之一来指定一个备库列表:

[FIRST] num_sync ( standby_name [, ...] )
ANY num_sync ( standby_name [, ...] )
standby_name [, ...]

其中num_sync是事务需要等待其回复的同步备库的数量,standby_name是一个备库的名称。num_sync 必须是大于零的整数。FIRST以及ANY指定从所列服务器中选取同步备库的方法。

关键词FIRST加上num_sync指定一种基于优先级的同步复制,并且会让事务提交等待,直到它们的WAL记录被复制到基于优先级选择的num_sync台同步备库上为止。例如,设置FIRST 3 (s1, s2, s3, s4)将导致每次提交都等待来自三台较高优先级的备库的答复,这三台备库将从备库s1、s2、s3以及s4中选出。在该列表中出现较早的备库将被给予较高的优先级,并且将被考虑为同步备库。列表中出现的其他备库表示潜在的同步备库。如果当前的任何同步备库因为某种原因断开连接,它将立刻被下一个最高优先级的备库替代。关键词FIRST是可选的。

关键词ANY加上num_sync指定一种基于法定人数的同步复制,并且会让事务提交等待,直到它们的WAL记录被复制到所列出备库中的至少num_sync台上为止。例如,设置ANY 3 (s1, s2, s3, s4)将导致每次提交会在收到s1、s2、s3以及s4中任意三台备库的回答后立刻继续下去。

FIRST和ANY是大小写不敏感的。如果这些关键词被用作备库的名字,其standby_name必须被放在双引号内。

PostgreSQL版本 9.6 之前使用过第三种语法,目前也仍然支持。它与使用FIRST且num_sync等于1的第一种语法相同。例如,FIRST 1 (s1, s2)和s1, s2具有相同的含义:s1或者s2会被选中作为同步备库。

特殊项*匹配任意备库名称。

没有机制强制备库名称的唯一性。在出现重复的情况下,匹配的备库之一将被认为是较高优先级,不过无法弄清到底是哪一个。

注意

每一个standby_name都应该具有合法 SQL 标识符的形式,除非它是*。如果必要你可以使用双引号。但是注意在比较standby_name和备库应用程序名称时是大小写不敏感的(不管有没有双引号)。

如果这里没有指定同步备库名称,那么不启用同步复制并且事务提交将不会等待复制。这是默认的配置。即便当同步复制被启用时,个体事务也可以被配置为不等待复制,做法是将synchronous_commit参数设置为local或off。

这个参数只能在postgresql.conf文件中或通过服务器命令行进行设置。

比较版本

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · english-manuals:2a70e0cbdf2eade0723aede699df95514d8d955a23968c1a8413405504adf356

正文语言: zh-Hans · 2026-09-11@29c86d9