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'
重要注意事项
- 权限要求: repmgr 必须以非特权用户(通常是 kingbase 用户)运行
- 配置文件: 默认配置文件路径为
/opt/Kingbase/ES/V8/kingbase/etc/repmgr.conf - 服务用户: 复制用户默认为
esrep,数据库名为esrep - 默认端口: Kingbase 默认端口为
54321 - 日志文件:
- hamgr.log:
/opt/Kingbase/ES/V8/kingbase/log/hamgr.log - kbha.log:
/opt/Kingbase/ES/V8/kingbase/log/kbha.log
- hamgr.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 版本测试通过。
737

被折叠的 条评论
为什么被折叠?



