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

相关文章

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. 系统安全基线核查

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁