首页主机资讯PostgreSQL在Ubuntu上的高可用性如何搭建

PostgreSQL在Ubuntu上的高可用性如何搭建

时间2025-11-05 15:09:04发布访客分类主机资讯浏览1002
导读:在Ubuntu上搭建PostgreSQL的高可用性集群,可以使用多种方法。以下是使用Patroni和Keepalived来实现高可用性的步骤: 1. 安装必要的软件包 首先,更新你的Ubuntu系统并安装必要的软件包: sudo apt-g...

在Ubuntu上搭建PostgreSQL的高可用性集群,可以使用多种方法。以下是使用Patroni和Keepalived来实现高可用性的步骤:

1. 安装必要的软件包

首先,更新你的Ubuntu系统并安装必要的软件包:

sudo apt-get update
sudo apt-get install -y postgresql-12 postgresql-12-pgpool2 patroni keepalived

2. 配置PostgreSQL

编辑PostgreSQL的配置文件/etc/postgresql/12/main/postgresql.conf,确保以下参数设置正确:

listen_addresses = '*'  # 监听所有地址
wal_level = replica      # 设置为replica以支持流复制
max_wal_senders = 10     # 最大WAL发送者数量
wal_keep_segments = 64   # 保留的WAL段数量

编辑/etc/postgresql/12/main/pg_hba.conf文件,添加以下行以允许从其他节点进行连接:

host    replication     replicator     192.168.1.0/24       md5

3. 配置Patroni

创建Patroni配置文件/etc/patroni.yml,内容如下:

scope: postgres
namespace: /db/
name: pg1

restapi:
  listen: 0.0.0.0:8008
  connect_address: 192.168.1.101

etcd:
  host: 192.168.1.102
  port: 2379

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: 192.168.1.101
  data_dir: /var/lib/postgresql/12/main
  pg_hba:
  - host replication replicator 192.168.1.0/24 md5
  authentication:
    replication:
      username: replicator
      password: your_replicator_password

4. 配置Keepalived

创建Keepalived配置文件/etc/keepalived/keepalived.conf,内容如下:

vrrp_script chk_pg {

    script "killall -0 postgresql"
    interval 2
    weight 2
}


vrrp_instance VI_1 {

    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1

    authentication {

        auth_type PASS
        auth_pass your_keepalived_password
    }


    virtual_ipaddress {

        192.168.1.100
    }


    track_script {

        chk_pg
    }

}
    

5. 启动服务

启动Patroni和Keepalived服务:

sudo systemctl enable patroni
sudo systemctl start patroni

sudo systemctl enable keepalived
sudo systemctl start keepalived

6. 验证高可用性

你可以通过停止主节点上的PostgreSQL服务来验证高可用性:

sudo systemctl stop postgresql

此时,Patroni会自动选举一个新的主节点,并将虚拟IP地址切换到新的主节点上。

注意事项

  1. 网络配置:确保所有节点之间的网络连接正常,并且防火墙允许相应的端口通信。
  2. 硬件资源:确保每个节点都有足够的硬件资源(CPU、内存、磁盘I/O)来处理高负载。
  3. 监控和日志:设置监控和日志系统,以便及时发现和解决问题。

通过以上步骤,你可以在Ubuntu上搭建一个基本的PostgreSQL高可用性集群。根据实际需求,你可能还需要进一步优化和调整配置。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PostgreSQL在Ubuntu上的高可用性如何搭建
本文地址: https://pptw.com/jishu/742961.html
如何使用Filebeat进行日志备份 如何配置Filebeat网络设置

游客 回复需填写必要信息