返回

PostgreSQL HA 入门指南:借助 bitnami/postgresql-repmgr 轻松设置双活 PostgreSQL 集群

后端

PostgreSQL HA 概述

PostgreSQL 高可用性(HA)是指通过在多个节点上运行 PostgreSQL 实例来提高数据库的可用性和可靠性。这可以防止单点故障,并确保在发生故障时,数据库仍能继续运行并提供服务。

PostgreSQL HA 集群解决方案包括 PostgreSQL 复制管理器(replication manager),这是一种用于管理 PostgreSQL 集群的工具。它可以帮助您轻松地配置和管理主从复制,故障转移,以及读写分离等功能。

使用 bitnami/postgresql-repmgr 镜像设置 PostgreSQL HA 集群

准备基础设施

  1. 准备两台或多台服务器或虚拟机。
  2. 在每台服务器或虚拟机上安装 CentOS 7 或 Ubuntu 18.04 操作系统。
  3. 在每台服务器或虚拟机上安装 Docker。

安装 bitnami/postgresql-repmgr 镜像

  1. 在每台服务器或虚拟机上运行以下命令:
docker pull bitnami/postgresql-repmgr:latest
  1. 创建一个名为 postgresql-ha 的 Docker 网络:
docker network create postgresql-ha

配置 PostgreSQL 主节点

  1. 在其中一台服务器或虚拟机上运行以下命令:
docker run -d --name postgresql-master --network postgresql-ha -e POSTGRESQL_REPLICATION_MODE=master -e POSTGRESQL_PASSWORD=my-password bitnami/postgresql-repmgr:latest
  1. 等待 PostgreSQL 主节点启动并运行。

配置 PostgreSQL 从节点

  1. 在其他服务器或虚拟机上运行以下命令:
docker run -d --name postgresql-slave --network postgresql-ha -e POSTGRESQL_REPLICATION_MODE=slave -e POSTGRESQL_MASTER_HOST=postgresql-master -e POSTGRESQL_PASSWORD=my-password bitnami/postgresql-repmgr:latest
  1. 等待 PostgreSQL 从节点启动并运行。

验证 PostgreSQL HA 集群

  1. 在 PostgreSQL 主节点上运行以下命令:
psql -U postgres -h localhost -p 5432
  1. 在 PostgreSQL 从节点上运行以下命令:
psql -U postgres -h localhost -p 5432
  1. 在两台服务器或虚拟机上都应能成功连接到 PostgreSQL 数据库。

测试 PostgreSQL HA 集群

  1. 在 PostgreSQL 主节点上停止 PostgreSQL 服务:
docker stop postgresql-master
  1. 在 PostgreSQL 从节点上检查 PostgreSQL 服务是否仍在运行:
docker ps
  1. PostgreSQL 从节点应继续运行并提供服务。

  2. 在 PostgreSQL 主节点上启动 PostgreSQL 服务:

docker start postgresql-master
  1. 在 PostgreSQL 主节点上检查 PostgreSQL 服务是否正在运行:
docker ps
  1. PostgreSQL 主节点应继续运行并提供服务。

故障转移测试

  1. 在 PostgreSQL 主节点上停止 PostgreSQL 服务:
docker stop postgresql-master
  1. 等待 PostgreSQL 从节点接管主节点的角色。

  2. 在 PostgreSQL 从节点上检查 PostgreSQL 服务是否正在运行:

docker ps
  1. PostgreSQL 从节点应继续运行并提供服务。

  2. 在 PostgreSQL 主节点上启动 PostgreSQL 服务:

docker start postgresql-master
  1. 等待 PostgreSQL 主节点重新加入集群。

  2. 在 PostgreSQL 主节点上检查 PostgreSQL 服务是否正在运行:

docker ps
  1. PostgreSQL 主节点应继续运行并提供服务。

总结

通过使用 bitnami/postgresql-repmgr 镜像,您可以轻松地设置 PostgreSQL HA 集群。这种集群解决方案可以确保您的数据库始终保持可用和可靠,即使在发生故障时也能继续运行并提供服务。