一文学会如何部署MySQL复制拓扑管理工具:Orchestrator

数据库 MySQL
今天主要介绍一下如何部署MySQL复制拓扑管理工具--Orchestrator。下面,我们一起来看。

今天主要介绍一下如何部署MySQL复制拓扑管理工具--Orchestrator。

一、MySQL复制拓扑管理工具Orchestrator

1. 简介

Orchestrator是一款开源的MySQL复制拓扑管理工具,采用go语言编写,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换、手动主从切换等功能。

Orchestrator后台依赖于MySQL或者SQLite存储元数据,能够提供Web界面展示MySQL集群的拓扑关系及实例状态,通过Web界面可更改MySQL实例的部分配置信息,同时也提供命令行和api接口,以便更加灵活的自动化运维管理。

相比于MHA,Orchestrator更加偏重于复制拓扑关系的管理,能够实现MySQL任一复制拓扑关系的调整,并在此基础上,实现MySQL高可用,另外Orchestrator自身可以部署多个节点,通过raft分布式一致性协议,保证自身的高可用。

2. 特征

Orchestrato主要有以下几个特征:

  • 自动监测数据库复制的结构及其状态
  • 提供了GUI,CLI,API等接口来检查复制拓扑的状态以及做一些调整的操作
  • 支持自动的master failover,当复制结构的server挂掉以后(不管手动还是自动的),能够重新形成复制的拓扑结构
  • 不依赖于特定的server版本或分支(MySQL, Percona Server, MariaDB or even MaxScale binlog servers)
  • 支持多种类型的拓扑结构,不管是单个的主从还是成百上千个server组成的多级复制都不在话下
  • 他的GUI不只是做向你report拓扑状态而已,你可以在Orchestrator web页面通过拖拽或者删除节点来改变复制拓扑(CLI和API也能做)

3. 体系结构

以下图表说明了每个 Orchestrator 功能以及相互之间的通信。

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

Orchestration 数据库是 Orchestrator 安装的中心,其中包含所有 Runbook、配置设置和日志。 系统需要以 Management 服务器作为 Runbook Designer 与 Orchestration 数据库之间的通信层。 一个或多个 Runbook 服务器直接与此数据库通信,以检索要运行的 Runbook 以及存储关于从 Runbook 中创建的作业的信息。 Web 服务也直接与 Orchestration 数据库通信,并为 Orchestration 控制台提供 Web 浏览器连接。

二、环境准备

1. IP规划

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

2. 设置hostname解析

三、安装部署Orchestrator

源码地址:https://github.com/github/orchestrator.git

1. 下载

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

2. rpm安装

安装完成后,目录在/usr/local/orchestrator

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

3. 修改my.cnf

MySQL配置文件加一个report_host参数,report_host为只读参数,必须重启才可生效

说明:不加report_host ,show slave hosts 不会显示host,会导致程序报错的

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

4. 创建数据库及用户

(1) 拓扑库操作:

  1. CREATE DATABASE IF NOT EXISTS orchestrator; 
  2. GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orche'@'%' IDENTIFIED BY 'xxxxx'; 

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

(2) 主从库操作:

如果是主从复制,主从分别操作

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

5. 修改orchestrator配置文件

  1. # cd /usr/local/orchestrator/ 
  2. # cp orchestrator-sample.conf.json orchestrator.conf.json 
  3. # vim orchestrator.conf.json 
  4. ========================================================= 
  5.  "Debug": true, 
  6.  "EnableSyslog": false, 
  7.  "ListenAddress": ":3000", #http开放端口 
  8.  "MySQLTopologyUser": "orche", #mysql管理账号,所有被管理的MySQL集群都需要有该账号 
  9.  "MySQLTopologyPassword": "xx", #mysql管理账号密码 
  10.  "MySQLTopologyCredentialsConfigFile": "", 
  11.  "MySQLTopologySSLPrivateKeyFile": "", 
  12.  "MySQLTopologySSLCertFile": "", 
  13.  "MySQLTopologySSLCAFile": "", 
  14.  "MySQLTopologySSLSkipVerify": true, 
  15.  "MySQLTopologyUseMutualTLS": false, 
  16.  "MySQLOrchestratorHost": "xx", #后台mysql数据库地址,orchestrator依赖MySQL或者SQLite存储管理数据 
  17.  "MySQLOrchestratorPort": 3306, #后台mysql数据库端口 
  18.  "MySQLOrchestratorDatabase": "orchestrator", #后台mysql数据库名 
  19.  "MySQLOrchestratorUser": "orche", #后台mysql数据库账号 
  20.  "MySQLOrchestratorPassword": "xx", #后台mysql数据库密码 
  21.  ................. 
  22.  ] 
  23.  ========================================================= 

注意:MySQLTopologyUser 这个配置项为被管理的MySQL集群的admin账号,该账号需要有super,process,reload,select,replicatiopn slave,replicatiopn client 权限。

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

6. 启动orchestrator

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

7. 发现实例

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

8. 访问

Web页面:http://172.26.151.69:3000

一文学会如何部署MySQL复制拓扑管理工具--Orchestrator

到这里就完成orchestrator的搭建工作了。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2019-07-19 16:55:07

MySQL管理工具Orchestrato

2020-08-03 08:01:50

爬虫技巧

2020-04-20 10:47:57

Redis数据开发

2021-06-28 14:13:34

OOM内存事故

2021-04-30 07:33:35

效率提升技巧

2021-04-28 07:22:13

HiveJson数组

2020-08-31 06:54:37

注解脱敏ELK

2021-06-26 09:26:01

Jupyter主题目录

2021-03-29 08:24:18

KubeadmKubernetes1运维

2021-08-04 07:47:18

IDEJTAGSWD

2020-10-30 11:18:47

网络技术工具

2020-09-30 14:05:22

网络管理

2023-11-01 10:49:50

Python面向对象

2010-05-25 18:36:54

MySQL管理工具

2009-05-21 10:38:51

MySQLphpMyAdminSun

2014-03-28 11:15:42

phpmyadminMySQL管理

2023-09-26 12:22:37

队列Python

2021-04-07 08:13:28

LirbeNMS开源SNMP

2019-07-26 06:29:22

MySQL数据库SQL

2019-03-21 09:45:11

TypeScript编程语言Javascript
点赞
收藏

51CTO技术栈公众号