centos

centos postgresql集群搭建方法

小樊
38
2025-10-15 14:24:54
栏目: 云计算

在CentOS上搭建PostgreSQL集群,通常是指配置一个高可用的PostgreSQL集群,以确保数据库服务的连续性和数据的一致性。以下是使用Patroni和Pacemaker搭建PostgreSQL集群的基本步骤:

准备工作

  1. 安装PostgreSQL: 在所有节点上安装相同版本的PostgreSQL。

    sudo yum install postgresql-server
    
  2. 配置PostgreSQL: 在每个节点上编辑/var/lib/pgsql/data/postgresql.conf/var/lib/pgsql/data/pg_hba.conf文件,进行基本的配置。

  3. 初始化数据库: 在主节点上初始化数据库。

    sudo systemctl start postgresql
    sudo postgresql-setup --initdb
    
  4. 创建复制用户: 在主节点上创建一个用于复制的用户。

    CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;
    

安装和配置Patroni

  1. 安装Patroni: 在所有节点上安装Patroni。

    sudo yum install python3-pip
    sudo pip3 install patroni
    
  2. 配置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
    

    在其他节点上修改nameconnect_address

  3. 启动Patroni: 在主节点上启动Patroni。

    sudo patroni /etc/patroni.yml
    

安装和配置Pacemaker

  1. 安装Pacemaker和Corosync

    sudo yum install pcs pacemaker corosync
    
  2. 配置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
    }
    
  3. 启动并启用Corosync和Pacemaker

    sudo systemctl start corosync
    sudo systemctl enable corosync
    sudo systemctl start pacemaker
    sudo systemctl enable pacemaker
    
  4. 验证集群状态

    pcs status
    

验证集群

  1. 检查Patroni状态

    sudo systemctl status patroni
    
  2. 连接到数据库

    psql -h 192.168.1.101 -U replicator -d postgres
    

通过以上步骤,你应该能够在CentOS上成功搭建一个PostgreSQL集群。请注意,这只是一个基本的指南,实际部署时可能需要根据具体需求进行调整和优化。

0
看了该问题的人还看了