debian

Debian下PostgreSQL集群怎么搭建

小樊
52
2025-04-16 09:28:28
栏目: 云计算

在Debian系统上搭建PostgreSQL集群,通常指的是使用Patroni来管理PostgreSQL的高可用性。Patroni是一个用于管理PostgreSQL集群的工具,它可以确保数据库的高可用性和故障转移。以下是在Debian上使用Patroni搭建PostgreSQL集群的基本步骤:

  1. 安装必要的软件包: 首先,确保你的Debian系统是最新的,并且已经安装了apt-transport-httpssoftware-properties-common包,这些包允许你添加新的软件源。

    sudo apt-get update
    sudo apt-get install -y apt-transport-https software-properties-common
    
  2. 添加Patroni的APT仓库: 添加Patroni的官方APT仓库到你的系统中。

    sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
    
  3. 导入Patroni的GPG密钥: 导入Patroni仓库的GPG密钥以确保软件包的安全性。

    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    
  4. 安装Patroni: 安装Patroni软件包。

    sudo apt-get update
    sudo apt-get install patroni
    
  5. 配置Patroni: 创建Patroni的配置文件,通常位于/etc/patroni.yml。你需要为每个节点创建一个配置块,并确保它们指向正确的数据库和网络设置。

    scope: postgresql
    name: node1.example.com
    namespace: /db/
    restapi:
      listen: 0.0.0.0
      connect_address: 192.168.1.101
    etcd:
      host: 192.168.1.101
      port: 2379
      ttl: 30
      loop_wait: 10
      retry_timeout: 10
      maximum_lag_on_failover: 1048576
      postgresql:
        use_pg_rewind: true
        use_slots: true
        parameters:
          wal_level: hot_standby
    postgresql:
      listen: 0.0.0.0
      connect_address: 192.168.1.101
      data_dir: /var/lib/postgresql/9.6/main
      pg_hba:
      - host    replication     replicator     192.168.1.0/24            md5
      - host    all             all             0.0.0.0/0               md5
      authentication:
        replication:
          username: replicator
          password: yourpassword
        superuser:
          username: postgres
          password: yourpassword
    

    请根据你的实际情况修改上述配置,包括IP地址、数据库版本、数据目录、用户和密码等。

  6. 启动Patroni: 使用systemd启动Patroni服务。

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

    curl http://192.168.1.101:8008/postgres/status/
    

请注意,上述步骤是一个基本的指南,实际部署时可能需要更多的配置和调整,例如设置防火墙规则、监控和日志记录等。此外,确保在生产环境中使用SSL加密通信,并且对敏感信息进行适当的保护。

0
看了该问题的人还看了