在Ubuntu上部署PostgreSQL集群可以通过多种方式实现,其中一种常见的方法是使用Patroni和Pacemaker来管理高可用性和故障转移。以下是一个基本的步骤指南:
前提条件
- 两台或更多服务器:用于部署PostgreSQL集群。
- 网络配置:确保所有服务器之间可以互相通信。
- SSH访问:确保可以从主节点SSH到其他节点。
步骤指南
1. 安装必要的软件包
在所有节点上执行以下命令来安装必要的软件包:
sudo apt update
sudo apt install -y postgresql-13 postgresql-13-pgdg pacemaker patroni
2. 配置PostgreSQL
在每个节点上编辑/etc/postgresql/13/main/postgresql.conf文件,确保以下参数设置正确:
listen_addresses = '*' # 或者指定具体的IP地址
wal_level = replica
max_wal_senders = 10
wal_keep_segments = 64
hot_standby = on
编辑/etc/postgresql/13/main/pg_hba.conf文件,添加允许从其他节点连接的条目:
host replication replicator <其他节点的IP>/32 md5
host all all 0.0.0.0/0 md5
3. 初始化数据库集群
在主节点上初始化数据库集群:
sudo systemctl stop postgresql
sudo pg_createcluster 13 main --start --no-password
sudo systemctl start postgresql
4. 配置Patroni
在每个节点上创建Patroni配置文件/etc/patroni.yml,以下是一个示例配置:
scope: postgresql
name: master
namespace: /db
restapi:
listen: 0.0.0.0:8008
connect_address: <主节点的IP>
etcd:
host:
port: 2379
bootstrap:
dcs:
ttl: 30
loop_wait: 10
retry_timeout: 10
maximum_lag_on_failover: 1048576
postgresql:
use_pg_rewind: true
use_slots: true
parameters:
wal_level: replica
max_connections: 100
hot_standby: on
max_wal_senders: 10
wal_keep_segments: 64
synchronous_commit: off
synchronous_standby_names: '*'
primary_conninfo:
dbname: postgres
user: replicator
password: <复制用户的密码>
host: <当前节点的IP>
standby_conninfo:
dbname: postgres
user: replicator
password: <复制用户的密码>
host: <主节点的IP>
在备用节点上,将scope改为standby,并将name改为备用节点的名称。
5. 启动Patroni
在主节点上启动Patroni:
sudo patroni /etc/patroni.yml
在备用节点上启动Patroni:
sudo patroni /etc/patroni.yml
6. 验证集群状态
你可以通过访问主节点的Patroni REST API来验证集群状态:
curl http://<主节点的IP>:8008/master
如果一切正常,你应该会看到主节点的信息。
注意事项
- 确保所有节点的时间同步。
- 确保防火墙允许必要的端口(如5432、8008、2379等)。
- 根据实际需求调整配置文件中的参数。
通过以上步骤,你应该能够在Ubuntu上成功部署一个PostgreSQL集群,并实现高可用性和故障转移。
以上就是关于“如何在Ubuntu上部署PostgreSQL集群”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm