repmgr集群部署-PostgreSQL高可用保证

📢📢📢📣📣📣
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

文章目录

    • 1.repmgr介绍
    • 2.部署规划
    • 3.repmgr安装
    • 4.主节点postgresql.conf配置
    • 5.主节点repmgr.conf配置
    • 6.主节点创建插件
    • 7.注册主节点
    • 8.配置备节点repmgr.conf
    • 9.克隆备节点
    • 10.启动、注册备节点
    • 11.配置两节点信任
    • 12.切换验证
    • 13.常用操作
    • 总结

1.repmgr介绍

repmgr是一个开源工具套件(类似于MySQL的MHA),用于管理PostgreSQL服务器集群中的复制和故障转移。它通过设置备用服务器、监视复制和执行管理任务(如故障转移或手动切换操作)的工具增强了PostgreSQL的内置热备份功能。

https://www.repmgr.org/

2.部署规划

操作环境版本:centos7.6

数据库版本:PostgreSQL 14.11

Repmgr版本:repmgr-5.3.3

节点规划(简化部署,规划两个节点)

3.repmgr安装

su - postgres
wget https://repmgr.org/download/repmgr-5.3.3.tar.gz
tar -zxvf repmgr-5.3.3.tar.gz 
cd repmgr-5.3.3
./configure
make -j 4 && make install

4.主节点postgresql.conf配置

listen_addresses = '*'
wal_level = 'replica'
archive_command = 'cp %p /dbs/pg14/archive/%f' 
shared_preload_libraries ='repmgr'
logging_collector = on

5.主节点repmgr.conf配置

mkdir -p /pg14/conf
vi /pg14/conf/repmgr.conf

node_id=1
node_name='pghost01'
conninfo='host=pghost01 user=repmgr dbname=repmgr connect_timeout=2'
data_directory='/dbs/pg14/data'
pg_bindir='/pg14/soft/bin'

--日志参数
log_level=INFO
log_file='/pg14/conf/repmgr.log'

6.主节点创建插件

连接数据库,创建repmgr用户和数据库
create user repmgr WITH REPLICATION LOGIN ENCRYPTED PASSWORD 'pg@1234' superuser;
create database repmgr owner repmgr; 
create extension repmgr;

7.注册主节点

要使repmgr支持复制集群,必须向repmgr注册主节点。
这将安装repmgr 扩展和元数据对象,并添加主服务器的元数据记录
repmgr -f /pg14/conf/repmgr.conf primary register
验证集群状态
repmgr -f /pg14/conf/repmgr.conf cluster show

8.配置备节点repmgr.conf

mkdir -p /pg14/conf
vi /pg14/conf/repmgr.conf

node_id=2
node_name='pghost02'
conninfo='host=pghost02 user=repmgr dbname=repmgr connect_timeout=2'
data_directory='/dbs/pg14/data'
pg_bindir='/pg14/soft/bin'

log_level=INFO
log_file='/pg14/conf/repmgr.log'

9.克隆备节点

以下操作在备节点执行,注意此时备节点$PGDATA目录必须为空。
repmgr -h pghost01 -U repmgr \
-d repmgr -f /pg14/conf/repmgr.conf standby clone

10.启动、注册备节点

pg_ctl -D $PGDATA start

注册备节点:
repmgr -f /pg14/conf/repmgr.conf standby register

查看集群状态
repmgr -f /pg14/conf/repmgr.conf cluster show

11.配置两节点信任

步骤1: 分别在主备节点上使用postgres用户执行ssh-keygen 创建公钥和密钥
ssh-keygen -t rsa
步骤2: 用 ssh-copy-id 把公钥复制到对端主机上
ssh-copy-id -i /home/postgres/.ssh/id_rsa.pub postgres@192.168.3.9
ssh-copy-id -i /home/postgres/.ssh/id_rsa.pub postgres@192.168.3.10
步骤3: 主备节点相互验证
systemctl restart sshd
ssh 192.168.3.9 
ssh 192.168.3.10

12.切换验证

注意:
1./pg14/conf/repmgr.conf的读写权限和属主正确
2.记得加环境变量(主备节点)
vi ~/.bashrc
--添加以下变量定义
export PGHOME=/pg14/soft
export PGDATA=/dbs/pg14/data
export PGPORT=5666
export PATH=$PGHOME/bin:$PATH:.

source ~/.bashrc
手动切换需在备节点执行以下命令:
repmgr -f /pg14/conf/repmgr.conf standby switchover -U repmgr --verbose
查看集群状态
repmgr -f /pg14/conf/repmgr.conf cluster show

13.常用操作

总结

repmgr的特点是非常轻量,但功能全面,监视主从流复制过程,自动故障切换和手动故障切换
支持分布式管理集群节点,易扩展,可以在线增加或者删除节点,分享给大家,希望能帮助到大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/936646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】 canvas画图

一、场景描述 利用js中的canvas画图来画图,爱心、动画。 二、问题拆解 第一个是:canvas画图相关知识。 第二个是:动画相关内容。 三、知识背景 3.1 canvas画图相关内容 canvas画图的基本步骤 获取页面上的canvas标签对象获取绘图上下文…

深度学习——激活函数、损失函数、优化器

深度学习——激活函数、损失函数、优化器 1、激活函数1.1、一些常见的激活函数1.1.1、sigmoid1.1.2、softmax1.1.3、tanh1.1.4、ReLU1.1.5、Leaky ReLU1.1.6、PReLU1.1.7、GeLU1.1.8、ELU 1.2、激活函数的特点1.2.1、非线性1.2.2、几乎处处可微1.2.3、计算简单1.2.4、非饱和性1…

硬件设计-电源轨噪声对时钟抖动的影响

目录 定义 实际案例 总结 定义 首先了解抖动的定义,在ITU-T G.701中有关抖动的定义如下: 数字信号重要瞬间相对于其理想时间位置的短期非累积变化。 抖动是时钟或数据信号时序的短期时域变化。抖动包括信号周期、频率、相位、占空比或其他一些定时特…

搭建自己的wiki知识库(重新整理)

写在前面: 之前写过一篇,因为这次修改的内容比较多,所以不想在原基础上修改了,还是重新整理一篇吧。搭建wiki知识库,可以使用在线文档,如xx笔记、xx文档、xx博客、git仓库(如:GitHu…

数据可视化的Python实现

一、GDELT介绍 GDELT ( www.gdeltproject.org ) 每时每刻监控着每个国家的几乎每个角落的 100 多种语言的新闻媒体 -- 印刷的、广播的和web 形式的,识别人员、位置、组织、数量、主题、数据源、情绪、报价、图片和每秒都在推动全球社会的事件,GDELT 为全…

【Python基础】Python知识库更新中。。。。

1、Python知识库简介 现阶段主要源于个人对 Python 编程世界的强烈兴趣探索,在深入钻研 Python 核心语法、丰富库函数应用以及多样化编程范式的基础上,逐步向外拓展延伸,深度挖掘其在数据分析、人工智能、网络开发等多个前沿领域的应用潜力&…

SpringCloud微服务实战系列:02从nacos-client源码分析注册中心工作原理

目录 角色与功能 工作流程: nacos-client关键源码分析 总结: 角色与功能 服务提供者:在启动时,向注册中心注册自身服务,并向注册中心定期发送心跳汇报存活状态。 服务消费者:在启动时,把注…

电感2222

1 电感 1电感是什么 2 电感的电流不能突变:电容是两端电压不能突变 3 电感只是限制电流变化速度

AI安全漏洞之VLLM反序列化漏洞分析与保姆级复现(附批量利用)

前期准备 环境需要:Linux(这里使用kali)、Anaconda 首先安装Anaconda 前言:最好使用linux,如果使用windows可能会产生各种报错(各种各种各种!!!)&#xff…

用梗营销来启动市场

目录 为什么梗营销适合初创公司 有效的梗营销技巧 梗不仅仅是有趣的图片,它们是包裹在幽默中的文化时刻。对于小企业家(以及大企业家),梗代表了一种强大且性价比高的市场推广方式。让我们分解一下为什么梗营销有效,以…

简单vue3前端打包部署到服务器,动态配置http请求头后端ip方法教程

vue3若依框架前端打包部署到服务器,需要部署到多个服务器上,每次打包会很麻烦,今天教大家一个动态配置请求头api的方法,部署后能动态获取(修改)对应服务器的请求ip 介绍两种方法,如有需要可以直接尝试步骤一&#xff…

Pyside6 --Qt设计师--简单了解各个控件的作用之:Item Views

目录 一、List View二、Tree View三、Table View四、Column View 一、List View 学习方法和Buttons一样,大家自己在qt设计师上面在属性编辑区进行相应的学习! 我就先紧着qt设计师的页面进行讲解,部分内容查自AI。 后面有什么好用的控件或者…

【vue2+Flowable工作流,审批流前端展示组件】

文章目录 概要整体架构流程技术细节小结 概要 vue2Flowable工作流,审批流前端展示组件。 本人已实现activiti工作流引入vue2, 如有需求请移步activiti工作流单独引入vue2方法, 全网最全!!! vue全局日期格式化成年月日 时分秒 如有需求请移步vuemomen…

uni-app多环境配置动态修改

前言 这篇文章主要介绍uniapp在Hbuilderx 中,通过工程化,区分不同环境、动态修改小程序appid以及自定义条件编译,解决代码发布和运行时手动切换问题。 背景 当我们使用uniapp开发同一个项目发布不同的环境二级路径不同时,这时候…

实现某海外大型车企(T)Cabin Wi-Fi 需求的概述

最近参与某海外大型车企(T)的 Wi-Fi 功能需求开发,T 提出了一个 Cabin Wi-Fi 的概念,首先我们先对 Cabin Wi-Fi 进行一个较全面的了解。 1. Cabin Wi-Fi 概念概述 Cabin Wi-Fi 通常指用于飞机客舱、火车车厢、豪华巴士或船舶上的无…

如何在 Ubuntu 22.04 上安装和使用 Rust 编程语言环境

简介 Rust 是一门由 Mozilla 开发的系统编程语言,专注于性能、可靠性和内存安全。它在没有垃圾收集的情况下实现了内存安全,这使其成为构建对性能要求苛刻的应用程序(如操作系统、游戏引擎和嵌入式系统)的理想选择。 接下来&…

MATLAB图卷积神经网络GCN处理分子数据集节点分类研究

全文链接:https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络(GCN)对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节,通过对分子数据集的操作实践,展示了完整的节点分类流程&#…

简易CPU设计入门:本系统所写入的指令

项目代码下载 请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。 下载本项目代码 准备好了项目源代码以后,我…

rabbitMq举例

新来个技术总监,把 RabbitMQ 讲的那叫一个透彻,佩服! 生产者 代码举例 public String sendMsg(final String exchangeName,final String routingKey,final String msg) {} /*** 发送消息* param exchangeName exchangeName* param routin…

对话小系统(智能图书助手)

对话小系统(智能图书助手) 文章说明核心代码效果展示源码下载 文章说明 现在GPT的功能十分强大,是否可以利用开源的接口来实现自己的智能小助手呢,我想到可以提供一些能力接口,然后对问询内容进行意图识别,…