在CentOS上搭建PostgreSQL集群,通常指的是使用Patroni和Corosync来创建一个高可用的PostgreSQL集群。以下是搭建步骤的概述:
准备工作:
安装必要的软件包: 在所有节点上安装PostgreSQL、Patroni、Corosync和Pacemaker。可以使用以下命令安装:
sudo yum install postgresql-server patroni corosync pacemaker 配置Corosync: 在每台服务器上编辑/etc/corosync/corosync.conf文件,配置集群成员信息和网络设置。例如:
totem { version: 2 cluster_name: pg_cluster transport: udpu } nodelist { node { ring0_addr: server1_ip nodeid: 1 } node { ring0_addr: server2_ip nodeid: 2 } node { ring0_addr: server3_ip nodeid: 3 } } quorum { provider: corosync_votequorum } logging { to_logfile: yes logfile: /var/log/corosync/corosync.log to_syslog: yes } 替换server1_ip、server2_ip和server3_ip为实际的IP地址。
启动并启用Corosync服务:
sudo systemctl start corosync sudo systemctl enable corosync 配置Pacemaker: 在所有节点上创建Pacemaker配置文件/etc/pacemaker/cib.xml,定义集群资源和约束。
启动并启用Pacemaker服务:
sudo systemctl start pacemaker sudo systemctl enable pacemaker 配置Patroni: 在每台服务器上创建Patroni配置文件/etc/patroni.yml,指定PostgreSQL数据目录、监听地址、认证信息等。例如:
scope: postgresql name: postgresql@server1 namespace: /db/ restapi: listen: 0.0.0.0:8008 connect_address: server1_ip etcd: host: 127.0.0.1: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: server1_ip data_dir: /var/lib/pgsql/data pg_hba: - host replication replicator 0.0.0.0/0 md5 - host all all 0.0.0.0/0 md5 authentication: replication: username: replicator password: your_password resources: - name: postgresql type: postgresql check: conninfo operators: - role: Master - role: Standby - role: Monitor - role: Promotable - role: Slave - role: Unreachable 替换server1_ip为实际的IP地址,并设置合适的用户名和密码。
启动Patroni:
sudo systemctl start patroni sudo systemctl enable patroni 验证集群状态: 使用crm_mon命令查看集群状态,确保所有资源都已正确配置并运行。
crm_mon -f 请注意,这只是一个基本的指南,实际部署时可能需要根据具体需求进行调整。在生产环境中部署之前,建议详细阅读Patroni和Corosync的官方文档,并进行充分的测试。