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

2023-12-06 00:20

本文主要是介绍在2台RHEL 8服务器上安装并配置PostgreSQL 14的主从架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

1. 安装PostgreSQL 14

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

  1. 添加PostgreSQL Yum仓库

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

    sudo dnf -y install postgresql14-server
    

2. 初始化数据库

在两台服务器上都执行:

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

3. 更改数据目录

  1. 停止PostgreSQL服务

    sudo systemctl stop postgresql-14
    
  2. 创建新的数据目录

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

    sudo -u postgres /usr/pgsql-14/bin/initdb -D /data/postgres/pgdata
    
  4. 更新PostgreSQL服务文件
    编辑 /usr/lib/systemd/system/postgresql-14.service,找到 Environment=PGDATA= 行并更改为:

    Environment=PGDATA=/data/postgres/pgdata
    

    然后重新加载systemd配置:

    sudo systemctl daemon-reload
    

4. 配置PostgreSQL

在主服务器上:

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

    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,添加以下行以允许从服务器连接:

    host replication all 192.168.197.129/32 md5
    

    同时允许远程连接:

    host all all 0.0.0.0/0 md5
    

在从服务器上:

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

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

5. 设置归档目录

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

sudo mkdir -p /home/postgres/archives
sudo chown -R postgres:postgres /home/postgres/archives

6. 设置主从复制

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

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

    sudo systemctl stop postgresql-14
    

    清理旧的数据目录:

    sudo -u postgres rm -rf /data/postgres/pgdata/*
    

    使用pg_basebackup进行基础备份:

    sudo -u postgres pg_basebackup -h 192.168.197.128 -D /data/postgres/pgdata -U replicator -v -P --wal-method=fetch
    

    创建recovery.conf文件:

    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)上相互通信。
  • 保持密码的安全性和复杂性。
  • 以上步骤可能需要根据实际环境进行适当调整。

这篇关于在2台RHEL 8服务器上安装并配置PostgreSQL 14的主从架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/459705

相关文章

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

MySQL8 密码强度评估与配置详解

《MySQL8密码强度评估与配置详解》MySQL8默认启用密码强度插件,实施MEDIUM策略(长度8、含数字/字母/特殊字符),支持动态调整与配置文件设置,推荐使用STRONG策略并定期更新密码以提... 目录一、mysql 8 密码强度评估机制1.核心插件:validate_password2.密码策略级

ShardingProxy读写分离之原理、配置与实践过程

《ShardingProxy读写分离之原理、配置与实践过程》ShardingProxy是ApacheShardingSphere的数据库中间件,通过三层架构实现读写分离,解决高并发场景下数据库性能瓶... 目录一、ShardingProxy技术定位与读写分离核心价值1.1 技术定位1.2 读写分离核心价值二

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

mysql5.7.15winx64配置全过程

《mysql5.7.15winx64配置全过程》文章详细介绍了MySQL5.7.15免安装版的配置步骤,包括解压安装包、设置环境变量、修改配置文件、初始化数据目录、安装服务、启动数据库、登录及密码修改... 目录前言一、首先下载安装包二、安android装步骤1.第一步解压文件2.配置环境变量3.复制my-