MySQL高可用主从切换工具replicationmanager

MySQL高可用工具,一直以来MHA使用的比较多,自从MySQL 引入GTID之后,又出现了Orchestrator以及replication-manager这类新的高可用工具,本文将主要介绍replication-manager的使用方法。

一、replication-manager简介

replication-manager是signal18开源的一款数据库高可用工具,采用go语言开发,源代码托管在github上。

支持的MySQL的版本:

  • MariaDB 10.x
  • MySQL & Percona Server 5.7 GTID

功能特性:

  • 复制关系监控与拓扑检测
  • 在线切换(switchover)
  • 故障切换(failover)
  • 多集群管理
  • 支持代理( ProxySQL, MaxScale, HAProxy, Spider)
  • 大多数场景数据零丢失

二、下载及安装

在github上搜索replication-manager,下载源码(v2.0)

编译(需要联网):

  • 创建目录:mkdir -p /data/go
  • 加入环境变量: export GOPATH=/data/go
  • clone源码: go get github.com/signal18/replication-manager
  • 编译安装: go install github.com/signal18/replication-manager
  • 加入PATH环境变量: export PATH=$PATH:/data/go/bin
  • 编译完成之后,会在/data/go/bin目录下,生成一个replication-manager可执行文件。

编译完整二进制版本:
cd /data/go/src/github.com/signal18/replication-manager
./build_linux_amd64.sh

在源码目录中,生成可执行文件:

  • replication-manager
  • replication-manager-arb
  • replication-manager-cli
  • replication-manager-min
  • replication-manager-min-basedir
  • replication-manager-osc
  • replication-manager-osc-basedir
  • replication-manager-pro
  • replication-manager-pro-basedir
  • replication-manager-tst
  • replication-manager-tst-basedir

下面演示案例,只使用 replication-manager-osc 和 replication-manager-cli。
replication-manager-osc 为后台集群监视程序,负责MySQL状态的获取和监控,以及切换的执行等等。
replication-manager-cli 为客户端程序,负责管理命令的发送。

三、使用案例

配置文件 config.toml:

[Default] title = "ClusterTest" db-servers-hosts =  "192.168.56.110:3306,192.168.56.111:3306,192.168.56.112:3306" db-servers-credential = "admin:123456" replication-credential = "repl:123456" failover-mode = "automatic" arbitrator-bind-address = "0.0.0.0:10005" arbitrator-driver = "sqlite"