Orchestrator 管理 MySQL 数据库复制环境

Orchestrator 提供了Web界面、命令行和API三种方式来管理MySQL的复制(Replication)集群。它不仅能够显示复制关系,还能改变复制关系,自动切换master到具有最新数据的slave上。如果MySQL的数据目录是单独的LVM分区,则可以与orchestrator-agent搭配,还能很方便地创建加入新的slave节点,修复故障slave节点。

Orchestrator及Orchestrator-agent是 Shlomi Noach 在booking.com, outbrain,及github.com(目前在职)期间开发的MySQL DBA工具。Orchestrator应用于管理这几家企业中上千台的MySQL实例。 目前作者的主要精力放在Orchestrator上,其相应的文档也更齐全,也提供了编译好了的二进制包、以及deb、rpm包供下载。而Orchestrator-agent则相对欠缺得多,需要自己打包。

基于Orchestrator的命令行或API,我们可以进一步集成到监控系统中,从而及时发现节点故障。也可以在Orchestrator的一些地方集成进其他的MySQL高可用重要的功能,比如如何告诉应用程序最新的master节点,或者移动vip,或者更新dns记录等。

知名的MySQL咨询公司Percona的博客上有两篇介绍它们的文章。第一篇是 Orchestrator: MySQL Replication Topology Manager ,第二篇是 Orchestrator-agent: How to recover a MySQL database

` 简书 <www.jianshu.com>`_ 上也有一篇文章 ` MySQL高可用简析 <http://www.jianshu.com/p/cc6746ac4fc2> _ 也重点推介了 Orchestrator,而且作者自己的MySQL工具集 `go mysql 收获的星还很高。

另外,一点细节,Orchestrator-agent作为一个go项目,需要遵循go的惯例来获取依赖包并编译。此外,作者使用了 fpm 来创建deb、rpm等格式的分发包。fpm是个ruby开发的工具,可以使用ruby gem来安装。对于使用chef的人来说,chef带的ruby版本比较高,而且默认在用户目录下也有gem目录,适合用来安装fpm。