返回
PostgreSQL HA 入门指南:借助 bitnami/postgresql-repmgr 轻松设置双活 PostgreSQL 集群
后端
2023-09-18 05:07:27
PostgreSQL HA 概述
PostgreSQL 高可用性(HA)是指通过在多个节点上运行 PostgreSQL 实例来提高数据库的可用性和可靠性。这可以防止单点故障,并确保在发生故障时,数据库仍能继续运行并提供服务。
PostgreSQL HA 集群解决方案包括 PostgreSQL 复制管理器(replication manager),这是一种用于管理 PostgreSQL 集群的工具。它可以帮助您轻松地配置和管理主从复制,故障转移,以及读写分离等功能。
使用 bitnami/postgresql-repmgr 镜像设置 PostgreSQL HA 集群
准备基础设施
- 准备两台或多台服务器或虚拟机。
- 在每台服务器或虚拟机上安装 CentOS 7 或 Ubuntu 18.04 操作系统。
- 在每台服务器或虚拟机上安装 Docker。
安装 bitnami/postgresql-repmgr 镜像
- 在每台服务器或虚拟机上运行以下命令:
docker pull bitnami/postgresql-repmgr:latest
- 创建一个名为
postgresql-ha
的 Docker 网络:
docker network create postgresql-ha
配置 PostgreSQL 主节点
- 在其中一台服务器或虚拟机上运行以下命令:
docker run -d --name postgresql-master --network postgresql-ha -e POSTGRESQL_REPLICATION_MODE=master -e POSTGRESQL_PASSWORD=my-password bitnami/postgresql-repmgr:latest
- 等待 PostgreSQL 主节点启动并运行。
配置 PostgreSQL 从节点
- 在其他服务器或虚拟机上运行以下命令:
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
- 等待 PostgreSQL 从节点启动并运行。
验证 PostgreSQL HA 集群
- 在 PostgreSQL 主节点上运行以下命令:
psql -U postgres -h localhost -p 5432
- 在 PostgreSQL 从节点上运行以下命令:
psql -U postgres -h localhost -p 5432
- 在两台服务器或虚拟机上都应能成功连接到 PostgreSQL 数据库。
测试 PostgreSQL HA 集群
- 在 PostgreSQL 主节点上停止 PostgreSQL 服务:
docker stop postgresql-master
- 在 PostgreSQL 从节点上检查 PostgreSQL 服务是否仍在运行:
docker ps
-
PostgreSQL 从节点应继续运行并提供服务。
-
在 PostgreSQL 主节点上启动 PostgreSQL 服务:
docker start postgresql-master
- 在 PostgreSQL 主节点上检查 PostgreSQL 服务是否正在运行:
docker ps
- PostgreSQL 主节点应继续运行并提供服务。
故障转移测试
- 在 PostgreSQL 主节点上停止 PostgreSQL 服务:
docker stop postgresql-master
-
等待 PostgreSQL 从节点接管主节点的角色。
-
在 PostgreSQL 从节点上检查 PostgreSQL 服务是否正在运行:
docker ps
-
PostgreSQL 从节点应继续运行并提供服务。
-
在 PostgreSQL 主节点上启动 PostgreSQL 服务:
docker start postgresql-master
-
等待 PostgreSQL 主节点重新加入集群。
-
在 PostgreSQL 主节点上检查 PostgreSQL 服务是否正在运行:
docker ps
- PostgreSQL 主节点应继续运行并提供服务。
总结
通过使用 bitnami/postgresql-repmgr 镜像,您可以轻松地设置 PostgreSQL HA 集群。这种集群解决方案可以确保您的数据库始终保持可用和可靠,即使在发生故障时也能继续运行并提供服务。