首页主机资讯PostgreSQL在Ubuntu上的集群部署

PostgreSQL在Ubuntu上的集群部署

时间2025-10-04 21:25:03发布访客分类主机资讯浏览853
导读:在Ubuntu上部署PostgreSQL集群,通常指的是使用Patroni和Pacemaker来管理高可用性。以下是详细的步骤: 1. 安装必要的软件包 首先,更新你的系统并安装必要的软件包: sudo apt update sudo ap...

在Ubuntu上部署PostgreSQL集群,通常指的是使用Patroni和Pacemaker来管理高可用性。以下是详细的步骤:

1. 安装必要的软件包

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

sudo apt update
sudo apt install -y postgresql-13-pgdg postgresql-13-pacemaker patroni

2. 配置PostgreSQL

编辑每个节点的/etc/postgresql/13/main/postgresql.conf文件,确保以下配置:

listen_addresses = '*'  # 允许所有IP地址连接
wal_level = replica      # 设置为replica以支持流复制
max_wal_senders = 10     # 最大WAL发送者数量
wal_keep_segments = 64   # 保留的WAL段数量
hot_standby = on         # 启用热备模式

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

host    replication     replicator     192.168.1.0/24       md5
host    all             all             192.168.1.0/24       md5

3. 初始化集群

在第一个节点上初始化PostgreSQL集群:

sudo systemctl stop postgresql
sudo pg_createcluster 13 main --start --no-password
sudo systemctl start postgresql

4. 配置Patroni

在每个节点上创建Patroni配置文件/etc/patroni.yml,以下是一个示例配置:

scope: postgres
name: node1  # 每个节点的名称必须唯一
namespace: /db
data_dir: /var/lib/postgresql/13/main
pg_hba:
  - host replication replicator 192.168.1.0/24 md5
  - host all all 192.168.1.0/24 md5
authentication:
  replication:
    username: replicator
    password: your_replicator_password
  superuser:
    username: postgres
    password: your_superuser_password
restapi:
  listen: 0.0.0.0:8008
  connect_address: 192.168.1.1  # 替换为当前节点的IP地址
etcd:
  host: 192.168.1.2  # 替换为etcd服务器的IP地址
  port: 2379
  scheme: http

在每个节点上运行Patroni:

sudo patroni /etc/patroni.yml

5. 配置Pacemaker

安装Pacemaker并配置集群资源:

sudo apt install -y pacemaker pcs
sudo pcs cluster auth node1 node2 node3  # 替换为你的节点名称
sudo pcs cluster setup --name pg_cluster node1 node2 node3
sudo pcs cluster start --all

创建PostgreSQL资源:

sudo pcs resource create pgsql ocf:heartbeat:pgsql \
    op monitor interval=30s \
    params pgctl="/usr/lib/postgresql/13/bin/pg_ctl" \
    op start timeout=60s \
    op stop timeout=60s \
    op promote timeout=60s \
    op demote timeout=60s \
    op monitor timeout=30s \
    meta is-managed=true \
    clone-max=2 \
    clone-node-max=1 \
    failover-threshold=3 \
    notify=true

6. 验证集群状态

检查集群状态:

sudo pcs status

你应该看到PostgreSQL资源已经启动并运行。

7. 测试故障转移

你可以手动停止一个节点上的PostgreSQL服务来测试故障转移:

sudo systemctl stop postgresql

观察其他节点是否自动接管并启动PostgreSQL服务。

通过以上步骤,你可以在Ubuntu上成功部署一个高可用的PostgreSQL集群。

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


若转载请注明出处: PostgreSQL在Ubuntu上的集群部署
本文地址: https://pptw.com/jishu/720569.html
如何在Ubuntu上恢复误删的PostgreSQL数据 Ubuntu上PostgreSQL日志如何查看

游客 回复需填写必要信息