在Debian系统上搭建PostgreSQL集群通常涉及使用Patroni来管理高可用性,并结合Corosync和Pacemaker进行集群管理和故障转移。以下是详细的搭建步骤:
1. 安装必要的软件包
首先,更新你的包列表并安装必要的软件包:
sudo apt update
sudo apt install -y corosync pacemaker postgresql-13-pgpool2 patroni
2. 配置Corosync和Pacemaker
编辑Corosync配置文件
sudo nano /etc/corosync/corosync.conf
添加以下内容:
totem {
version: 2
cluster_name: pg_cluster
transport: udpu
}
nodelist {
node {
ring0_addr: your_node_ip
nodeid: 1
}
node {
ring0_addr: another_node_ip
nodeid: 2
}
}
quorum {
provider: corosync_votequorum
}
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
}
启动并启用Corosync服务:
sudo systemctl start corosync
sudo systemctl enable corosync
配置Pacemaker
编辑Pacemaker配置文件:
sudo nano /etc/pacemaker/cib.xml
确保配置文件中包含你的节点和资源信息。启动并启用Pacemaker服务:
sudo systemctl start pacemaker
sudo systemctl enable pacemaker
3. 配置Patroni
创建Patroni配置文件:
sudo nano /etc/patroni.yml
添加以下内容(根据你的实际情况修改):
scope: postgresql
name: your_node_name
namespace: /db/
restapi:
listen: 0.0.0.0:8008
connect_address: your_node_ip:8008
etcd:
host: 192.168.1.2: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
postgresql:
listen: 0.0.0.0:5432
data_dir: /var/lib/postgresql/13/main
pg_hba:
- host replication replicator 192.168.1.0/24 md5
authentication:
replication:
username: replicator
password: yourpassword
superuser:
username: postgres
password: yourpassword
启动Patroni服务:
sudo systemctl enable patroni
sudo systemctl start patroni
4. 验证集群状态
检查Patroni和Pacemaker的状态:
sudo systemctl status patroni
sudo systemctl status pacemaker
使用 crm_mon 命令查看集群状态:
sudo crm_mon
注意事项
- 确保所有节点的时间同步。
- 根据实际情况调整配置文件中的参数。
- 在生产环境中,确保所有敏感信息(如密码)都安全存储。
通过以上步骤,你应该能够在Debian系统上成功搭建一个PostgreSQL高可用集群。