使用Patroni实现PostgreSQL的高可用性¶
总结
- 解决方案概述
- 集群部署
- 测试集群
PostgreSQL作为一种现代的高性能事务数据库被广泛采用。高可用性的PostgreSQL集群可以承受由网络中断、资源饱和、硬件故障、操作系统崩溃或意外重启引起的故障。这种集群通常是企业应用程序环境的关键组件,其中4个9的可用性是最低要求。
本文档提供了如何使用Percona PostgreSQL和设置和测试高可用性、单主、三节点集群的说明雷竞技下载官网Patroni。
高可用性概述
有一些方法可以实现PostgreSQL的高可用性:
- 共享磁盘故障切换,
- 文件系统复制、
- trigger-based复制,
- statement-based复制,
- 逻辑复制和
- 预写日志(WAL)发送。
最近,PostgreSQL的高可用性是最常用的流复制。
流复制¶
流复制是预写日志传送的一部分,其中对wal的更改立即对备用副本可用。使用这种方法,备用实例始终是来自主节点的最新更改,并且可以在发生故障转移时承担主实例的角色。
为什么本地流复制是不够的¶
尽管PostgreSQL中的本机流复制支持故障转移到主节点,但它缺乏真正高可用性解决方案所期望的一些关键特性。这些包括:
- 在故障转移期间,没有基于共识的“领导”节点提升
- 没有足够的能力监视集群状态raybet雷竞技竞猜在线官网
- 无法自动将故障的主节点恢复到集群
- 手动或计划切换不容易管理
为了解决这些缺点,有许多第三方的、开源的PostgreSQL扩展。数据库管理员面临的挑战是为当前场景选择正确的实用程序。
雷竞技下载官网Percona Distribution for PostgreSQL通过提供Patroni扩展实现PostgreSQL高可用性。
Patroni¶
Patroni提供了一种基于模板的方法来创建高可用的PostgreSQL集群。它运行在PostgreSQL流复制进程之上,集成了看门狗功能来检测失败的主节点,并采取纠正措施来防止停机。Patroni还提供了一个可插拔的配置存储来管理分布式、多节点集群配置,并提供了REST api来监视和管理集群。raybet雷竞技竞猜在线官网还有一个命令行实用程序称为patronictl这有助于管理切换和故障场景。
建筑布局¶
下图展示了一个单领导节点的三节点PostgreSQL集群的架构。

组件¶
以下是组成部分:
- 三个PosgreSQL节点:
node1,node2和node3 - 专用HAProxy节点
HAProxy-demo。HAProxy是一种开源负载平衡软件,通过它可以路由到集群的客户端连接。 - ETCD -一种分布式配置存储
- 一个看门狗工具,用于在可接受的时间范围内检测不健康的节点。
部署¶
使用下面的链接导航到与您的操作系统相关的安装说明
测试¶
看到测试PostgreSQL集群关于如何测试您的PostgreSQL集群的复制,故障,切换的指导方针。
创建:2021年12月15日