在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

相关文章

Nginx之https证书配置实现

《Nginx之https证书配置实现》本文主要介绍了Nginx之https证书配置的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起... 目录背景介绍为什么不能部署在 IIS 或 NAT 设备上?具体实现证书获取nginx配置扩展结果验证

springboot3.x使用@NacosValue无法获取配置信息的解决过程

《springboot3.x使用@NacosValue无法获取配置信息的解决过程》在SpringBoot3.x中升级Nacos依赖后,使用@NacosValue无法动态获取配置,通过引入SpringC... 目录一、python问题描述二、解决方案总结一、问题描述springboot从2android.x

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A