orchestrator简介
orchestrator是一款开源对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。
orchestrator后台依赖于MySQL存储元数据,能够提供Web界面展示MySQL集群的拓扑关系及实例状态,可以通过Web界面可更改MySQL实例的部分配置信息,同时也提供命令行和api接口,以便更加灵活的自动化运维管理。
相比于MHA,Orchestrator更加偏重于复制拓扑关系的管理,能够实现MySQL任一复制拓扑关系的调整,并在此基础上,实现MySQL高可用。
Orchestrator本身也可以部署多个节点,通过raft分布式一致性协议,保证其自身高可用性。
Orchestrator特性如下:
安装orchestrator(二进制方式,单点)
CREATE DATABASE IF NOT EXISTS orchestrator;
CREATE USER 'orc_server_user'@'%' IDENTIFIED BY 'orc_server_password';
GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orc_server_user'@'%';
wget https://github.com/openark/orchestrator/releases/download/v3.2.6/orchestrator-3.2.6-linux-amd64.tar.gz
tar -xvf orchestrator-3.2.6-linux-amd64.tar.gz -C /data/orchestrator_soft/
cd /data/orchestrator_soft/usr/local/orchestrator
cp orchestrator-sample.conf.json orchestrator.conf.json
确认配置文件orchestrator.conf.json中的以下内容与元数据库配置相同
######################################
"MySQLOrchestratorHost": "127.0.0.1",
"MySQLOrchestratorPort": 3306,
"MySQLOrchestratorDatabase": "orchestrator",
"MySQLOrchestratorUser": "orc_server_user",
"MySQLOrchestratorPassword": "orc_server_password"
########################################
nohup ./orchestrator --config=/data/orchestrator_soft/usr/local/orchestrator/orchestrator.conf.json http &
方式一:创建用户在配置文件中配置
CREATE USER 'orchestrator'@'orc_host' IDENTIFIED BY 'orc_topology_password';
GRANT SUPER, PROCESS, REPLICATION SLAVE, REPLICATION CLIENT, RELOAD ON *.* TO 'orchestrator'@'orc_host';
GRANT SELECT ON meta.* TO 'orchestrator'@'orc_host';
GRANT SELECT ON ndbinfo.processes TO 'orchestrator'@'orc_host'; -- Only for NDB Cluster
GRANT SELECT ON performance_schema.replication_group_members TO 'orchestrator'@'orc_host'; -- Only for Group Replication / InnoDB cluster
本测试案例
create user 'orc_client_user'@'%' identified by 'orc_client_password';
GRANT SUPER, PROCESS, REPLICATION SLAVE, REPLICATION CLIENT, RELOAD ON *.* TO 'orc_client_user'@'%';
GRANT SELECT ON orchestrator.* TO 'orc_client_user'@'%';
配置文件修改如下两处:
"MySQLTopologyUser": "orc_client_user",
"MySQLTopologyPassword": "orc_client_password",
方法二:配置文件
{
"MySQLTopologyCredentialsConfigFile": "/etc/mysql/orchestrator-topology.cnf",
"InstancePollSeconds": 5,
"DiscoverByShowSlaveHosts": false,
}
cat /etc/mysql/orchestrator-topology.cnf
#######################################
[client]
user=orchestrator
password=orc_topology_password
#######################################
orchestrator-client 在/data/orchestrator_soft/usr/local/orchestrator/resources/bin目录下
方法一:界面(如下图)
方法二:命令行
./orchestrator-client -c discover -i VM-16-10-centos:3306
./orchestrator-client -c discover -i 10.206.16.10:3306
1 新建主从(略) 2 在主库新建纳管理账户--参考第5步 3 纳管(discover)
./orchestrator-client -c discover -i 10.206.16.5:3306 (任意库ip+端口即可)
./orchestrator-client -c all-instances
web界面