在Debian上进行PostgreSQL的集群部署,通常指的是使用Patroni和Pacemaker来创建一个高可用的PostgreSQL集群。以下是基本的步骤指南:
更新系统包列表
sudo apt update
安装必要的软件包
sudo apt install -y pacemaker patroni postgresql-12
配置Pacemaker
编辑/etc/corosync/corosync.conf文件,配置集群节点信息、网络设置等。
启动并启用Pacemaker服务
sudo systemctl start pacemaker
sudo systemctl enable pacemaker
验证Pacemaker状态
sudo crm status
创建Patroni配置文件
在每台服务器上创建一个Patroni配置文件,例如/etc/patroni.yml。
scope: postgresql
name: node1 # 每台服务器的name需要唯一
namespace: /db
restapi:
listen: 0.0.0.0:8008
connect_address: <服务器IP>
etcd:
host: <etcd服务器IP>:2379
scheme: https
user: <etcd用户>
password: <etcd密码>
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: <服务器IP>
data_dir: /var/lib/postgresql/12/main
pg_hba:
- host replication replicator <允许连接的IP>/32 md5
- host all all 0.0.0.0/0 md5
authentication:
replication:
username: replicator
password: <复制用户密码>
superuser:
username: postgres
password: <超级用户密码>
请根据实际情况修改name、connect_address、etcd配置、postgresql参数等。
启动Patroni 在每台服务器上启动Patroni服务:
sudo systemctl start patroni
sudo systemctl enable patroni
检查Patroni状态
sudo patronictl status
检查Pacemaker状态
sudo crm status
停止主节点上的PostgreSQL服务
sudo systemctl stop postgresql
观察集群状态变化
使用sudo crm status和sudo patronictl status查看集群是否自动进行了故障转移。
通过以上步骤,你应该能够在Debian上成功部署一个PostgreSQL集群。根据实际需求,可能还需要进行更多的配置和优化。