Keepalived + PG 复制实现 PostgreSQL 高可用

本方案利用 Keepalived 的 VRRP 协议和 PostgreSQL 的流复制功能,实现数据库服务的自动故障转移。

架构:

  • 主库和备库均安装 PostgreSQL 并配置流复制。
  • Keepalived 部署在主备服务器,通过 VRRP 协议创建虚拟 IP 地址 (VIP)。
  • 应用程序连接 VIP 进行数据库操作。

工作原理:

  1. 正常情况下,主库持有 VIP,应用程序连接 VIP 访问主库。
  2. 主库故障时,Keepalived 检测到故障,将 VIP 转移到备库。
  3. 应用程序连接新的 VIP,访问备库进行数据库操作。

优势:

  • 自动故障转移,提高数据库可用性。
  • 配置简单,易于维护。

不足:

  • 需要额外部署 Keepalived 软件。
  • 故障转移过程中可能会有短暂的服务中断。

适用场景:

  • 对数据库可用性要求较高的场景。
  • 预算有限,无法使用更昂贵的商业高可用解决方案。