ubuntu

PostgreSQL在Ubuntu上的集群搭建方案

小樊
46
2025-09-23 10:54:35
栏目: 云计算

PostgreSQL在Ubuntu上的集群搭建方案

一、基础环境准备

在Ubuntu系统上搭建PostgreSQL集群前,需完成以下基础配置:

  1. 安装PostgreSQL:在所有节点执行sudo apt update && sudo apt install -y postgresql postgresql-contrib,安装PostgreSQL数据库及扩展工具。
  2. 安装repmgr工具:repmgr是PostgreSQL集群管理的核心工具,用于主从复制、故障检测与自动切换。执行以下命令安装:
    sudo apt install -y libcurl4-openssl-dev libjson-c-dev flex libselinux1-dev libzstd-dev liblz4-dev libxslt1-dev libxml2-dev libpam0g-dev libssl-dev libkrb5-dev zlib1g-dev libreadline-dev
    wget https://www.repmgr.org/download/repmgr-5.5.0.tar.gz
    tar xvf repmgr-5.5.0.tar.gz
    cd repmgr-5.5.0/
    ./configure && make && sudo make install
    
  3. 配置SSH免密登录:在主节点生成SSH密钥(ssh-keygen),并将公钥复制到所有从节点(ssh-copy-id <从节点IP>),确保节点间可通过SSH无密码通信。
  4. 规划集群架构:常见架构包括“1主2备”(基础高可用)、“1主2备+Pgpool”(负载均衡+故障转移)。节点IP需固定,避免变动。

二、基于repmgr的主从集群搭建(基础高可用)

1. 主节点配置

2. 从节点配置

3. 注册与启动集群

三、集成Pgpool实现负载均衡与自动故障转移

Pgpool是一个PostgreSQL中间件,提供连接池、负载均衡、自动故障转移功能,适用于生产级高可用场景。

1. 安装Pgpool

在独立节点(或主节点)安装Pgpool:

sudo apt install -y pgpool2

2. 配置Pgpool

3. 启动Pgpool

sudo systemctl start pgpool2
sudo systemctl enable pgpool2

4. 验证负载均衡

通过Pgpool节点连接数据库(psql -h <PgpoolIP> -U postgres),执行查询时,Pgpool会自动将读请求分发到备节点,写请求发送到主节点。

四、注意事项

  1. 数据一致性:确保主从节点的wal_levelarchive_mode等参数一致,避免数据丢失。
  2. 安全配置:生产环境中,pg_hba.conf应使用md5scram-sha-256认证,避免明文密码传输。
  3. 监控与告警:使用pg_stat_replication视图监控复制状态,结合Prometheus+Granafa搭建监控告警体系。
  4. 备份策略:定期备份主节点数据(如使用pg_dumpbarman),避免集群完全故障时数据丢失。

0
看了该问题的人还看了