在Ubuntu上部署PostgreSQL集群,通常指的是使用Patroni或Repmgr等工具来管理PostgreSQL的高可用性集群。以下是使用Patroni进行部署的基本步骤:
添加Patroni仓库:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
安装Patroni:
sudo apt-get install patroni
创建配置文件:
在每个节点上创建一个Patroni配置文件,例如/etc/patroni.yml。以下是一个基本的配置示例:
scope: postgresql
namespace: /db/
name: pg1
restapi:
listen: 0.0.0.0:8008
connect_address: 192.168.1.101 # 替换为你的节点IP
etcd:
host: 192.168.1.102 # 替换为你的etcd节点IP
port: 2379
scheme: http
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
postgresql:
listen: 0.0.0.0:5432
connect_address: 192.168.1.101 # 替换为你的节点IP
data_dir: /var/lib/postgresql/12/main
pg_hba:
- host replication replicator 192.168.1.0/24 md5
- host all all 0.0.0.0/0 md5
authentication:
replication:
username: replicator
password: your_replicator_password
superuser:
username: postgres
password: your_superuser_password
请根据你的实际情况修改配置文件中的IP地址、端口、数据目录等信息。
初始化etcd: 如果你还没有etcd集群,可以使用以下命令初始化一个:
etcd --name etcd1 --data-dir /var/lib/etcd --initial-cluster etcd1=http://192.168.1.102:2380 --initial-advertise-peer-urls http://192.168.1.102:2380 --listen-peer-urls http://192.168.1.102:2380 --listen-client-urls http://192.168.1.102:2379 --advertise-client-urls http://192.168.1.102:2379
在每个节点上启动Patroni服务:
sudo systemctl enable patroni
sudo systemctl start patroni
你可以使用以下命令来检查集群的状态:
sudo patronictl status
为了确保集群的高可用性,你可以尝试手动触发故障转移:
sudo patronictl promote pg1
然后检查其他节点是否自动成为新的主节点。
通过以上步骤,你应该能够在Ubuntu上成功部署一个PostgreSQL高可用性集群。