背景在MySQL的高可用架构中,MySQL5.7之后Percona的PXC、Galera、MGR被广泛使用。其他的还有MHA,今天给大家介绍另一个好用的MySQL高可用复制管理工具:Orchestrator(orch)。Orchestrator是一款用go编写的MySQL高可用和复制拓扑管理工具,支持调整复制拓扑、自动故障转移和手动主从切换。后端数据库使用MySQL或SQLite存储元数据,并提供Web界面显示MySQL复制的拓扑关系和状态。可以通过Web更改MySQL实例的复制关系和部分配置信息。同时提供命令行和api接口,方便运维管理。与MHA相比,最重要的是解决了管理节点的单点问题,通过raft协议保证了其高可用。GitHub的部分管理也是用这个工具来管理的。Orchestrator的一般特点是:①自动发现MySQL的复制拓扑并显示在web上。②重构复制关系,可以在网页上拖动图片改变复制关系。③检测主要异常,可自动或手动恢复,通过Hooks自定义脚本。④支持命令行和网页界面管理复制。安装根据需要下载合适的安装包。下载deb包后,需要安装jq依赖包(apt-getinstalljq)。安装完成后对应目录为:/usr/local/orchestrator-rwxr-xr-x1rootroot20MJanuary1621:49orchestrator-rw-r--r--1rootroot5.1KJanuary1621:49orchestrator-sample.conf.json-rw-r--r--1rootroot4.4KJanuary1621:49orchestrator-sample-sqlite.conf.jsondrwxr-xr-x7rootroot4.0KFebruary1519:03resourcesorchestrator:application*.json:defaultconfigurationtemplateresources:orchestrator相关文件:Client,web、pseudoGTID和其他相关文件。配置中列出了几个重要的参数:ListenAddress:web接口的http端口MySQLOrchestratorHost:orch后端数据库地址MySQLOrchestratorPort:orch后端数据库端口MySQLOrchestratorDatabase:orch后端数据库名称MySQLOrchestratorUser:orch后端数据库用户名(明文)MySQLOrchestratorPassword:orch后端数据库密码(明文)MySQLOrchestratorCredentialsConfigFile:后端数据库用户名密码配置文件""MySQLOrchestratorCredentialsConfigFile":"/etc/mysql/orchestrator-backend.cnf",格式:[client]user=orchestrator_srvpassword=${ORCHESTRATOR_PASSWORD}用户权限后端MySQL数据库的名称需要为:CREATEUSER'orchestrator_srv'@'orc_host'IDENTIFIEDBY'orc_server_password';GRANTALLONorchestrator.*TO'orchestrator_srv'@'orc_host';MySQLTopologyUser:托管MySQL用户(明文)MySQLTopologyPassword:托管MySQL密码(密文)MySQLTopologyCredentialsConfigFile:托管MySQL用户密码配置文件“/etc/mysql/orchestrator-topology.cnf”,格式:[client]user=orchestrator_srvpassword=${ORCHESTRATOR_PASSWORD}托管MySQL数据库的用户权限需要为:CREATEUSER'orchestrator'@'orc_host'IDENTIFIEDBY'orc_topology_password';GRANTSUPER,PROCESS,REPLICATIONSLAVE,REPLICATIONCLIENT,RELOADON*.*TO'orchestrator'@'orc_host';GRANTSELECTONmeta.*TO'orchestrator'@'orc_host';GRANTSELECTONndbinfo.processesTO'orchestrator'@'orc_host';--OnlyforNDBClu运行部署1.打开orchestrator./orchestrator--debug--config=/etc/orchestrator.conf.jsonhttp2。将配置好的replicationinstance添加到orchestrator中,因为orch可以自动发现整个topology的所有instance,所以只需要添加Anyinstance就可以了,如果找不到可以在web上添加(Clusters->Discoverinthenavigation):添加完成后,最终的结构图如下:篇幅有限总结一下原因,今天就对orchestrator做一个概览的整体介绍。
