synchronous_standby_names

一个命名同步备机服务器的系统参数

synchronous_standby_names 是一个 配置参数,用于指定支持同步复制的备机服务器列表。

synchronous_standby_namesPostgreSQL 9.1 中添加。

默认值

synchronous_standby_names 的默认值为:''(空字符串)

用法

默认情况下,PostgreSQL 的流式复制是异步的,这意味着如果主服务器崩溃,一些提交到主服务器的事务可能尚未复制到备机。

如果通过在 synchronous_standby_names 中指定一个或多个备机的名称来启用同步复制,则主服务器上的事务将不会被标记为已提交,直到它们在至少一个备机上得到确认。这为数据提供了额外的保护,但可能会导致提交速度变慢。

请注意,与大多数 GUC 不同,synchronous_standby_names 可以使用类似 SQL 的语法进行配置,以细粒度地指定同步复制行为。以下部分描述了不同类型的语法。

基本语法

原始的基本语法只是一个用逗号分隔的备机名称列表

    standy_name[, ...]

将从该列表中选择一个备机作为同步备机。选择优先级由列表中名称的顺序决定。此语法从 PostgreSQL 9.1 开始可用。

示例配置

   synchronous_standby_names='node2,node3'

[FIRST] num_sync(...) 语法

PostgreSQL 9.6 开始,可以使用此语法指定需要从其中确认提交的主服务器上的提交之前,需要多少个同步备机确认。

   [FIRST] num_sync (standy_name[, ...])

其中 num_sync 是一个整数,指定从提供的列表中选择的同步备机的数量。

关键字 FIRST(从 PostgreSQL 10 开始可用)是可选的,并且区分大小写。

示例配置

   synchronous_standby_names='FIRST 2(node2,node3,node4)'

这意味着需要两个指定的三个备机可用。备机根据其指定的顺序进行选择,即列表中名称出现较早的备机具有更高的优先级,并将被视为同步备机。其他备机将被视为潜在的同步备机。

请注意,num_sync 值为 1 等效于原始的基本语法,即

   synchronous_standby_names='1(node2,node3)'

等效于上一节中的示例。

ANY num_sync(...) 语法

PostgreSQL 10 开始,可以使用 ANY 关键字指定基于仲裁的同步复制

   ANY num_sync (standy_name[, ...])

这要求在事务提交之前,至少有指定的数量的命名备机确认复制。

关键字 ANY 区分大小写。

示例配置

   synchronous_standby_names='ANY 2(node2,node3,node4)'

备机命名

synchronous_standby_names 中指定的备机名称对应于在各个备机用于连接主服务器的 conninfo 字符串中设置的 application_name 参数。如果未显式设置,则将使用备机的 cluster_namePostgreSQL 12 及更高版本),否则将使用字符串 walreceiver。备机连接使用的实际 application_name 可以从备机 pg_stat_replication 条目中相同名称的列中确定。

请注意,在 synchronous_standby_names 中指定的备机名称将被视为不区分大小写。

可以提供通配符字符 * 来匹配 pg_stat_replication 中存在的任何备机的 application_name

覆盖 synchronous_standby_names

要覆盖同步复制,各个事务可以将 synchronous_commit 设置为 localoff

按 PostgreSQL 版本分列的详细信息

synchronous_standby_names (PostgreSQL 17)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 16)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 15)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 14)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 13)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 12)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 11)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 10)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 9.6)

设置
单位  
类别 复制 / 主服务器
简短描述 同步备机的数量以及潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 9.5)

设置
单位  
类别 复制 / 主服务器
简短描述 潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  
待重启 false

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 9.4)

设置
单位  
类别 复制 / 主服务器
简短描述 潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 9.3)

设置
单位  
类别 复制 / 主服务器
简短描述 潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 9.2)

设置
单位  
类别 复制 / 主服务器
简短描述 潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  

文档: synchronous_standby_names

synchronous_standby_names (PostgreSQL 9.1)

设置
单位  
类别 复制 / 主服务器
简短描述 潜在同步备机的名称列表。
额外描述  
上下文 sighup
变量类型 字符串
来源 默认值
最小值  
最大值  
枚举值  
启动值
重置值
源文件  
源代码行  

文档: synchronous_standby_names

更改历史记录

分类

GUC 配置项复制事务

另请参阅

synchronous_commitapplication_namecluster_namepg_stat_replication

反馈

提交任何关于 "synchronous_standby_names" 的评论、建议或更正 此处