orchestrator是一款开源对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。
orchestrator后台依赖于MySQL存储元数据,能够提供Web界面展示MySQL集群的拓扑关系及实例状态,可以通过Web界面可更改MySQL实例的部分配置信息,同时也提供命令行和api接口,以便更加灵活的自动化运维管理。
相比于MHA,Orchestrator更加偏重于复制拓扑关系的管理,能够实现MySQL任一复制拓扑关系的调整,并在此基础上,实现MySQL高可用。
Orchestrator本身也可以部署多个节点,通过raft分布式一致性协议,保证其自身高可用性。
Orchestrator特性如下:
- 发现(discover)orchestrator主动搜寻MySQL拓扑并进行映射。它能读取基本的MySQL信息,例如复制状态和配置。即使遇到故障,也可以为MySQL环境的拓扑提供流畅的可视化效果,包括复制问题。
- 重构(Refactoring)orchestrator了解复制规则。它知道binlog文件:位置,GTID,伪GTID,Binlog服务器。重构复制拓扑可以是将副本拖放到另一个主副本下的问题。移动副本是安全的:orchestrator将拒绝非法的重构尝试。通过各种命令行选项可以实现细粒度的控制。
- 恢复(recover)orchestrator使用全面方法来检测主库故障和级联中间主库的故障。根据从拓扑本身获得的信息,它可以识别各种故障情况。可通过配置,orchestrator可以选择执行自动恢复(或允许用户选择手动恢复的类型)。在内部实现中间主库的恢复。orchestrator通过Hooks进行自定义脚本支持故障切换。
安装orchestrator(二进制方式,单点)
1 安装元数据库(略)并创建账户
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'@'%';
2 下载安装包并解压
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/
3 修改配置文件
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"
########################################
4 启动
nohup ./orchestrator --config=/data/orchestrator_soft/usr/local/orchestrator/orchestrator.conf.json http &
5 在被纳管实例创建用户
方式一:创建用户在配置文件中配置
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
#######################################
6 发现元数据实例 -- 必须要有被纳管用户(包括元数据库)
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
7 纳管(discover)一主一从实例
1 新建主从(略)
2 在主库新建纳管理账户--参考第5步
3 纳管(discover)
./orchestrator-client -c discover -i 10.206.16.5:3306 (任意库ip+端口即可)
8 显示被纳管的集群
./orchestrator-client -c all-instances
web界面
欢迎关注公众号:DBA札记,一起交流数据库技术。后台回复“交流群”可添加技术交流群。欢迎觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!
本文由mdnice多平台发布
标签:orchestrator,--,简介,拓扑,client,user,MySQL,orc From: https://www.cnblogs.com/kaluolazhiye/p/17621731.html