Postgres主从(2)Repmgr基本命令

2024-02-25 04:58

本文主要是介绍Postgres主从(2)Repmgr基本命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

命令简介

命令说明
repmgr primary register安装pg的repmgr扩展并注册为主节点
repmgr primary unregister注销不活动的主节点
repmgr standby clone从其他节点复制数据到从节点
repmgr standby register注册从节点(添加从的信息到repmgr元数据)
repmgr standby unregisterrepmgr元数据中移除从的信息
repmgr standby promote将从提升为主
repmgr standby follow将从跟随新主
repmgr standby switchover将从提升为主并将主降级为从
repmgr witness register注册一个观察节点
repmgr witness unregister移除一个观察节点
repmgr node status显示节点的基本信息和复制状态
repmgr node check从复制的角度对节点进行健康监测
repmgr node rejoin重新加入一个失效节点到集群
repmgr cluster show显示所有集群中注册的节点信息
repmgr cluster matrix在所有节点运行show并汇总
repmgr cluster crosscheck在节点间两两交叉监测连接
repmgr cluster event输出时间记录
repmgr cluster cleanup清理监控历史

repmgr primary register注册主

说明

在集群中注册一个主节点,并配置PostgreSQL安装repmgr扩展,必须在所有从节点注册前注册

参数

  • -f:指定配置文件
  • –dry-run:测试命令执行条件是否满足,但不实际执行

将触发primary_register事件

repmgr primary unregister注销主

说明

注销非活动状态的主,典型场景是当主宕机,新主已产生时用本命令注销老主

参数

  • –node-id:要注销的主的nodeId
  • –dry-run:测试命令执行条件是否满足,但不实际执行

将触发primary_unregister 事件

repmgr standby clone克隆数据到从

说明

从其他节点(一般是主节点)克隆数据,并自动创建recovery.conf文件

克隆后并未启动从,需要先用repmgr standby register注册从,然后再启动数据库

PGDATA中postgresql.conf, postgresql.auto.conf, pg_hba.conf和pg_ident.conf等所有文件都将被复制,需要修改配置文件

自动创建recovery.conf

自动创建的以下配置

  • standby_mode:值总是on
  • recovery_target_timeline:值总是’latest’
  • primary_conninfo
  • primary_slot_name (如果使用复制槽)

如果repmgr.conf下配置了以下参数也将被复制到recovery.conf

  • restore_command
  • archive_cleanup_command
  • recovery_min_apply_delay

参数

  • –dry-run:测试命令执行条件是否满足,但不实际执行
  • -c, --fast-checkpoint:强制fast checkpoint
  • 其他参数见https://repmgr.org/docs/repmgr.html#REPMGR-STANDBY-CLONE

将触发standby_clone 事件

repmgr standby register 注册从

参数

  • –upstream-node-id:可选,复制源的NodeID
  • –dry-run:测试命令执行条件是否满足,但不实际执行

将触发standby_register 事件

repmgr standby unregister 注销从

并不会影响复制,只将元数据中删除从信息

参数

  • –node-id:可选,要注销的NodeId

将触发standby_unregister 事件

repmgr standby promote 提升从

说明

当主宕机时将从提升为主

执行成功成为主后,不需要重启PG。其他的从需要跟随新主(使用repmgr standby follow)

示例

$ repmgr -f /etc/repmgr/10/repmgr.conf standby promote

将触发standby_promote 事件

repmgr standby follow从跟随新主

示例

测试

repmgr -f /etc/repmgr.conf standby follow --dry-run

执行操作

repmgr -f /etc/repmgr.conf standby follow

将触发standby_follow 事件

事件参数

  • %p:新主的NodeID
  • %c:conninfo字符串
  • %a:本节点的node name

repmgr standby switchover主从切换

说明

提升从为主,并将主降级为从

需要主和从间可进行无密码的SSH连接

需要任何节点的repmgrd处于关闭状态

参数

  • –always-promote:即使主从不一致也将执行提升(原来的主将被关闭)
  • –dry-run:检查
  • –siblings-follow:让其他从跟随新主
  • –force-rewind[=/path/to/pg_rewind]:当主从不一致时使用pg_rewind重新同步主从

repmgr.conf

  • reconnect_attempts: 在原主执行关闭后进行完全关闭检查的次数
  • reconnect_interval: 在原主执行关闭后进行完全关闭检查的间隔时间
  • replication_lag_critical: 复制延迟(秒)超过该值退出主从切换
  • standby_reconnect_timeout: 原主降级重启后尝试连接到其的超时秒数.

新主将触发standby_switchover和standby_promote 事件

standby_switchover参数

  • %p:旧主的node id

旧主将触发node_rejoin 事件

repmgr node status节点状态

检查当前节点的基本信息和复制状态

例如:

$ repmgr node status
Node "node1":PostgreSQL version: 10beta1Total data size: 30 MBConninfo: host=node1 dbname=repmgr user=repmgr connect_timeout=2Role: primaryWAL archiving: offArchive command: (none)Replication connections: 2 (of maximal 10)Replication slots: 0 (of maximal 10)Replication lag: n/a

repmgr node check 节点复制检查

从复制的角度对本地节点进行检查

例如

$ repmgr -f /etc/repmgr.conf node check
Node "node1":Server role: OK (node is primary)Replication lag: OK (N/A - node is primary)WAL archiving: OK (0 pending files)Downstream servers: OK (2 of 2 downstream nodes attached)Replication slots: OK (node has no replication slots)

参数说明:

  • –role: 检查角色是否如预期
  • –replication-lag: 检查延迟是否超过repmgr.conf配置的replication_lag_warning或replication_lag_critical
  • –archive-ready: 检查WAL文件是否被存档
  • –downstream: 检查下游节点是否如预期
  • –slots: 检查是否有非活动的复制槽

repmgr node rejoin节点重新加入

说明

将休眠(已停止)节点重新加入到复制群集

可选择使用pg_rewind来重新加入脱离集群的节点,通常是发生故障的主节点。

提示: 如果节点正在运行并且需要连接到当前的主节点,请使用 repmgr standby follow

参数

repmgr node rejoin

  • -d:必须,指定集群中任何可访问的节点的conninfo
  • –dry-run:测试
  • –force-rewind[=/path/to/pg_rewind]:需要时使用pg_rewind
  • –config-files:逗号间隔的保留文件,pg_rewind会重写所有文件,这里可指定保留的文件
  • –config-archive-dir:临时存放config-files的位置,默认/tmp

触发node_rejoin 事件

repmgr cluster show集群状态

repmgr cluster matrix集群连通性矩阵

repmgr cluster event 事件查询

参数

  • –all: 输出所有数据
  • –limit: 设置最大输出数量 (default: 20)
  • –node-id: 查询指定node id的事件
  • –node-name: 查询指定node name的事件
  • –event: 查询指名称的事件

repmgr cluster cleanup

如果监控数据在repmgr.conf中设置以下参数

  • monitoring_history:yes/no,是否启用监控
  • #monitor_interval_secs:监控间隔时间

监控数据量很大需要定期清理

本命令通过参数-k/–keep-history只保留指定天数的数据

例如保留30天

repmgr cluster cleanup -k30

这篇关于Postgres主从(2)Repmgr基本命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查