MySQL高可用Orchestrator

news2025/1/13 13:26:07

目录

一 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图形界面(非常清晰)

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 创建账号

需要创建2种账号 

第一种是 orc后端MySQL数据库账号

10.79.21.29

CREATE DATABASE IF NOT EXISTS orchestrator;
CREATE USER 'orchestrator_admin'@'10.79.23.%' IDENTIFIED BY 'admin123';
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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

识别图片翻译怎么操作?几个好方法了解一下

图片翻译是一项非常有用的工具,可以让人们轻松地识别和翻译图片中的文字,对于一些步入职场的小伙伴尤其是从事文案编辑的朋友更是一个需要的技能,很多时候我们参考的多语言文献资料都是图片的格式,翻译内容的话会比较麻烦&#xf…

【python】python开源代理ip池

一、前言 随着互联网的不断发展,越来越多的应用需要使用高匿代理IP才能访问目标网站,而代理IP作为一种能够隐藏本机真实IP地址的工具,在网络抓取、搜索引擎排名、广告投放、反爬虫等方面有着广泛的应用场景。但是,由于代理IP的稳…

黑客自学路线

谈起黑客,可能各位都会想到:盗号,其实不尽然;黑客是一群喜爱研究技术的群体,在黑客圈中,一般分为三大圈:娱乐圈 技术圈 职业圈。 娱乐圈:主要是初中生和高中生较多,玩网恋…

玩转软件|钉钉个人版内测启动:AI探索未来的工作方式

目录 前言 正文 AI为核心,个人效率为王! 指令中心,解锁AI技巧! 灵感Store,探索更多可能! 未来的AI,即将问世! 个人内测体验 前言 重磅消息:钉钉个人版在8月16日正…

【JavaSE】详解final关键字

在Java中,final可以用来修饰类、方法和变量。final修饰类,表示该类无法被继承,并且此类的设计已被认为很完美而不需要进行修改或扩展。final修饰类中的方法,表示不可以被重写;也就是把该方法锁定了,以防止继…

最小栈00

题目链接 最小栈 题目描述 注意点 pop、top 和 getMin 操作总是在 非空栈 上调用 解答思路 由于栈先进后出的特点,对于任意一次入栈操作,只要该元素未被弹出,则其前面插入的元素一定都还在栈中,所以每次入栈时只需要根据其前…

Lnton羚通视频算法算力云平台【PyTorch】教程:学习Datasets-DataLoader基础知识

Dataset & DataLoader PyTorch 提供了两个数据处理的基本方法:torch.utils.data.DataLoader torch.utils.data.Dataset 允许使用预加载的数据集以及自己的数据。 Dataset 存储样本及其对应的标签, DataLoader 在 Dataset 基础上封装了一个可迭代的对…

苍穹外卖 day3 实现登录过程中MD5加密

一 原来是明文存的 密码可见度太高,MD5加密为密文图像 效果 二 密文实现步骤 修改明文密码,改成密文 123456 密文值:e10adc3949ba59abbe56e057f20f883e代码如下所示 在这里插入代码片 package com.sky.service.impl;import com.sky.con…

[bug日志]springboot多模块启动,在yml配置启动端口8081,但还是启动了8080

【问题描述】 配置的启动端口是8081,实际启动端口是8080 【解决方法】 1.检查application.yml的配置是否有错误(配置项中,显示白色就错,橙色无措) 2.检查pom.xml的打包方式配置项配置,主pom.xml中的配置项一般为:&l…

司徒理财:8.23黄金最新行情走势分析及操作策略

黄金走势分析:      黄金下跌遇阻,短线开启震荡调整走势,但跌势依旧没有改变,没有突破1906压力前,还是偏空走势,反弹继续干空。趋势行情,不要轻言翻转!即便下跌结束,…

DB2的日志

在DB2中,该机制使用日志功能实现。所谓日志,可以被认为在一条事务被落实之前,能够保证其记录被写入永久存储系统的一种方法。 那么为什么需要日志呢?直接把变化的数据写入磁盘不是更好?之所以需要日志,主要…

芯科科技宣布推出下一代暨第三代无线开发平台,打造更智能、更高效的物联网

第三代平台中的人工智能/机器学习引擎可将性能提升100倍以上 Simplicity Studio 6软件开发工具包通过新的开发环境将开发人员带向第三代平台 中国,北京 - 2023年8月22日 – 致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs&…

基于IDEA使用maven创建hibernate项目

1、创建maven项目 2、导入hibernate需要的jar包 <!--hibernate核心依赖--><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.4.1.Final</version></dependency><!--…

微信小程序:页面有内容却不显示原因

先检查&#xff0c;app.json中这两项路径是否正确 如果正确的话&#xff0c;不显示的那个页面的。js文件中需要Page({})&#xff0c;初始化&#xff0c;这个必须有&#xff1b; 如果还是不出现&#xff0c;可以先把路径删掉&#xff0c;然后刷新一下&#xff0c;这个时候会提示…

ctfshow web入门 web103-web107

1.web103 和102一样 payload: v2115044383959474e6864434171594473&v3php://filter/writeconvert.base64-decode/resource1.php post v1hex2bin2.web104 值只要一样就可以了 payload: v21 post v113.web105 考查的是$$变量覆盖,die可以带出数据,输出一条消息&#xf…

C++信息学奥赛1133:输出亲朋字符串

#include <iostream> #include <string> using namespace std;int main() {string n;cin >> n; // 输入字符串for (int i 0; i < n.length(); i){char Front n[i]; // 当前字符char rear n[i 1]; // 下一个字符if (i n.length() - 1){rear n[0];…

激进的现货白银技巧

在现货白银投资中&#xff0c;我们有保守的交易技巧&#xff0c;也有激进的交易技巧&#xff0c;这给了投资者有进退的选择。其实很多投资者认为贵金属的投资只能长期持有&#xff0c;等待升值&#xff0c;确实有部分投资者是这么做的。但是其实现货白银投资还是有非常激进的一…

这样处理 Python 日志,优雅

迷途小书童的Note 读完需要 4分钟 速读仅需 2 分钟 1 loguru 简介 loguru 是 Python 的一个第三方日志模块&#xff0c;相较于标准库 logging 模块&#xff0c;它提供了更简洁易用的 API&#xff0c;内置丰富的格式化、过滤、文件输出等高级功能。loguru 让 Python 日志记录变得…

HTML5岗位技能实训室建设方案

一 、系统概述 HTML5岗位技能技术是计算机类专业重要的核心课程&#xff0c;课程所包含的教学内容多&#xff0c;实践性强&#xff0c;并且相关技术更新快。传统的课堂讲授模式以教师为中心&#xff0c;学生被动式接收&#xff0c;难以调动学生学习的积极性和主动性。混合式教学…

Maven生命周期、阶段与目标

生命周期 对于Java项目来说&#xff0c;一个项目的生命周期可能会有创建项目、编译、打包、运行、部署等&#xff0c;而maven将项目的生命周期进行了标准化。 Maven默认支持的生命周期有clean、site、default&#xff0c;其中 site这个生命周期几乎用不到&#xff0c;最常用的…