我的编程空间,编程开发者的网络收藏夹
学习永远不晚

工具 | PG 集群复制管理工具 repmgr

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

工具 | PG 集群复制管理工具 repmgr

工具 | PG 集群复制管理工具 repmgr

作者:颜博 青云科技数据库研发工程师

目前从事 PostgreSQL 产品开发工作,热衷于 PostgreSQL 数据库的学习和研究

repmgr[1] 是一套开源工具,用于管理 PostgreSQL 服务器集群内的复制和故障转移。repmgr 支持并增强了 PostgreSQL 的内置流复制,它提供了一个单一的读/写主服务器和一个或多个只读备用服务器。

file

repmgr 流复制管理工具对 PostgreSQL 集群节点的管理是基于分布式的管理方式。集群每个节点都具备一个 repmgr.conf 配置文件,用来记录本节点的 ID、节点名称、连接信息、数据库的 PGDATA 目录等配置参数。在完成参数配置后,就可以通过 repmgr 命令实现对集群节点的 “一键式” 部署。

repmgr 架构图(图片来源:https://repmgr.org/ )如下:

file

集群节点部署完成后,每个节点都可通过 repmgrd 守护进程来监控节点数据库状态;每个节点元数据表可独立维护,这些元数据表将记录所有集群节点的信息。

选举原理

在发生 Auto Failover 时,备节点在尝试多次连接主节点失败后(尝试次数及尝试间隔可以通过 repmgr.conf 配置文件修改),repmgrd 会在所有备节点中选举一个候选备节点(选举机制参考下文)提升为新主节点,其他备节点去 Follow 到该新主上,形成一个新的集群。

repmgr 选举候选备节点按照以下顺序选举:LSN > Priority > Node_ID

  • 系统将优先选举一个 LSN 较大的节点,作为候选备节点;
  • 若 LSN 一样,会根据 Priority 优先级进行比较(该优先级是在配置文件中进行参数配置,如果 Priority 为 0,则代表该节点被禁止提升为主节点);
  • 若优先级也一样,会比较节点的 Node ID,小者会优先选举。

两个工具

repmgr 主要提供了 repmgr 和 repmgrd 两个工具。

repmgr 是一个执行管理任务的命令行工具,方便进行 PostgreSQL 服务器集群的管理。具备以下功能特点:

  • 设置备用服务器
  • promote 备
  • 主从切换
  • 显示复制集群中服务器的状态

repmgrd 是一个守护进程,它主动监视复制集群中的服务器并支持以下任务:

  • 监控和记录复制集群信息
  • 故障检测、故障转移
  • 集群中事件的通知(需要自定义脚本接受通知)

用户与元数据

为了有效地管理复制集群,repmgr 需要将集群中节点的相关信息存储在 repmgr 专用数据库表中。此架构由 repmgr 扩展自动创建,该扩展在初始化由 repmgr 管理的集群(repmgr primary register)的第一步中安装,并包含以下对象:

  • Tables:
    • repmgr.events: records events of interest
    • repmgr.nodes: 复制集群中每个节点的连接和状态信息
    • repmgr.monitoring_history: repmgrd 写入的历史备用监控信息
  • Views:
    • repmgr.show_nodes: 基于 repmgr.nodes 表,另外显示服务器上游节点的名称
    • repmgr.replication_status: 当启用 repmgrd 的监控时,显示每个 standby 的监控状态。repmgr 元数据信息可以存储在已有的数据库或在自己的专用数据库。

注意:repmgr 元数据信息不能存储在不属于 repmgr 管理的复制集群的 PostgreSQL 服务器上。repmgr 需要一个可以访问数据库和执行必要的更改的用户,该用户可以不是超级用户,但是某些操作(例如 repmgr 扩展的初始安装)将需要超级用户连接(可以在需要时使用命令行选项指定 --superuser)。

注意:必须在集群的所有节点安装相同的 “主要” repmgr 版本(例如 5.2.1.x)[2]。

repmgr 版本

repmgr 版本 支持的 PostgreSQL 版本 最新版本
repmgr 5.2 9.4, 9.5, 9.6, 10, 11, 12, 13 5.2.1 (2020-12-07)
repmgr 5.1 9.3, 9.4, 9.5, 9.6, 10, 11, 12 5.1.0 (2020-04-13)
repmgr 5.0 9.3, 9.4, 9.5, 9.6, 10, 11, 12 5.0 (2019-10-15)
repmgr 4.x 9.3, 9.4, 9.5, 9.6, 10, 11 4.4 (2019-06-27)
  • repmgr 2.x 和 3.x 系列不再维持,不在此罗列。
  • repmgr 5.0 发布之后,将不会再发布 repmgr 4.x 系列。

安装过程

以 repmgr 5.2.x 版本为例,从源码仓库,Clone 并安装 repmgr。

$ git clone https://github.com/EnterpriseDB/repmgr
$ git checkout REL5_2_STABLE
$ cd repmgr/
./configure
$ make install

make install 成功后,pg_bin_path 里会有 repmgr、repmgrd 两个可执行文件。

repmgr 工具的基本语法[3]:

repmgr [OPTIONS] primary {register|unregister}
repmgr [OPTIONS] standby {register|unregister|clone|promote|follow|switchover}
repmgr [OPTIONS] node    {status|check|rejoin|service}
repmgr [OPTIONS] cluster {show|event|matrix|crosscheck|cleanup}
repmgr [OPTIONS] witness {register|unregister}
repmgr [OPTIONS] service {status|pause|unpause}
repmgr [OPTIONS] daemon  {start|stop}
  • 一般配置选项
  -b, --pg_bindir=PATH    PostgreSQL 二进制文件的路径(可选)
  -f, --config-file=PATH  repmgr 配置文件的路径
  -F, --force             强制执行有潜在危险的操作
  • 数据库连接选项
  -d, --dbname=DBNAME     要连接的数据库(默认:“postgres”)
  -h, --host=HOSTNAME     数据库服务器主机
  -p, --port=PORT         数据库服务器端口(默认:“5432”)
  -U, --username=USERNAME 要连接的数据库用户名(默认:“postgres”)
  • 特定于节点的选项
  -D, --pgdata=DIR        节点数据目录的位置
  --node-id               通过id指定节点(仅适用于部分操作)
  --node-name             按名称指定节点(仅适用于部分操作)
  • 记录选项
   --dry-run 显示动作会发生什么,但不执行它
   -L, --log-level 设置日志级别(覆盖配置文件;默认值:NOTICE)
   --log-to-file 记录到 repmgr.conf 中定义的文件(或记录工具)
   -q, --quiet 禁止除错误之外的所有日志输出
   -t, --terse 不显示细节、提示和其他非关键输出
   -v, --verbose 显示额外的日志输出(用于调试)

常用操作

  • 操作类
命令 描述
repmgr primary register 注册当前节点为 primary 节点
repmgr primary unregister 注销 primary 主节点
repmgr standby clone 当前节点使用 pg_basebackup 从 primary 主节点复制数据目录
repmgr standby register 注册当前节点为 standby 节点
repmgr standby unregister 注销 standby 节点
repmgr standby promote 将 standby 节点提升为 primary 主节点
repmgr standby follow 一主多从架构中,standby 节点重新指向新的 primary 主节点
repmgr standby switchover 将指定 standby 节点提升为 primary 主节点,并将 primary 主节点降级为 standby 节点
repmgr witness register 注册当前节点为见证服务器节点
repmgr witness unregister 注销见证服务器节点
  • 查看类
命令 描述
repmgr node status 查看各节点的基本信息和复制状态
repmgr node check 高可用集群节点状态信息检查
repmgr node rejoin 重新加入一个失效节点到集群
repmgr cluster show 查看集群中已注册的节点基本信息与状态
repmgr cluster matrix 查看集群中所有节点的 matrix 信息
repmgr cluster crosscheck 查看集群中所有节点间两两交叉连接检测
repmgr cluster event 查看集群事件记录信息
repmgr cluster cleanup 清理集群监控历史

下期预告

下期我们将使用 repmgr ,带您一步步搭建一套 PostgreSQL 高可用集群。

参考

[1]. repmgr:https://github.com/EnterpriseDB/repmgr

[2]. 5.2.1文档:https://repmgr.org/docs/5.2/

[3]. 常见操作:https://blog.csdn.net/weixin_37692493/article/details/117032458?ivk_sa=1024320u

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

工具 | PG 集群复制管理工具 repmgr

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

工具 | PG 集群复制管理工具 repmgr

作者:颜博 青云科技数据库研发工程师目前从事 PostgreSQL 产品开发工作,热衷于 PostgreSQL 数据库的学习和研究| REPMGR 简介repmgr[1] 是一套开源工具,用于管理 PostgreSQL 服务器集群内的复制和故障转移。repmg
工具 | PG 集群复制管理工具 repmgr
2015-10-17

HBase与Linux集群管理工具

HBase是一个开源的分布式、面向列的NoSQL数据库,它运行在Hadoop分布式文件系统(HDFS)上,主要用于存储大量的非结构化数据。而Linux集群管理工具则是用于管理和维护Linux服务器集群的工具。这两者在功能和用途上有明显的区别
HBase与Linux集群管理工具
2024-10-19

轻松管理Kubernetes集群的7个工具

Kubernetes正在不断加快在云原生环境的应用,但如何以统一、安全的方式对运行于任何地方的Kubernetes集群进行管理面临着挑战,而有效的管理工具能够大大降低管理的难度。

集群管理工具ansible常用命令有哪些

这篇文章给大家介绍集群管理工具ansible常用命令有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。集群管理工具ansible常用命令使用ansible过程如下:主控端:安装ansible# install the
2023-06-05

PG数据库管理_备份工具的使用

原文:https://blog.51cto.com/lishiyan/2655168
PG数据库管理_备份工具的使用
2018-03-09

腾讯开源的 Kubernetes 多集群管理和跨集群编排工具 Clusternet

Clusternet(Cluster Internet) 是一个腾讯开源的 Kubernetes 多集群管理云原生项目,可帮助你像访问 Internet 一样轻松管理数以百万计的 Kubernetes 集群。

DVD管理复制工具DVDFab for Mac怎么用

这篇文章主要介绍DVD管理复制工具DVDFab for Mac怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!DVDFab for Mac是Mac平台上一款简单易用的DVD管理复制工具。DVDFab Mac特别版
2023-06-06

win10控制面板管理工具位置在哪

这篇文章主要介绍“win10控制面板管理工具位置在哪”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10控制面板管理工具位置在哪”文章能帮助大家解决问题。方法一: 1、进入控制面板下的“系统和安
2023-06-30

Spring Boot集成接口管理工具Knife4j怎么用

这篇文章主要讲解了“Spring Boot集成接口管理工具Knife4j怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Boot集成接口管理工具Knife4j怎么用”吧!集
2023-06-30

九款日志采集&管理工具对比,选型必备!

对于日志管理当前网络上提供了大量的日志工具,今天就给大家分析总结一下这些常用工具的特点
日志工具2024-12-13

优化数据管理和可观察性的运营工具集

在本文中,我们先介绍DataOps(数据运营)管理与可观察性的相关概念,再列举企业可以用来简化数据管理、成本和协作流程的优秀DataOps工具。

微软 Windows 10 免费工具集 PowerToys v0.37.2 发布:修复资源管理器崩溃问题

外媒报道,微软今天发布了 PowerToys v0.37.2。稳定性更新带来了对测试中发现的崩溃 Bug 修复,包括会导致资源管理器重启的问题。

Win8系统控制面板中管理工具的其他快捷启动技巧

要在PC上管理iPhone,就必须安装iTunes,但它提示要启动Bonjour服务,因此需要用到Windows系统的管理工具。不过在我的Win8系统控制面板中却找不到,有其它启动管理工具的方法吗?解决方法一般来说,Windows系统的管理
2022-06-04

编程热搜

目录