首页主机资讯Linux中PostgreSQL集群怎么搭建

Linux中PostgreSQL集群怎么搭建

时间2025-10-29 08:17:04发布访客分类主机资讯浏览320
导读:在Linux系统中搭建PostgreSQL集群,通常指的是设置一个高可用性的PostgreSQL集群,以确保数据库服务的连续性和数据的一致性。以下是使用Patroni和Pacemaker搭建PostgreSQL集群的基本步骤: 前提条件...

在Linux系统中搭建PostgreSQL集群,通常指的是设置一个高可用性的PostgreSQL集群,以确保数据库服务的连续性和数据的一致性。以下是使用Patroni和Pacemaker搭建PostgreSQL集群的基本步骤:

前提条件

  1. 操作系统:确保你有一个支持的Linux发行版,如CentOS、Ubuntu等。
  2. 硬件资源:至少三台服务器(用于高可用性),每台服务器需要有足够的资源来运行PostgreSQL实例。
  3. 网络配置:所有服务器之间需要能够通过网络通信。

安装依赖

在所有服务器上安装必要的软件包:

sudo apt-get update
sudo apt-get install -y pacemaker pcs patroni postgresql

配置Pacemaker和Corosync

  1. 安装Corosync

    sudo apt-get install -y corosync
    
  2. 配置Corosync: 编辑/etc/corosync/corosync.conf文件,配置集群节点信息:

    totem {
    
        version: 2
        cluster_name: pg_cluster
        transport: udpu
    }
    
    
    nodelist {
    
        node {
    
            ring0_addr: server1_ip
            nodeid: 1
        }
    
        node {
    
            ring0_addr: server2_ip
            nodeid: 2
        }
    
        node {
    
            ring0_addr: server3_ip
            nodeid: 3
        }
    
    }
    
    
    quorum {
    
        provider: corosync_votequorum
    }
    
    
    logging {
    
        to_logfile: yes
        logfile: /var/log/corosync/corosync.log
        to_syslog: yes
    }
        
    
  3. 启动并启用Corosync服务

    sudo systemctl start corosync
    sudo systemctl enable corosync
    
  4. 加入集群: 在每台服务器上运行以下命令加入集群:

    sudo pcs cluster join --name server1_ip
    

配置Pacemaker

  1. 配置Pacemaker: 编辑/etc/pacemaker/cib.xml文件,定义资源和服务:

    <
        cib xmlns:schemaLocation="urn:org:corosync:cib:1.0" version="150000">
        
        <
        fence_daemon enable="true" />
        
        <
        cluster_name>
        pg_cluster<
        /cluster_name>
        
        <
        primitive id="ocf:heartbeat:pgsql" class="ocf" type="pgsql">
        
            <
        operations>
        
                <
        op id="start" name="start" interval="0s" timeout="60s" />
        
                <
        op id="stop" name="stop" interval="0s" timeout="60s" />
        
                <
        op id="monitor" name="monitor" interval="30s" timeout="60s" />
        
            <
        /operations>
        
            <
        instance_attributes id="pgsql-instance-attributes">
        
                <
        nvpair id="pgsql-data" name="data" value="/var/lib/postgresql/12/main" />
        
                <
        nvpair id="pgsql-log" name="log" value="/var/log/postgresql/" />
        
                <
        nvpair id="pgsql-conf" name="conf" value="/etc/postgresql/12/main/postgresql.conf" />
        
            <
        /instance_attributes>
        
            <
        resources>
        
                <
        primitive id="pgsql" class="ocf" type="pgsql">
        
                    <
        instances>
        
                        <
        instance id="pgsql-instance" />
        
                    <
        /instances>
        
                <
        /primitive>
        
            <
        /resources>
        
        <
        /primitive>
        
    <
        /cib>
        
    
  2. 启动Pacemaker服务

    sudo systemctl start pacemaker
    sudo systemctl enable pacemaker
    

配置Patroni

  1. 安装Patroni: 在每台服务器上安装Patroni:

    sudo apt-get install -y patroni
    
  2. 配置Patroni: 编辑/etc/patroni.yml文件,配置Patroni实例:

    scope: postgresql
    name: server1_ip
    namespace: /db
    restapi:
      listen: 0.0.0.0:8008
      connect_address: server1_ip
    etcd:
      host: etcd_server_ip
      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: 127.0.0.1
      data_dir: /var/lib/postgresql/12/main
      pg_hba:
      - host replication replicator 0.0.0.0/0 md5
      authentication:
        replication:
          username: replicator
          password: replicator_password
    
  3. 启动Patroni

    sudo systemctl start patroni
    sudo systemctl enable patroni
    

验证集群状态

使用以下命令检查集群状态:

sudo pcs status
sudo patronesi status

通过以上步骤,你应该能够在Linux系统上成功搭建一个PostgreSQL集群。请根据实际情况调整配置文件中的参数。

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


若转载请注明出处: Linux中PostgreSQL集群怎么搭建
本文地址: https://pptw.com/jishu/737407.html
Ubuntu PHP配置中如何启用MySQL支持 PostgreSQL日志查看Linux命令

游客 回复需填写必要信息