目录
一 Orchestrator简介
二 Orchestrator功能
1 Discovery(发现复制拓扑)
2 Refactoring(重构复制拓扑)
3 Recovery(恢复主库故障)
三 orchestrator支持的操作方式
四 部署要求
五 下载
六 安装
1 下载软件包
2 解压软件包
3 创建账号
第一种是 orc后端MySQL数据库账号
第二种是需要被管理的MySQL集群的账号
4 添加orc服务高可用
5 启动orc
6 访问web页面
7 添加被管理的集群
参考
一 Orchestrator简介
orchestrator
是一个 MySQL 高可用和复制拓扑管理工具,作为服务运行并提供命令行访问、HTTP API 和 Web 界面。
二 Orchestrator功能
1 Discovery(发现复制拓扑)
Orc主动发现MySQL的复制拓扑并映射他们。它读取MySQL的基本信息比如复制状态与配置。
它为您提供了清晰的拓扑结构可视化,包括复制问题,甚至在出现故障时也是如此。
2 Refactoring(重构复制拓扑)
Orc理解复制规则,它明白关于binlog file的position, GTID, Pseudo GTID, Binlog Servers等信息。重构MySQL复制拓扑结构只需将副本拖放到另一个主副本下即可。移动副本是安全的:orchestrator
将拒绝非法重构尝试。细粒度的控制是通过各种命令行选项实现的。
3 Recovery(恢复主库故障)
orchestrator
使用整体方法??来检测主库和中间主库的故障。
根据从复制拓扑本身获得的信息,它可以识别各种故障场景。故障恢复方式可配置的,包含自动恢复 和 手动恢复。中间主库的恢复在Orc内部实现。主库故障恢复支持故障前后的钩子脚本。
恢复过程利用了orc对拓扑的理解及其执行重构的能力。它基于状态而不是配置:orchestrator
通过在恢复本身时调查/评估拓扑来选择最佳恢复方法。
三 orchestrator
支持的操作方式
命令行(调试信息,自动脚本)
Web APi (HTTP GET 访问)
Web图形界面(非常清晰)
另外的功能:
- orc服务本身高可用
- Controlled master takeovers
- 支持手动故障恢复
- 故障转移审计
- Pseudo-GTID
- 数据中心/物理位置感知
- HTTP 安全/身份验证方法
- 还有一个orchestrator-mysql Google groups论坛,用于讨论orchestrator相关的主题
四 部署要求
orchestrator
是一个独立的应用程序。当配置为与MySQL
后端一起运行时,需要安装 MySQL。当配置为与SQLite
后端一起运行时,不需要进一步的依赖项。
orchestrator
在 Linux 64 位和 Mac OS/X 上构建和测试。官方二进制文件仅适用于 Linux。
五 下载
orchestrator
以开源方式发布,可在GitHub上获取。在https://github.com/openark/orchestrator/releases中查找官方版本
orchestrator软件包可以在
github/orchestrator - Packages · packagecloud找到
对于开发人员来说:orchestrator
是可以得到的。问题:
请参阅面向开发人员的 Orchestrator
六 安装
1 下载软件包
通过tar包的方式安装 ,下载安装包,截止到写这篇博客 ,最新版本为 3.2.6
服务器为X86_64,没有找到X86_64的安装包,我查了下CPU架构,发现amd64兼容X86_64, 这里下载
orchestrator-3.2.6-linux-amd64.tar.gz 软件包即可。
wget https://github.com/openark/orchestrator/releases/download/v3.2.6/orchestrator-3.2.6-linux-amd64.tar.gz
2 解压软件包
tar -zxvf orchestrator-3.2.6-linux-amd64.tar.gz
解压安装包之后出现两个目录 ./usr/local/orchestrator/ 和 ./etc/systemd/system/
./usr/local/orchestrator/目录下文件
文件解释
orchestrator 二进制命令
orchestrator-sample.conf.json MySQL配置文件模板
orchestrator-sample-sqlite.conf.json sqllite数据库配置文件
resources rchestrator相关文件,client、web、pseudo-gtid等
./etc/systemd/system/目录下文件
mv orchestrator/ /usr/local/orchestrator-3.2.6
3 创建账号
需要创建2种账号
第一种是 orc后端MySQL数据库账号
CREATE DATABASE IF NOT EXISTS orchestrator;
CREATE USER 'orchestrator_admin'@'10.79.23.%' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orchestrator_admin'@'10.79.23.%';
第二种是需要被管理的MySQL集群的账号
为了发现被管理的数据库的拓扑结构, 每个MySQL集群需要创建相同的账号 ,相同的密码 。所以在每个集群的主库上执行一下创建账号的命令:
CREATE USER 'orchestrator'@'10.79.23.%' IDENTIFIED BY 'orc123';
GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'10.79.23.%';
GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'10.79.23.%';
以上权限解释
在MySQL5.6及其以上
REPLICATION SLAVE权限是需要执行
SHOW SLAVE HOSTS
命令,以及扫描二进制日志来支持Pseduo GTID ;
RELOAD权限是需要执行
RESET SLAVE操作需要;
PROCESS
权限是需要执行 SHOW PROCESSLIST命令来查看副本的连接信息;
如果设置了
master_info_repository = 'TABLE',还需要授予orc访问mysql.slave_master_info表的权限,
4 添加orc服务高可用
需要在配置文件中添加如下配置
"RaftEnabled": true,
"RaftDataDir": "/usr/local/orchestrator-3.2.6/raft",
"RaftBind": "10.79.23.45",
"DefaultRaftPort": 10008,
"RaftNodes": [
"10.79.23.45",
"10.79.23.46",
"10.79.23.47"
]
5 启动orc
cd /usr/local/orchestrator-3.2.6
nohup ./orchestrator --debug -config orchestrator-sample.conf.json http &
6 访问web页面
http://10.79.23.45:3000/
可以看到后端数据库与现在orc的raft关系
7 添加被管理的集群
参考
官方地址 GitHub - openark/orchestrator: MySQL replication topology management and HA
orc 文档
ohttps://github.com/openark/orchestrator/tree/master/docs