为什么在集群PSQL中有3个节点的一个节点 - sync_state = sync和下一个节点sync_state = async?

问题描述:

我想PostgreSQL同步流数据库复制状态=同步。为什么在集群PSQL中有3个节点的一个节点 - sync_state = sync和下一个节点sync_state = async?

我部署了3节点的PostgreSQL集群并写入同步类型 - 同步。但是,当我检查类型SELECT * FROM pg_stat_replication; - 我得到第一个节点 - sync_state = sync,和其他async,什么是?为什么它的两种不同类型?

+0

'show synchronous_standby_names' on master?.. –

对于PostgreSQL中的同步流式复制,主服务器上的提交被延迟,直到其中一台备用服务器收到相应的WAL信息(其确切含义可用synchronous_commit配置)。

首先确认接收WAL信息的备用服务器是sync_state'sync',另一个将是'async'

+0

但我认为在新版本9.6中可能会有3个节点同步。 您对此有何看法? –

+0

是的,但只有当['synchronous_standby_names'](https://www.postgresql.org/docs/current/static/runtime-config-replication.html#GUC-SYNCHRONOUS-STANDBY-NAMES)配置适当时,即启动括号前有一个数字。请注意,如果您有一个同步复制系统,其中* all *的所有备用数据库都是同步的,则您的可用性将* * * - 如果任何备用数据库失败,整个系统将变为不可用状态。 –