【Patroni官方文档】复制模式
Patroni 使用 PostgreSQL 的流复制。有关流复制的更多信息,请参阅 Postgres 文档。Patroni 默认将 PostgreSQL 配置为异步复制。选择哪种复制模式取决于业务需求。请研究异步和同步复制以及其他高可用性(HA)解决方案,以确定哪种解决方案最适合您。
异步模式的持久性
在异步模式下,为确保可用性,集群可能会丢失一些已提交的事务。当主服务器发生故障或因其他原因变得不可用时,Patroni 会自动将一个足够健康的备用服务器提升为主服务器。任何尚未复制到该备用服务器的事务都会在主服务器上保留在一个“分叉的时间线”上,并且实际上无法恢复1。
可通过 maximum_lag_on_failover
参数控制可能丢失的事务数量。由于主服务器的事务日志位置不是实时采样的,因此在实际中,故障转移时丢失的数据量在最坏情况下不会超过 maximum_lag_on_failover
字节的事务日志量加上在最后 ttl
秒内写入的数据量(在平均情况下为 loop_wait/2
秒)。然而,典型的稳定状态复制延迟远低于一秒。
默认情况下,在进行领导者选举时,Patroni 不会考虑副本的当前时间线,这在某些情况下可能是不理想的行为。您可以通过将 check_timelin