变更数据同步模式
功能概述
原生 PostgreSQL 流复制原理为备库不断从主库同步数据,并在备库应用每个 Wal 日志记录。PostgreSQL 高可用版-V2.0.0 在 AppCenter 集群管理控制台支持变更主备库的数据同步模式,并定制 半同步复制 可自动切换同步流模式,确保业务运行流畅性。
同步模式
支持 异步流复制、同步流复制 以及 半同步复制 模式。
-
异步流复制
异步留复制指主库在执行完事务后,立即返回结果,未判断备库是否接收和处理事务。在主库异常,而备库未接收到数据,强行主从切换后,可能造成数据丢失。
-
同步流复制
同步流复制指当主库执行完一个事务,且所有备库执行完事务后,才返回结果。若有多个备库,需要等待所有备库执行完事务才返回,保障数据完全同步,数据零丢失。
同步流复制模式下,若备库异常无法完成数据同步,将导致主库事务受阻,故该模式对业务正常运行有一定影响。
-
半同步复制
PostgreSQL 半同步复制指在开启
同步流复制的前提下,从节点异常无法完成数据同步时,主库将自动切换为异步流复制模式,确保业务不受阻塞。备库恢复正常后,主库恢复同步流复制。说明 PostgreSQL 同步流复制中备库是指
standby节点。
适用场景
PostgreSQL 集群 主实例 和 只读实例 支持数据同步模式稍有区别。
-
主实例支持半同步模式-
对于 2 个主实例的集群,使用半同步模式,允许一个节点故障,不会影响 Primary 节点的读写,但此时集群无法执行故障转移。
-
对于 3 个主实例的集群,则是增强半同步模式。允许一个节点宕机,但为了保证数据的强一致性,当两节点宕机时,会阻塞 Primary 节点的写入,此时集群为
只读。企业云平台建议使用 3 节点的主实例集群。
-
-
只读实例可以设置同步或异步模式,用户可通过参数控制只读实例的同步模式。
操作步骤
根据需求,修改配置集群配置参数 synchronous_readonly 与 fsync。详细操作参考如何修改配置参数。
参数配置说明如下。
| 参数 | 说明 |
|---|---|
synchronous_readonly |
用于控制
|
fsync |
设置为
|