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

ops/2024/12/19 11:17:18/

📢📢📢📣📣📣
作者: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

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


http://www.ppmy.cn/ops/143164.html

相关文章

海外媒体宣发对品牌出海的多维影响-大舍传媒

海外媒体宣发对品牌出海的多维影响 一、海外媒体宣发有助于品牌海外 SEO 海外媒体发稿是重要的海外公共关系工具,对于品牌想在海外宣传并引起关注具有重要作用。有效的新闻稿发布能够提高品牌的 SEO 排名,因为发布的新闻媒体网站的谷歌 PR 通常较高&…

多表查询的分类与实现

可能会出现的错误: 笛卡尔积的错误会在下面条件下产生: 省略多个表的连接条件(或关联条件) 连接条件(或关联条件)无效 所有表中的所有行互相连接 如何避免: 可以在 WHERE 加入有效的连接条…

wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势

开发CuteMySQL/CuteSqlite开源客户端的时候,需要使用Scintilla编辑器,来高亮显示SQL语句,作为C/C领域最成熟稳定又小巧的开源编辑器,Scintilla提供了强大的功能,wxWidgets对Scintilla进行包装后的是控件类:…

Web安全攻防入门教程——hvv行动详解

Web安全攻防入门教程 Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。 本教程将带你入门Web安全攻…

灵当crm pdf.php存在任意文件读取漏洞

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…

Focal Loss损失函数理解

简介:Focal Loss损失函数是对交叉熵损失函数的升级。是和yolo配套的 因为yolo会对图像进行网格化处理,会分出正负样本,是多目标检测,而不是简单的分类问题 1. 对比交叉熵损失的区别 多分类:CrossEntropyLoss 公式&a…

Java集合(完整版)

集合框架 Collection集合 概念:对象的容器,定义了对多个对象进行操作的常用方法。可以实现数组的功能 和数组的区别: 数组的长度固定,集合长度不固定数组可以存储基本类型和引用类型,集合只能存储引用类型 Collec…

多进程并发跑程序:pytest-xdist记录

多进程并发跑程序:pytest-xdist记录 pytest -s E:\testXdist\test_dandu.py pytest -s testXdist\test_dandu.py pytest -s :是按用例顺序依次跑用例 pytest -vs -n auto E:\testXdist\test_dandu.py pytest -vs -n auto,auto表示以全部进程…