内容提要
Patroni 备用集群基于级联复制,设置一个备用 leader 作为主集群的副本,其余节点复制该 leader,常用于灾难恢复、跨区域读扩展和迁移。配置需满足前提并修改参数;主集群切换时复制槽自动维护,备用集群复制不中断。提升前需比对 LSN 确保同步,建议短暂停机,再清除 standby_cluster 配置。
延伸解读
备用集群的级联复制机制
Patroni 备用集群内部采用级联复制:一个节点作为备用 leader,它实际上是主集群的副本,而备用集群中的其他节点则从该备用 leader 复制。这种结构使得备用集群可以独立管理,同时保持与主集群的数据同步。理解这一机制有助于规划灾难恢复和读扩展架构。
主集群切换时的复制连续性
当主集群发生切换或故障转移时,Patroni 会自动维护复制槽,确保备用集群的复制不中断。这意味着即使主集群的 leader 发生变化,备用集群仍能持续从新的 leader 接收数据,无需人工干预。这一特性对于高可用性要求高的场景尤为重要。
提升备用集群前的关键检查
在提升备用集群之前,必须确保主备集群完全同步。可以通过比较 patronictl list 输出中的 Receive 和 Replay LSN 来判断。如果主集群有并发写入,这种比较可能不准确,因此建议在操作期间短暂停机并停止应用。提升后,还需清除 standby_cluster 配置以完成切换。
Q&A
Patroni standby cluster 是什么?它是如何工作的?
Patroni standby cluster 是一种基于级联复制的备用集群。它有一个 standby leader 节点,该节点作为主 Patroni 集群的副本,而备用集群中的其他节点则从该 standby leader 复制。
部署 Patroni standby cluster 有哪些常见的使用场景?
常见使用场景包括:灾难恢复、跨区域读扩展、受控迁移以及不影响主生产集群的操作测试。
配置 Patroni standby cluster 需要满足哪些前提条件?
需要满足一些前提条件,但文章未具体列出。配置时需要修改参数,例如设置 standby_cluster.hosts 等。
在主集群发生 switchover 时,standby cluster 的复制会中断吗?
不会。Patroni 会在主集群发生 switchover/failover 时自动维护复制槽,因此 standby cluster 的复制不会中断。
提升 standby cluster 之前需要做哪些准备?
需要确保两个集群完全同步,可以通过比较 patronictl list 输出中的 Receive 和 Replay LSN 来验证。建议短暂停机并停止应用,然后清除 standby_cluster 配置(例如使用 patronictl edit-config --set standby_cluster=null --force)。
Patroni standby cluster 的主要优势是什么?
它提供了一种强大的机制来构建健壮的灾难恢复架构,通过维护一个完全同步的辅助集群,能够快速从重大基础设施故障中恢复,同时最小化停机时间和数据丢失。