Kingbase repmgr 使用说明文档

Kingbase repmgr 使用说明文档

概述

repmgr (Replication Manager) 是 Kingbase 数据库的复制管理工具,用于管理主从复制集群的高可用性。本文档基于已验证的 KingbaseES V008R006C008M020B0025 版本。

版本信息

验证版本: repmgr (Kingbase) V008R006C008M020B0025 (5.0.0.0.0 f69bfa3:1268a95a92ed)

安装路径: /opt/Kingbase/ES/V8/kingbase/bin/repmgr

基本语法

repmgr [OPTIONS] <command> <subcommand>

主要命令分类

1. Primary 节点管理

# 注册主节点
repmgr primary register
# 注销主节点
repmgr primary unregister

2. Standby 节点管理

# 注册备节点
repmgr standby register
# 注销备节点
repmgr standby unregister
# 克隆备节点
repmgr standby clone
# 提升备节点为主节点
repmgr standby promote
# 备节点跟随新的主节点
repmgr standby follow
# 主备切换
repmgr standby switchover
su kingbase
repmgr cluster show --verbose
repmgr standby switchover --siblings-follow
repmgr cluster show --verbose

在这里插入图片描述

3. 节点管理

# 查看节点状态
repmgr node status
# 检查节点健康状态
repmgr node check
# 重新加入集群
repmgr node rejoin
# 节点服务管理
repmgr node service

4. 集群管理

# 显示集群概览
repmgr cluster show
# 查看集群事件
repmgr cluster event
# 显示集群矩阵
repmgr cluster matrix
# 交叉检查集群状态
repmgr cluster crosscheck
# 清理集群资源
repmgr cluster cleanup

5. 服务管理

# 查看服务状态
repmgr service status
# 暂停服务
repmgr service pause
# 恢复服务
repmgr service unpause

6. 守护进程管理

# 启动 repmgrd 守护进程
repmgr daemon start
# 停止 repmgrd 守护进程
repmgr daemon stop
# 重新加载配置
repmgr daemon reload

7. 配置管理

# 显示配置项
repmgr config show
# 显示指定配置项
repmgr config show <name>
# 显示所有配置项
repmgr config showall
# 检查配置文件
repmgr config check

在这里插入图片描述

常用选项

通用选项

  • -?, --help: 显示帮助信息
  • -V, --version: 显示版本信息
  • --version-number: 仅显示版本号
  • --dry-run: 模拟运行,不执行实际操作
  • -F, --force: 强制执行潜在危险操作

配置选项

  • -f, --config-file=PATH: 指定配置文件路径
  • -b, --sys_bindir=PATH: Kingbase 二进制文件路径

数据库连接选项

  • -d, --dbname=DBNAME: 数据库名称 (默认: “root”)
  • -h, --host=HOSTNAME: 数据库服务器主机
  • -p, --port=PORT: 数据库端口 (默认: “54321”)
  • -U, --username=USERNAME: 数据库用户名 (默认: “root”)

节点特定选项

  • -D, --sysdata=DIR: 节点数据目录位置
  • --node-id: 通过节点ID指定节点
  • --node-name: 通过节点名称指定节点

日志选项

  • -L, --log-level: 设置日志级别
  • --log-to-file: 记录到配置文件定义的日志文件
  • -q, --quiet: 静默模式,仅显示错误
  • -t, --terse: 简洁输出模式
  • -v, --verbose: 详细输出模式

实际使用示例

1. 查看集群状态

# 在 kingbase 用户下执行
su - kingbase -c '/opt/Kingbase/ES/V8/kingbase/bin/repmgr cluster show'

输出示例:

 ID | Name     | Role    | Status    | Upstream | Location | Priority | Timeline | LSN_Lag | Connection string
----+----------+---------+-----------+----------+----------+----------+----------+---------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1  | replica0 | primary | * running |          | default  | 100      | 1        |         | host=245.0.0.164 user=esrep dbname=esrep port=54321 connect_timeout=5 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000
 2  | replica1 | standby |   running | replica0 | default  | 100      | 1        | 0 bytes | host=245.0.8.188 user=esrep dbname=esrep port=54321 connect_timeout=5 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000

2. 查看节点详细状态

su - kingbase -c '/opt/Kingbase/ES/V8/kingbase/bin/repmgr node status'

输出示例:

Node "replica0":
	Kingbase version: KingbaseES V008R006C008M020B0025 on x86_64-pc-linux-gnu
	Total data size: 1863 MB
	Conninfo: host=245.0.0.164 user=esrep dbname=esrep port=54321 connect_timeout=5 keepalives=1 keepalives_idle=2 keepalives_interval=2 keepalives_count=3 tcp_user_timeout=9000
	Role: primary
	WAL archiving: enabled
	Archive command: /opt/Kingbase/ES/V8/archive_push.sh %p && sys_rman version > /dev/null
	WALs pending archiving: 0 pending files
	Replication connections: 1 (of maximal 32)
	Replication slots: 1 physical (of maximal 32; 0 missing)
	Replication lag: n/a

3. 节点健康检查

su - kingbase -c '/opt/Kingbase/ES/V8/kingbase/bin/repmgr node check'

4. 查看服务状态

su - kingbase -c '/opt/Kingbase/ES/V8/kingbase/bin/repmgr service status'

输出示例:

 ID | Name     | Role    | Status    | Upstream | repmgrd | PID  | Paused? | Upstream last seen
----+----------+---------+-----------+----------+---------+------+---------+--------------------
 1  | replica0 | primary | * running |          | running | 1447 | no      | n/a
 2  | replica1 | standby |   running | replica0 | running | 1886 | no      | 2 second(s) ago

5. 查看配置信息

su - kingbase -c '/opt/Kingbase/ES/V8/kingbase/bin/repmgr config show'

重要注意事项

  1. 权限要求: repmgr 必须以非特权用户(通常是 kingbase 用户)运行
  2. 配置文件: 默认配置文件路径为 /opt/Kingbase/ES/V8/kingbase/etc/repmgr.conf
  3. 服务用户: 复制用户默认为 esrep,数据库名为 esrep
  4. 默认端口: Kingbase 默认端口为 54321
  5. 日志文件:
    • hamgr.log: /opt/Kingbase/ES/V8/kingbase/log/hamgr.log
    • kbha.log: /opt/Kingbase/ES/V8/kingbase/log/kbha.log

Kubernetes 环境使用

在 Kubernetes 环境中,可以通过 kubectl exec 命令在 Pod 中执行 repmgr:

# 设置 kubeconfig
export KUBECONFIG=/bpx/.25-admin.conf

# 执行 repmgr 命令
kubectl exec -n qfusion-admin <pod-name> --insecure-skip-tls-verify -- \
  bash -c "su - kingbase -c '/opt/Kingbase/ES/V8/kingbase/bin/repmgr <command>'"

验证环境信息

  • 命名空间: qfusion-admin
  • Pod: kingbase-f2eaf61d-replica0-0, kingbase-f2eaf61d-replica1-0
  • 架构: 主备模式 (primary-standby)
  • 验证时间: 2025-11-05

配置参数说明

基于实际验证的配置:

  • ha_running_mode='DG': 数据卫士模式
  • failover='automatic': 自动故障切换
  • synchronous='quorum': 同步复制模式为仲裁
  • trusted_servers: 可信服务器列表
  • node_id: 节点唯一标识
  • node_name: 节点名称
  • conninfo: 连接字符串参数

此文档已在实际环境中验证,配置和命令均基于 KingbaseES V008R006C008M020B0025 版本测试通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值