前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >orchestrator系列(一)--简介及安装

orchestrator系列(一)--简介及安装

作者头像
DBA札记
发布2023-09-08 17:11:39
3730
发布2023-09-08 17:11:39
举报
文章被收录于专栏:MySQL参数系列MySQL参数系列

orchestrator简介

orchestrator是一款开源对MySQL复制提供高可用、拓扑的可视化管理工具,采用go语言编写,它能够主动发现当前拓扑结构和主从复制状态,支持MySQL主从复制拓扑关系的调整、支持MySQL主库故障自动切换(failover)、手动主从切换(switchover)等功能。

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

相比于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进行自定义脚本支持故障切换。

安装orchestrator(二进制方式,单点)

1 安装元数据库(略)并创建账户

代码语言:javascript
复制
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 下载安装包并解压

代码语言:javascript
复制
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 修改配置文件

代码语言:javascript
复制
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 启动

代码语言:javascript
复制
nohup ./orchestrator --config=/data/orchestrator_soft/usr/local/orchestrator/orchestrator.conf.json http &

5 在被纳管实例创建用户

方式一:创建用户在配置文件中配置

代码语言:javascript
复制
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
代码语言:javascript
复制
本测试案例
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",

方法二:配置文件

代码语言:javascript
复制
{
  "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目录下

方法一:界面(如下图)

方法二:命令行

代码语言:javascript
复制
./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)

代码语言:javascript
复制
./orchestrator-client -c discover -i 10.206.16.5:3306 (任意库ip+端口即可)

8 显示被纳管的集群

代码语言:javascript
复制
./orchestrator-client -c all-instances

web界面

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA札记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 安装元数据库(略)并创建账户
  • 2 下载安装包并解压
  • 3 修改配置文件
  • 4 启动
  • 5 在被纳管实例创建用户
  • 6 发现元数据实例 -- 必须要有被纳管用户(包括元数据库)
  • 7 纳管(discover)一主一从实例
  • 8 显示被纳管的集群
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档