在CentOS上搭建PostgreSQL集群,通常是指配置一个高可用的PostgreSQL集群,以确保数据库服务的连续性和数据的一致性。以下是使用Patroni和Pacemaker搭建PostgreSQL集群的基本步骤:
安装PostgreSQL: 在所有节点上安装相同版本的PostgreSQL。
sudo yum install postgresql-server
配置PostgreSQL:
在每个节点上编辑/var/lib/pgsql/data/postgresql.conf和/var/lib/pgsql/data/pg_hba.conf文件,进行基本的配置。
初始化数据库: 在主节点上初始化数据库。
sudo systemctl start postgresql
sudo postgresql-setup --initdb
创建复制用户: 在主节点上创建一个用于复制的用户。
CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;
安装Patroni: 在所有节点上安装Patroni。
sudo yum install python3-pip
sudo pip3 install patroni
配置Patroni:
创建一个Patroni配置文件/etc/patroni.yml,并配置集群信息。
scope: postgresql
name: master
namespace: /db
restapi:
listen: 0.0.0.0:8008
connect_address: 192.168.1.101 # 主节点IP
etcd:
host: 192.168.1.101:2379 # etcd集群地址
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_wal_senders: 4
wal_keep_segments: 8
hot_standby: on
postgresql:
listen: 0.0.0.0:5432
connect_address: 192.168.1.101 # 主节点IP
data_dir: /var/lib/pgsql/data
pg_hba:
- host replication replicator 192.168.1.0/24 md5
authentication:
replication:
username: replicator
password: your_password
在其他节点上修改name和connect_address。
启动Patroni: 在主节点上启动Patroni。
sudo patroni /etc/patroni.yml
安装Pacemaker和Corosync:
sudo yum install pcs pacemaker corosync
配置Corosync:
编辑/etc/corosync/corosync.conf文件,配置集群信息。
totem {
version: 2
cluster_name: pg_cluster
transport: udpu
}
nodelist {
node {
ring0_addr: 192.168.1.101 # 主节点IP
nodeid: 1
}
node {
ring0_addr: 192.168.1.102 # 第二个节点IP
nodeid: 2
}
node {
ring0_addr: 192.168.1.103 # 第三个节点IP
nodeid: 3
}
}
quorum {
provider: corosync_votequorum
}
logging {
to_logfile: yes
logfile: /var/log/corosync/corosync.log
to_syslog: yes
}
启动并启用Corosync和Pacemaker:
sudo systemctl start corosync
sudo systemctl enable corosync
sudo systemctl start pacemaker
sudo systemctl enable pacemaker
验证集群状态:
pcs status
检查Patroni状态:
sudo systemctl status patroni
连接到数据库:
psql -h 192.168.1.101 -U replicator -d postgres
通过以上步骤,你应该能够在CentOS上成功搭建一个PostgreSQL集群。请注意,这只是一个基本的指南,实际部署时可能需要根据具体需求进行调整和优化。