在2台RHEL 8服务器上安装并配置PostgreSQL 14的主从架构

为了在两台RHEL 8服务器上安装并配置PostgreSQL 14的主从架构,你需要按照以下步骤操作。这将包括安装PostgreSQL、初始化数据库、调整配置、设置归档目录等。请确保你具有root或具有适当权限的用户访问权限来执行这些操作。

1. 安装PostgreSQL 14

在两台服务器上都执行以下步骤:

  1. 添加PostgreSQL Yum仓库

    bash 复制代码
    sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  2. 安装PostgreSQL

    bash 复制代码
    sudo dnf -y install postgresql14-server

2. 初始化数据库

在两台服务器上都执行:

bash 复制代码
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

3. 更改数据目录

  1. 停止PostgreSQL服务

    bash 复制代码
    sudo systemctl stop postgresql-14
  2. 创建新的数据目录

    bash 复制代码
    sudo mkdir -p /data/postgres/pgdata
    sudo chown -R postgres:postgres /data/postgres
  3. 初始化新的数据目录

    bash 复制代码
    sudo -u postgres /usr/pgsql-14/bin/initdb -D /data/postgres/pgdata
  4. 更新PostgreSQL服务文件

    编辑 /usr/lib/systemd/system/postgresql-14.service,找到 Environment=PGDATA= 行并更改为:

    bash 复制代码
    Environment=PGDATA=/data/postgres/pgdata

    然后重新加载systemd配置:

    bash 复制代码
    sudo systemctl daemon-reload

4. 配置PostgreSQL

在主服务器上:

  1. 修改postgresql.conf

    编辑 /data/postgres/pgdata/postgresql.conf 文件,设置以下参数:

    bash 复制代码
    listen_addresses = '*'
    max_connections = 2000
    wal_level = replica
    archive_mode = on
    archive_command = 'cp %p /home/postgres/archives/%f'
  2. 修改pg_hba.conf

    编辑 /data/postgres/pgdata/pg_hba.conf,添加以下行以允许从服务器连接:

    bash 复制代码
    host replication all 192.168.197.129/32 md5

    同时允许远程连接:

    bash 复制代码
    host all all 0.0.0.0/0 md5

在从服务器上:

  1. 修改postgresql.conf

    编辑 /data/postgres/pgdata/postgresql.conf 文件,设置以下参数:

    bash 复制代码
    listen_addresses = '*'
    max_connections = 2000
    hot_standby = on
  2. 修改pg_hba.conf 与主服务器相同。

5. 设置归档目录

在两台服务器上都执行以下步骤:

bash 复制代码
sudo mkdir -p /home/postgres/archives
sudo chown -R postgres:postgres /home/postgres/archives

6. 设置主从复制

  1. 在主服务器上创建复制用户

    bash 复制代码
    sudo -u postgres psql -c "CREATE USER replicator REPLICATION LOGIN CONNECTION LIMIT 2 ENCRYPTED PASSWORD 'your_password';"
  2. 在从服务器上配置复制

    停止PostgreSQL服务:

    bash 复制代码
    sudo systemctl stop postgresql-14

    清理旧的数据目录:

    bash 复制代码
    sudo -u postgres rm -rf /data/postgres/pgdata/*

    使用pg_basebackup进行基础备份:

    bash 复制代码
    sudo -u postgres pg_basebackup -h 192.168.197.128 -D /data/postgres/pgdata -U replicator -v -P --wal-method=fetch

    创建recovery.conf文件:

    bash 复制代码
    sudo -u postgres bash -c "cat > /data/postgres/pgdata/recovery.conf <<EOF
    standby_mode = 'on'
    primary_conninfo = 'host=192.168.197.128 port=5432 user=

replicator password=your_password'

trigger_file = '/tmp/MasterNow'

EOF"

复制代码
### 7. 启动PostgreSQL服务

在两台服务器上:

```bash
sudo systemctl start postgresql-14
sudo systemctl enable postgresql-14

8. 验证设置

  1. 在主服务器上,检查是否有连接到从服务器的复制流程。
  2. 在从服务器上,检查是否能够查询数据并确认处于只读模式。

注意事项

  • 确保防火墙和安全组设置允许这两台服务器在相应端口(默认是5432)上相互通信。
  • 保持密码的安全性和复杂性。
  • 以上步骤可能需要根据实际环境进行适当调整。
相关推荐
子兮曰3 小时前
OpenClaw入门:从零开始搭建你的私有化AI助手
前端·架构·github
剩下了什么4 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
山峰哥4 小时前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
较劲男子汉4 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
java搬砖工-苤-初心不变4 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
晚霞的不甘6 小时前
CANN 在工业质检中的亚像素级视觉检测系统设计
人工智能·计算机视觉·架构·开源·视觉检测
island13146 小时前
CANN HIXL 高性能单边通信库深度解析:PGAS 模型在异构显存上的地址映射与异步传输机制
人工智能·神经网络·架构
山岚的运维笔记6 小时前
SQL Server笔记 -- 第18章:Views
数据库·笔记·sql·microsoft·sqlserver
岁岁种桃花儿6 小时前
Flink CDC从入门到上天系列第一篇:Flink CDC简易应用
大数据·架构·flink
秋邱7 小时前
AIGC 的“隐形引擎”:深度拆解 CANN ops-math 通用数学库的架构与野心
架构·aigc