Chinaunix首页 | 论坛 | 博客
  • 博客访问: 780952
  • 博文数量: 99
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1163
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-22 09:50
个人简介

一个守望数据库的老菜鸟

文章分类

全部博文(99)

文章存档

2019年(21)

2018年(17)

2017年(37)

2016年(24)

我的朋友

分类: Mysql/postgreSQL

2019-10-14 17:28:11

博客文章除注明转载外,均为原创。转载请注明出处。
本文链接地址:http://blog.chinaunix.net/uid-31396856-id-5825956.html


      orchestrator是一款开源对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。
      orchestrator后台依赖于MySQL存储元数据,能够提供Web界面展示MySQL集群的拓扑关系及实例状态,可以通过Web界面可更改MySQL实例的部分配置信息,同时也提供命令行和api接口,以便更加灵活的自动化运维管理。
   Orchestrator 对MySQL主库的故障切换分为自动切换和手动切换。手动切换又分为recover、force-master-failover、force-master-takeover以及graceful-master-takeover.
   相比于MHA,Orchestrator更加偏重于复制拓扑关系的管理,能够实现MySQL任一复制拓扑关系的调整,并在此基础上,实现MySQL高可用。
   Orchestrator本身也可以部署多个节点,通过raft分布式一致性协议,保证其自身高可用性。
Orchestrator特性如下:
1、发现(discover)
orchestrator主动搜寻MySQL拓扑并进行映射。它能读取基本的MySQL信息,例如复制状态和配置。即使遇到故障,也可以为MySQL环境的拓扑提供流畅的可视化效果,包括复制问题。
2、重构(Refactoring)
orchestrator了解复制规则。它知道binlog文件:位置,GTID,伪GTID,Binlog服务器。
重构复制拓扑可以是将副本拖放到另一个主副本下的问题。移动副本是安全的:orchestrator将拒绝非法的重构尝试。通过各种命令行选项可以实现细粒度的控制。
3、恢复(recover)
orchestrator使用全面方法来检测主库故障和级联中间主库的故障。根据从拓扑本身获得的信息,它可以识别各种故障情况。
可通过配置,orchestrator可以选择执行自动恢复(或允许用户选择手动恢复的类型)。在内部实现中间主库的恢复。orchestrator通过Hooks进行自定义脚本支持故障切换。

我们先来安装Orchestraor体验一把。
1、部署MySQL复制环境
OS:Redhat 6.4
数据库版本为:MySQL 5.7.27
10.104.0.12 mydb01   master
10.104.0.13 mydb02   slave
10.104.0.14 mydb03   slave
2、安装orchestrator
(1)安装相关依赖包
rpm -ivh libonig2-5.9.2-4.1.x86_64.rpm libjq1-1.5-11.3.x86_64.rpm jq-1.5-7.1.x86_64.rpm
(2)安装软件
rpm -ivh orchestrator-3.1.2-1.x86_64.rpm
rpm -ivh  orchestrator-cli-3.1.2-1.x86_64.rpm
[root@mydb01 orchestrator]# rpm -qa|grep orch
orchestrator-3.1.2-1.x86_64
orchestrator-cli-3.1.2-1.x86_64
检查
[root@mydb01 orchestrator]# which orchestrator
/usr/bin/orchestrator
(3)升级glibc到2.14以上版本
wget
 wget
 tar -xvf glibc-2.18.tar.gz 
 cd glibc-2.18
 mkdir build && cd build && ../configure --prefix=/usr && make -j4 && make install

3、配置orchestrator后台数据库:
10.103.0.12 3307实例
CREATE DATABASE IF NOT EXISTS orchestrator;
GRANT ALL PRIVILEGES ON `orchestrator`.* TO 'orches'@'%' IDENTIFIED BY 'orches';

4、配置
cp /usr/local/orchestrator/orchestrator-sample.conf.json /etc/orchestrator/orchestrator.conf.json
修改并配置如下参数:
  "MySQLTopologyUser": "orchcli",       --拓扑管理用户
  "MySQLTopologyPassword": "orchcli",  --拓扑管理用户的密码
 "MySQLOrchestratorHost": "127.0.0.1",  --后台数据库地址
  "MySQLOrchestratorPort": 3307,    --后台数据库端口
  "MySQLOrchestratorDatabase": "orchestrator",   --后台数据库名称
  "MySQLOrchestratorUser": "orches",     --后台数据库访问用户
  "MySQLOrchestratorPassword": "orches", --后台数据库访问用户密码
"MySQLConnectTimeoutSeconds":   1,       --Orchestrator连接MySQL的超时时间,默认为2秒。    
"InstancePollSeconds": 3,                         --Orchestrator连接实例的间隔秒数,默认5秒
"MySQLTopologyReadTimeoutSeconds":  3,      --MySQL拓扑结构读超时时间,指发现之外的超时
"MySQLDiscoveryReadTimeoutSeconds": 3,     --MySQL拓扑结构发现超时时间
"RecoveryPeriodBlockSeconds": 3600,     --在该时间内再次出现故障,不会进行切换,避免出现并发恢复和不稳定。默认3600
 "RecoverMasterClusterFilters": ["*"],     --
 "RecoverIntermediateMasterClusterFilters": ["*"],
这两项是定义自动近期故障切换的指标。
PreFailoverProcesses:定义failover前orchestrator做什么操作
PostFailoverProcesses:定义failover后orchestrator做什么操作

4、启动orchestrator
cd /usr/local/orchestrator && ./orchestrator http &

5、启动打开web访问orchestrator
可以自动发现,也可以手动发现:
点击Clusters--discover

完成后,MySQL的拓扑显示如下:
  --The end!
阅读(9386) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

FJ1234562019-10-17 11:34:02

启动orchestrator

FJ1234562019-10-17 11:33:56

启动orchestrator

FJ1234562019-10-17 11:33:36

挺有道理