溫馨提示×

如何在CentOS上部署PostgreSQL集群

小樊
119
2025-02-14 17:01:55
欄目: 云計算

在CentOS上部署PostgreSQL集群可以通過多種方式實現,其中一種常見的方法是使用Patroni和Pacemaker來管理高可用性和故障轉移。以下是一個基本的步驟指南:

前提條件

  1. CentOS 7或更高版本。
  2. 至少三臺服務器(用于高可用性)。
  3. PostgreSQL 9.6或更高版本。
  4. Pacemaker和Corosync。
  5. Patroni。

步驟指南

1. 安裝必要的軟件包

在所有節點上安裝以下軟件包:

sudo yum install -y centos-release-scl
sudo yum install -y rh-postgresql96 rh-postgresql96-server
sudo yum install -y pacemaker pcs
sudo yum install -y patroni

2. 配置Pacemaker和Corosync

在所有節點上啟動并啟用Pacemaker和Corosync服務:

sudo systemctl start pacemaker
sudo systemctl enable pacemaker
sudo systemctl start corosync
sudo systemctl enable corosync

初始化Pacemaker集群:

sudo pcs cluster auth <node1> <node2> <node3>
sudo pcs cluster setup --name pg_cluster <node1> <node2> <node3>
sudo pcs cluster start --all
sudo pcs cluster enable --all

3. 配置Corosync

編輯/etc/corosync/corosync.conf文件,確保配置如下:

totem {
    version: 2
    cluster_name: pg_cluster
    transport: udpu
}

nodelist {
    node {
        ring0_addr: <node1_ip>
        nodeid: 1
    }
    node {
        ring0_addr: <node2_ip>
        nodeid: 2
    }
    node {
        ring0_addr: <node3_ip>
        nodeid: 3
    }
}

quorum {
    provider: corosync_votequorum
}

logging {
    to_logfile: yes
    logfile: /var/log/corosync/corosync.log
    to_syslog: yes
}

4. 配置Patroni

在每個節點上創建Patroni配置文件/etc/patroni.yml,示例配置如下:

scope: postgres
name: <node_name>
namespace: /db
data_dir: /var/lib/pgsql/9.6/data
restapi:
  listen: 0.0.0.0
  connect_address: <node_ip>
  ssl:
    cert_file: /etc/pki/tls/certs/server.crt
    key_file: /etc/pki/tls/private/server.key
    verify_mode: verify_peer
    ca_file: /etc/pki/tls/certs/ca.crt
pg_hba:
- host    replication     replicator     <node_ip>/32            md5
- host    all             all             0.0.0.0/0               md5
authentication:
  replication:
    username: replicator
    password: <replicator_password>
  superuser:
    username: postgres
    password: <postgres_password>
postgresql:
  listen: 0.0.0.0
  connect_address: 127.0.0.1
  data_dir: /var/lib/pgsql/9.6/data
  version: 9.6
  pg_hba:
  - host    replication     replicator     <node_ip>/32            md5
  - host    all             all             0.0.0.0/0               md5
  authentication:
    replication:
      username: replicator
      password: <replicator_password>
    superuser:
      username: postgres
      password: <postgres_password>
  parameters:
    wal_level: replica
    max_wal_senders: 4
    wal_keep_segments: 8
    hot_standby: on

5. 啟動Patroni

在每個節點上啟動Patroni服務:

sudo systemctl start patroni
sudo systemctl enable patroni

6. 驗證集群狀態

檢查Patroni和Pacemaker的狀態:

sudo systemctl status patroni
sudo pcs status

注意事項

  • 確保所有節點的時間同步。
  • 確保防火墻允許必要的端口(如5432)通信。
  • 根據實際需求調整配置文件中的參數。

通過以上步驟,你應該能夠在CentOS上成功部署一個PostgreSQL集群,并實現高可用性和故障轉移。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女