Orchestrator介绍一 简介安装与web端管理

目录

一 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 高可用,更是一款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图形界面(非常清晰)

Orcehstrator screenshot

另外的功能:

  • 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 创建orc后台管理数据库

在部署orc的服务上部署三台单机的MySQL数据库,每个orc服务使用本地单机MySQL作为后端数据库。这里部署MySQL的过程不再赘述。

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"
  ]

4 整体的配置文件以及解释

5 启动orc

官方建议安装到目录 /usr/local/orchestrator  下 ,如果空间不够 ,可以做软连接。

orc 启动的时候会监听端口 3000,可以浏览器访问 http://your.host:3000/ 地址进入控制台。

如果是debug 模式 可以

cd /usr/local/orchestrator && ./orchestrator --debug http

刚详细的细节或错误 可以 用下面的方式

cd /usr/local/orchestrator && ./orchestrator --debug --stack http

通过配置文件启动

cd /usr/local/orchestrator && ./orchestrator --debug --config=/path/to/config.file http

 不在更新实例的状态 可以使用下面的方式启动

cd /usr/local/orchestrator && ./orchestrator --discovery=false http

 我这里通过配置文件启动

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 添加被管理的集群

 图标解释

标号1代表一些对拓扑结构中的警告或者失败

标号2的图标 是 Color by Data Center/ Disable colors。点亮后拓扑图中实例上就会根据数据中心显示颜色

标号3的图标是 Enable/Disable  compact display . 点亮从库就会聚合精简展示,如下

标号4 Enable/Disable pool indication 字面意思是开启/关闭池指示

标号5 Anonymize display/Cancel Anonymize  匿名显示/取消匿名显示  不会显示集群名 数据中心等信息

标号6 instance alias display /Cancel alias 显示实例别名/不显示实例别名

标号7 Slience UI Question/ Cancel UI  slience

拓扑界面展示

 两个箭头   Log replications updates 复制日志更新,应该是对应参数

笔 Writeable : read_only 参数设置为OFF 会显示这个图标,从库一般设置为ON,不会显示

齿轮 : Open config dialog  设置界面

另外还有一些信息是 实例别名 ,数据库版本 ,binlog格式binlog_format和 binlog_row_image这两个参数,复制延迟,数据角色等

主库的设置管理界面

从库设置管理界面

 从库会多一些信息 如下 

可操作的按钮

Detach replica 分离该从副本,会将给实例断开主从连接 ,观察现象是在主库实例名前加了// 所以连接不上。

四种模式区别

Smart mode 

Classic mode

GTID mode

Pseundo GTID  mode

参考

官方地址 GitHub - openark/orchestrator: MySQL replication topology management and HA

orc 文档 

ohttps://github.com/openark/orchestrator/tree/master/docs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/90651.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mall:redis项目源码解析

文章目录 一、mall开源项目1.1 来源1.2 项目转移1.3 项目克隆 二、Redis 非关系型数据库2.1 Redis简介2.2 分布式后端项目的使用流程2.3 分布式后端项目的使用场景2.4 常见的缓存问题 三、源码解析3.1 集成与配置3.1.1 导入依赖3.1.2 添加配置3.1.3 全局跨域配置 3.2 Redis测试…

idea上利用JDBC连接MySQL数据库(8.1.0版)

1.了解jdbc概念 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种 关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建 更高级的工具和接口&#…

[C++ 网络协议] 多进程服务器端

具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。✔ 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。 多线程服务器:通过生成与客户端等量的线程提供服务。 1. 进程的概念及应用 1.1 什么…

VR全景加盟会遇到哪些问题?全景平台会提供什么?

想创业,你是否也遇到这些问题呢?我是外行怎么办?没有团队怎么办?项目回本周期快吗?项目靠谱吗?加盟平台可信吗?等等这类疑问。近几年,VR产业发展迅速,尤其是VR全景项目在…

Linux保存退出和不保存退出命令

Vim编辑器 vim 要编辑的文件输入i进入编辑模式保存退出: 按Esc键退出insert模式,然后输入冒号(:),输入wq!可以保存并退出. 不保存退出: 按Esc键退出insert模式,然后输入冒号(:),输入q!可以不保存并退出。…

系统架构设计高级技能 · 大数据架构设计理论与实践

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA(一)【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估(二)【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…

云计算中的数据安全与隐私保护策略

文章目录 1. 云计算中的数据安全挑战1.1 数据泄露和数据风险1.2 多租户环境下的隔离问题 2. 隐私保护策略2.1 数据加密2.2 访问控制和身份验证 3. 应对方法与技术3.1 零知识证明(Zero-Knowledge Proofs)3.2 同态加密(Homomorphic Encryption&…

C++day5(静态成员、类的继承、多继承)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.静态数据成员静态成员函数&#xff08;银行账户实例&#xff09; #include <iostream>using namespace std;class BankAccount { private:double balance; //余额static double interest_rate; //利率 p…

【Cortex-M3权威指南】学习笔记2 - 指令集

目录 指令集汇编语言基础UAL 近距离检视指令数据传输数据处理子程呼叫与无条件跳转指令标志位与条件转移指令隔离指令饱和运算 CM3 中新引入指令MRS\MSRIF-THENCBZ/CBNZSDIV/UDIVREV RBITSXTBTBB,TBH 指令集 汇编语言基础 一条简单的汇编指令格式&#xff08;注释使用一个分号…

持续集成与持续交付:现代软件测试的变革之路

引言 在数字化时代&#xff0c;软件开发的速度和复杂性都在不断增加。为了满足市场的需求&#xff0c;企业需要更快、更高效地交付高质量的软件产品。在这样的背景下&#xff0c;持续集成与持续交付&#xff08;CI/CD&#xff09;成为了软件开发和测试的核心实践。 软件开发的…

UE4/5的Custom节点:在VScode使用HLSL(新手入门用)

目录 custom节点 VSCode环境安装 将VSCode里面的代码放入Custom中 custom节点 可以看到这是一个简单的Custom节点&#xff1a; 而里面是可以填写代码的&#xff1a; 但是在这里面去写代码会发现十分的繁琐【按下enter后&#xff0c;不会换行&#xff0c;也不会自动缩进】 …

Android scrollTo、scrollBy、以及scroller详解 自定义ViewPager

Scroller VelocityTracker VelocityTracker 是一个速度跟踪器&#xff0c;通过用户操作时&#xff08;通常在 View 的 onTouchEvent 方法中&#xff09;传进去一系列的 Event&#xff0c;该类就可以计算出用户手指滑动的速度&#xff0c;开发者可以方便地获取这些参数去做其他…

jemter连接数据json断言

文章目录 一、jmeter连接数据库1、加载JDBC驱动2、连接数据3、SQL Query的Query Type使用方法&#xff1a;4、Variable Name使用方法&#xff1a;5、Result variable name使用方法&#xff1a; 二、Json响应断言1、添加 》 断言 》 JSON断言2、JSON断言界面参数说明&#xff1a…

RH1288V3 - 初识物理服务器

如果你拥有一台物理服务器(不是云服务器) 个人比较推荐你用物理服务器&#xff0c;虽然性能会比云要来的差&#xff0c;但是不用每月交钱上。云服务固然方便&#xff0c;但是几个核的性能和一点存储&#xff0c;想做一个动漫网站固然要很多mp4这种影视资源&#xff0c;云服务器…

React+Typescript 父子组件事件传值

好 之前我们将 state 状态管理简单过了一下 那么 本文 我们来研究一下事假处理 点击事件上文中我们已经用过了 这里 我们就不去讲了 主要来说说 父子之间的事件 我们直接来编写一个小dom 我们父组件 编写代码如下 import Hello from "./components/hello";functio…

mysql profiling profiles profile

要想优化一条 Query&#xff0c;我们就需要清楚的知道这条 Query 的性能瓶颈到底在哪里&#xff0c;是消耗的 CPU计算太多&#xff0c;还是需要的的 IO 操作太多&#xff1f;要想能够清楚的了解这些信息&#xff0c;在 MySQL 5.0 和 MySQL 5.1正式版中已经可以非常容易做到了&a…

k8s之Pod及Probe 探针机制(健康检查机制)

文章目录 1、Pod1.1、定义1.2、Pod的形式1.3、Pod的使用1.4、 Pod生命周期1.5、初始化容器1.6、临时容器1.6.1、定义1.6.2、使用临时容器的步骤 1.7、静态Pod1.8、创建带标签的pod1.9、容器生命周期回调1.10、容器镜像使用秘钥从私有仓库下载1.11、多容器协同工作 2、Probe 探针…

第二讲Java基本语法(变量、数据类型、运算符)

一、前言导读 上一讲,我们安装java的开发工具idea,并且简单介绍如何使用,初步认识了Java的helloworld,我们写了第一行代码,有了初步的印象,接下来我们将真正展开对于java的了解,从这一讲开始,请大家做好笔记,改背的背。为什么说Java是一门编程语言呢,主要是他跟英语一…

基于单片机串口控制直流电机调速

一、系统方案 (2)本设计采用STC89C5单片机作为主控器&#xff0c;串口控制直流电机调速&#xff0c;串口助手发送1-8&#xff0c;改变电机速度&#xff0c;数码管显示对应速度。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 TMOD0x21;//定…

❤ 给自己的mac系统上安装java环境

❤ 给自己的mac系统上安装java环境 &#x1f353; 作为前端工程师如何给自己的mac系统上安装java环境 &#x1f34e; 最近因为自己的一些项目需求&#xff0c;mac电脑上需要安装一些后台的java环境&#xff0c;用来跑后台的java程序&#xff0c;于是从一个前端工程师的角度安…