赞
踩
orchestrator是MYSQL的高可用管理软件,使用go开发,功能类似MHA,就是在mysql主从发生故障时,控制mysql进行主从切换。
项目地址为:https://github.com/openark/orchestrator
相比MHA,orchestrator更加轻量化、也更年轻。
轻量化是它不需要agent,只需要在mysql实例上新建一个具有特定权限的用户就可以接入orchestrator。
软件可以下载二进制包,开箱即用,不需要装很多的perl依赖。
年轻是比MHA出来的晚好多年,因此它相比MHA补充了一些新特性,比如web浏览器访问,web API接口、自身的高可用机制(基于raft协议)。
但是MHA在服务挂掉时,会尝试把确实的binlog在从库上补齐,这点orchestrator做不到。
说明:
1、orchestrator组件很少,基本的就一个主程序文件,一个配置文件就够了。
2、orchestrator自己需要使用数据库存储元数据信息,因此需要为它专门建一个db,支持mysql和sqllite。
3、在mysql数据库服务器上,不需要做任何软件的安装,只需要新建一个用户给orchestrator使用即可,用户权限为
### 用户名可以自定义,此处为举例说明
CREATE USER 'orchestrator'@'orch_host' IDENTIFIED BY 'orch_topology_password';
GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO 'orchestrator'@'orch_host';
GRANT SELECT ON mysql.slave_master_info TO 'orchestrator'@'orch_host';
实例发现(discovery)------>故障检测(detection)-------→故障恢复(recovery)
实例发现:通过图形界面或者命令行方式,注册mysql实例。
故障检测:orchestrator连接到已发现的mysql实例,执行一系列检测的sql语句,并将数据处理分析后,存储至orchestrator元数据库。
检测逻辑在instance_dao.go文件中的ReadTopologyInstanceBufferable函数中。
分析逻辑在analysis_dao.go文件中的GetReplicationAnalysis函数中。
故障恢复:若发现出现故障,则触发恢复。
恢复逻辑中存在多个hook钩子函数。可以通过配置hook函数,调用自定义的shell脚本,完成额外的自定义处理,比如VIP的切换等。
基本的恢复流程为,执行故障恢复前的钩子函数----→选出新的master,并change master完成新拓扑------->执行恢复完成后的钩子函数。
翻译自:https://github.com/openark/orchestrator/blob/master/docs/supported-topologies-and-versions.md
支持:
1、支持基于file: position的经典主从复制。
2、支持Oracle GTID和MariaDB GTID的gtid模式复制。
3、支持基于语句(statement)和基于行(row)的复制。
4、支持半同步复制。
5、支持单主模式和只有两个主的双主模式。
6、5.7并行复制的支持:对于使用GTID没有限制。对于使用Pseudo-GTID,则必须要开启in-order-replication(见参数slave_preserve_commit_order)。
限制:
1、不支持3个或者3个以上的多主模式。
2、不支持5.6的并行复制(基于schema)。
3、不支持多源复制。
4、不支持Tungsten replicator。
5、Galera/XtraDB Cluster 不严格支持。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。