centos

centos postgresql集群怎么搭建

小樊
39
2025-08-15 00:02:51
栏目: 云计算

在CentOS上搭建PostgreSQL集群,通常指的是使用Patroni或者Repmgr这样的工具来管理PostgreSQL的高可用性。以下是使用Patroni搭建PostgreSQL集群的基本步骤:

  1. 准备工作

    • 确保你有三台或以上的服务器,每台服务器上都安装了PostgreSQL。
    • 每台服务器上的PostgreSQL版本应该相同。
    • 确保所有服务器之间可以互相通信。
  2. 安装必要的软件包: 在所有服务器上安装PostgreSQL和Patroni。可以使用yum或者源码编译安装。

    sudo yum install postgresql-server postgresql-contrib patroni
    
  3. 配置PostgreSQL: 在每台服务器上编辑/var/lib/pgsql/data/postgresql.conf文件,确保以下参数被正确设置:

    listen_addresses = '*' # 或者指定IP地址
    wal_level = replica
    max_wal_senders = 4
    wal_keep_segments = 8
    hot_standby = on
    

    编辑/var/lib/pgsql/data/pg_hba.conf文件,添加信任规则以便节点间可以无密码通信:

    host    replication     replicator     192.168.1.0/24    md5
    

    替换192.168.1.0/24为你的服务器IP段。

  4. 初始化Patroni: 在其中一台服务器上初始化Patroni配置文件/etc/patroni.yml。以下是一个基本的配置示例:

    scope: postgresql
    name: postgresql
    namespace: /db/
    restapi:
      listen: 0.0.0.0:8008
      connect_address: 192.168.1.100 # 替换为你的IP地址
    etcd:
      host: 192.168.1.101 # 替换为你的etcd服务器IP地址
      port: 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: 127.0.0.1
      data_dir: /var/lib/pgsql/data
      pg_hba:
      - host replication replicator 192.168.1.0/24 md5
      authentication:
        replication:
          username: replicator
          password: yourpassword # 替换为你的密码
      parameters:
        max_connections: 100
        unix_socket_directories: '/var/run/postgresql'
    

    确保替换配置文件中的IP地址、etcd服务器地址、用户名和密码为你自己的设置。

  5. 启动Patroni: 在初始化了Patroni配置的服务器上启动Patroni服务:

    sudo systemctl start patroni
    sudo systemctl enable patroni
    
  6. 验证集群状态: 使用Patroni提供的API来检查集群状态:

    curl http://192.168.1.100:8008/postgres/status
    

    替换192.168.1.100为你的Patroni服务的IP地址。

  7. 添加更多节点: 如果你需要添加更多的PostgreSQL节点到集群中,你可以在其他服务器上重复步骤3到步骤5,并确保它们的postgresql.confpg_hba.conf文件与主节点一致。

请注意,这只是一个基本的指南,实际的部署可能会更复杂,需要考虑网络配置、防火墙规则、存储解决方案(如SAN或分布式文件系统)等因素。在生产环境中部署之前,建议详细阅读Patroni的官方文档,并进行充分的测试。

0
看了该问题的人还看了