在CentOS上进行PostgreSQL的集群部署,通常指的是设置PostgreSQL的高可用性解决方案,如使用Patroni或Repmgr来管理PostgreSQL集群。以下是使用Patroni进行PostgreSQL集群部署的基本步骤:
在所有节点上安装Patroni:
sudo yum install -y python3-pip
sudo pip3 install patroni
在每个节点上创建一个Patroni配置文件,例如/etc/patroni.yml
。以下是一个基本的配置示例:
scope: postgres
name: node1 # 每个节点的name必须唯一
namespace: /db
restapi:
listen: 0.0.0.0
connect_address: <node_ip> # 替换为节点的IP地址
listen_port: 8008
etcd:
host: <etcd_ip>:2379 # 替换为etcd集群的IP地址和端口
data_dir: /var/lib/postgresql/data
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
synchronous_commit: off
synchronous_standby_names: '*'
wal_keep_segments: 8
max_wal_senders: 4
wal_sender_timeout: 60
max_replication_slots: 4
track_commit_timestamp: on
hot_standby_feedback: on
start: true
stop: true
在每个节点上启动Patroni服务:
sudo systemctl enable patroni
sudo systemctl start patroni
你可以使用以下命令来检查集群的状态:
sudo patronictl status
或者访问Patroni的REST API来获取集群状态:
curl http://<node_ip>:8008/v2/cluster
为了确保集群的高可用性,你可以手动触发一次故障转移测试。例如,停止主节点上的PostgreSQL服务:
sudo systemctl stop postgresql
Patroni会自动检测到主节点的故障,并触发一次故障转移,将一个备用节点提升为新的主节点。
通过以上步骤,你可以在CentOS上部署一个基本的PostgreSQL集群。根据实际需求,你可能需要进一步调整配置和优化性能。