1200 多台 MySQL 主机,是如何无缝升级到8.0的?

vitess框架详解进阶版 之前有简单介绍vitess大致的用途和前景,这篇根据自己经验讲一下vitess这个项目的框架。一些vitess基础概念可以在简单介绍vitess中找到。 一,vitess overview全框架 在这一小节中,我会拿出vitess的整体大致框架,重新梳理vitess的优势与劣势,最后给出一个SQL查询在vitess的生命周期,供大家参考。 首先还是youtube的这张图: 从业务层上划... 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

创作不易,希望大家给一点鼓励,把公众号设置为“星标”,给文章点个“赞”和“在看”,谢谢大家啦~

来源:OSC开源社区

GitHub 团队近日分享了他们将 GitHub.com 的底层数据库无缝升级到 MySQL 8.0 的经验。

据介绍,GitHub 使用 MySQL 来存储大量关系数据,因此在不影响网站服务级别目标 (SLO) 的情况下升级主机集群(1200 多台 MySQL 主机)绝非易事。其团队表示,为了升级到 MySQL 8.0,他们规划、测试和升级本身总共花费了一年多的时间,并且需要 GitHub 内部多个团队的协作。

3493ab4eb39479398ad980a3f214a1ef.png

GitHub 的 MySQL 基础设施概览:

  • 由 1200 多台主机组成,包括数据中心中的 Azure 虚拟机和裸机主机

  • 存储超过 300 TB 的数据,并在 50 多个数据库集群中每秒处理 550 万次查询

  • 每个集群都配置为具有主副设置的高可用性

  • 分区存储数据 —— 利用水平和垂直分片来扩展 MySQL 集群,以及使用 MySQL 集群来存储特定产品领域的数据。此外还为大结构域 (large-domain) 提供了水平分片的 Vitess 集群,这些区域的增长超出了单主 MySQL 集群的规模

  • 庞大的工具生态,包括 Percona Toolkit、gh-ost、orchestrator、freno 和用于操作主机集群的内部自动化工具

由于需要操作两个版本的 MySQL,因此 GitHub 内部使用的工具和自动化设施需要能够兼容处理混合版本,并了解 5.7 和 8.0 之间新的、不同的或已弃用的语法。

为了满足可用性标准,GitHub 团队采取了逐步升级策略,满足在整个过程中进行 checkpoint 和回滚的需求。下面是他们制定的升级计划:

  • 步骤 1:升级滚动副本 (rolling replica)

bcc2d3601c45f7ef046bc70976a9ab59.png

  • 步骤 2:升级备份拓扑 (replication topology)

45c68df0f0d6bb31d60c81de5d37a69b.png

  • 步骤 3:将 MySQL 8.0 主机提升为主集群

5b7d85b81f5c7a5c2aec42974868979e.png

  • 步骤 4:升级面向内部的实例类型

  • 步骤 5:清理,确认集群不需要回滚并成功升级到 MySQL 8.0 后,删除 5.7 服务器。验证工作会至少经历一个完整的 24 小时流量周期,以确保在高峰流量期间不会出现问题。

至于为什么要升级到 MySQL 8.0,GitHub 团队表示主要是因为 MySQL 5.7 的生命周期即将结束。此外升级后可以获得最新安全补丁、错误修复和性能增强的 MySQL 版本。他们还希望测试 8.0 中的新功能并从中受益,包括即时 DDL、隐形索引和压缩的 bin 日志等。

详细的技术细节查看:https://github.blog/2023-12-07-upgrading-github-com-to-mysql-8-0

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、VS Code 变身小霸王游戏机!

2、认知升级:模型与范式转换

3、超赞的 Python 编译器,单核提速100倍

4、高效的终极秘诀

5、Python 3.12 版本有什么变化?

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

f60f9858734c7afa22a3663c55275590.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

移动云主机性能实测与架构解析 云主机作为云计算的核心基础设施,其性能表现直接影响企业应用的运行效率。通过UnixBench、Sysbench等基准测试工具可以全面评估计算、存储和网络性能指标。移动云主机采用ESSD云盘和双平面网络架构,在数据库应用和高并发场景中展现出80000+ IOPS和<1ms延迟的优异表现。对于开发者而言,预装环境的镜像市场和按秒计费模式能有效提升DevOps效率。结合等保2.0三级认证的安全体系和弹性伸缩方案,特别适合部署ERP系统、视频会议等企业级应用,是中型企业数字化转型的高性价比选择。 阅读详情

相关推荐

Laravel Docker Compose 实战:构建可复现的生产级PHP应用环境

Docker Compose 是解决 PHP 应用环境不一致、协作低效与依赖隐晦等核心问题的关键技术。其本质是通过声明式 YAML 文件定义服务拓扑,实现开发、测试、生产环境的完全一致;结合自定义 Dockerfile 精准控制 PHP 扩展、OPcache 与 FPM 进程模型,保障 Laravel 10.x 的运行时稳定性;再依托容器网络自动 DNS 解析(如 db、app 服务名直连),消除传统 nginx 配置文件详解和 mysql 安装教程中的手工误差。该方案已广泛应用于高并发 Laravel 项

weixin_34416649的博客 361

vitess与mysql的兼容性

支持的mysql 版本 5.6-8.0,但是5.6 从2021年2月不更新了,所以建议5.7之后版本 事务隔离级别 vitess: read committed mysql default: pepeatable read SQL语法 https://github.com/vitessio/vitess/blob/main/go/vt/vtgate/planbuilder/testdata/unsupported_cases.txt DDL vtctlclient: vitess有封装,使用vtc

zhangjikuan的专栏 1012

MySQL数据分析实战:从零到一,用SQL解锁商业洞察

你是不是也遇到过这样的困惑:想学数据分析,网上教程铺天盖地,Python、R、各种BI工具让人眼花缭乱,但一看到要学编程、装环境、搞算法,瞬间就头大了。有没有一种方法,能用你已经熟悉的工具,比如最经典的MySQL数据库,就能开始数据分析,甚至做出有价值的商业洞察? 答案是肯定的。很多人对MySQL的认知还停留在“增删改查”的CRUD层面,认为它只是个存储数据的“仓库”。但今天我要告诉你一个被严重低估的事实: MySQL本身就是一个强大且易上手的数据分析工具 。通过SQL,你就能完成数据清洗、聚合、关联、统计

weixin_33951761的博客 508

开源中间件Vitess助力MySQL实现分库分表

关于Vitess Vitess自2011年以来一直为YouTube的所有数据库流量提供服务,目前已被许多企业采用,以满足其生产需求。 Vitess是一个用于部署、扩展和管理大型mysql实例集群的数据库解决方案。它的架构是在公共或私有云架构中高效运行,就像在专用硬件上一样。它结合并扩展了许多重要的mysql特性和nosql数据库的可伸缩性。 Vitess可以解决以下问题 1. 实现M...

October 2109

Seafile私有云部署:Ubuntu 12.04+MySQL+Python深度实践指南

私有云存储系统是企业数据主权与合规协作的核心基础设施,其本质是通过可控服务架构实现文件同步、权限治理与审计追溯。Seafile作为成熟开源方案,依赖Python后端逻辑、MySQL元数据管理及轻量Linux环境协同运行,技术价值在于块级同步保障大文件完整性、分层服务设计提升容错能力、本地化部署满足等保与GDPR要求。典型应用场景包括设计工作室素材库、律所案卷协同、医疗影像归档等对元数据敏感、需自主运维的垂直领域。本文聚焦Ubuntu 12.04这一经典LTS环境,深入解析Python 2.7生态兼容性、My

weixin_34214500的博客 375

5种主流触觉传感器对比:GelSight、DIGIT、Taxim、GelSlim和TACTO如何选?

本文深度解析了GelSight、DIGIT、Taxim、GelSlim和TACTO五款主流触觉传感器的技术原理与核心特性。通过对比视觉传感与电学传感两大技术路径,为机器人灵巧抓取、精密检测等应用场景提供清晰的选型决策指南,帮助开发者根据项目需求在分辨率、响应速度、集成度与成本之间找到最佳平衡。

Black的专栏 932

vitess mysql_如何在本地运行 vitess 范例

第三步 :下载运行 vitess/****finally, we reach to the step to startupvitess, also, there are some traps in the process.if newbies or DBAs don't modify vitess MySQL template configuration file correctly,no...

weixin_29219539的博客 390

PTrade数据交互全流程详解:从本地文件上传到定时导出交易数据

本文详细解析了PTrade量化交易平台的数据交互全流程,涵盖从本地文件自动上传交易指令到定时导出成交数据的完整链路。通过文件媒介实现本地策略与云端实盘的安全、稳定对接,并提供了构建自动化、稳健数据流水线的实战配置方案与代码示例,助力量化工作流平滑过渡至实盘。

gg901的博客 883

GitHub 跑了 1200 多台 MySQL 主机,如何实现无缝升级到 8.0 版本?

GitHub 团队近日分享了他们将 GitHub.com 的底层数据库无缝升级到 MySQL 8.0 的经验,我们来看看他们是如何完成了这一壮举。

Lorin 洛林的后端技术小站 1392

FPGA实现16x16点阵汉字滚动显示:Verilog代码与Quartus仿真详解

本文详细介绍了如何使用FPGA实现16x16点阵汉字滚动显示,包括Verilog代码设计、Quartus仿真及硬件连接技巧。通过字模数据存储和扫描控制逻辑,实现汉字的动态显示效果,并提供了优化建议和常见问题解决方案,适合FPGA开发者和硬件爱好者学习参考。

weixin_29172963的博客 354

从NHANES到发表:如何用survey包完成符合CDC要求的统计分析(含完整R代码)

本文详细介绍了如何利用R语言的survey包,对美国国家健康与营养调查数据进行符合CDC要求的统计分析。文章重点解析了NHANES数据的复杂抽样设计、权重变量的正确选择与调整,并提供了从数据获取、清洗、构建调查设计对象到执行加权回归及生成发表级表格的完整R代码实战指南,帮助研究者避免常见错误,确保分析结果的准确性与可发表性。

weixin_29054245的博客 522

GitHub 的 1200 多台 MySQL 主机是如何无缝升级到8.0的?

来源:OSC开源社区GitHub 团队近日分享了他们将 GitHub.com 的底层数据库无缝升级到 MySQL 8.0 的经验。据介绍,GitHub 使用 MySQL 来存储大量关系数据,因此在不影响网站服务级别目标 (SLO) 的情况下升级主机集群(1200 多台 MySQL 主机)绝非易事。其团队表示,为了升级到 MySQL 8.0,他们规划、测试和升级本身总共花费了一年多的时间,并且需要 ...

程序猿DD 225

数据挖掘7、银行精准营销

利用数据挖掘技术,对银行已有数据进行分析,对客户进行识别,对客户是否能够进行存款精准营销Windows11。

m0_63099685的博客 395

GitHub.com跑了1200多台MySQL主机,如何无缝升级到8.0?

据介绍,GitHub 使用 MySQL 来存储大量关系数据,因此在不影响网站服务级别目标 (SLO) 的情况下升级主机集群(1200 多台 MySQL 主机)绝非易事。其团队表示,为了升级到 MySQL 8.0,他们规划、测试和升级本身总共花费了一年多的时间,并且需要 GitHub 内部多个团队的协作。由于需要操作两个版本的 MySQL,因此 GitHub 内部使用的工具和自动化设施需要能够兼容处理混合版本,并了解 5.7 和 8.0 之间新的、不同的或已弃用的语法。步骤 4:升级面向内部的实例类型。

IT界那些事儿 121

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1927

华为OD机试新系统真题 【简单表达式计算】

华为OD机试 新系统真题【简单表达式计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【简单表达式计算】题解

qq_45776114的博客 677

GitHub.com 用了 17 个月,如何将 1200 台 MySQL 主机无缝升级到 8.0 版本?

摘要:GitHub 使用 MySQL 存储大量关系型数据。近日,GitHub 工程团队在官方博客上发布了一篇长文,详细地分享了其如何将生产团队无缝升级到 MySQL 8.0 的故事,值得一读。原文地址:https://github.blog/2023-12-07-upgrading-github-com-to-mysql-8-0/作者 | Jiaqi Liu、Daniel Rogart、Xin W...

优快云资讯 1万+

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测 目录时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测基本介绍ARIMAXVARVARMAVARMAXSESHWES参考资料 基本介绍 本文介绍ARIMAX、VAR、VARMA和VARMAX基本概念及其Python程序设计。 ARIMAX 具有外源回归量的自回归整合移动平均值(ARIMAX)是 ARIMA 模型的扩展,其还包括外生变量的建模。 外生变量也称为协变量,可以被认为是并行输入序列,其在与

前程算法屋的博客 6689

[Upgrading GitHub.com to MySQL 8.0] GitHub 升级 MySQL 8

GitHub使用MySQL来存储大量的关系数据。这是我们如何无缝升级我们的生产集群到MySQL 8.0的故事。, and15年前,GitHub作为一个Ruby on Rails应用程序开始,只有一个MySQL数据库。从那时起,GitHub已经发展了其MySQL架构,以满足平台的扩展和弹性需求,包括构建高可用性,实现测试自动化和分区数据。今天,MySQL仍然是GitHub基础设施的核心部分,也是我们选择的关系数据库。这是我们如何将1200多台MySQL主机升级到8.0的故事。

howeres的博客 255

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

GitHub 的底层数据库从 MySQL 5.7 无缝升级到 MySQL 8.0 的实践经验

所以从上述内容可以看出,不管是升级之前所做的准备工作,还是具体升级所制定的计划,GitHub都做了大量备份、冗余、验证的工作,从而保证系统能够顺利切换至新版本机器。另外由于需要操作新老两个版本的 MySQL,其内部所用的工具和自动化设施需要能够支持处理两个混合版本,并了解5.7和8.0之间新的、不同的或者已经弃用的语法。这一步也采取了一种谨慎的升级策略,通过先提升一个8.0版本的副本为新的主用库,来逐步进行数据库的升级,并确保在升级过程中有足够的回滚能力和服务能力。

tSRXH的博客 990

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

再见,MySQL 5.7!!

点击关注公众号:互联网架构师,后台回复2T获取2TB学习资源!上一篇:2T架构师学习资料干货分享大家好,我是互联网架构师!GitHub 团队近日分享了他们将 GitHub.com 的底层数据库无缝升级到 MySQL 8.0 的经验。 据介绍,GitHub 使用 MySQL 来存储大量关系数据,因此在不影响网站服务级别目标 (SLO) 的情况下升级主机集群(1200 多台 MySQL 主机)绝非易...

emprere的博客 125

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

再见了!这个陪伴我7年的软件!

所以从上述内容可以看出,不管是升级之前所做的准备工作,还是具体升级所制定的计划,GitHub都做了大量备份、冗余、验证的工作,从而保证系统能够顺利切换至新版本机器。另外由于需要操作新老两个版本的 MySQL,其内部所用的工具和自动化设施需要能够支持处理两个混合版本,并了解5.7和8.0之间新的、不同的或者已经弃用的语法。这一步也采取了一种谨慎的升级策略,通过先提升一个8.0版本的副本为新的主用库,来逐步进行数据库的升级,并确保在升级过程中有足够的回滚能力和服务能力。

CodeSheep 1594

这个陪伴我7年的软件,倒下了!

所以从上述内容可以看出,不管是升级之前所做的准备工作,还是具体升级所制定的计划,GitHub都做了大量备份、冗余、验证的工作,从而保证系统能够顺利切换至新版本机器。另外由于需要操作新老两个版本的 MySQL,其内部所用的工具和自动化设施需要能够支持处理两个混合版本,并了解5.7和8.0之间新的、不同的或者已经弃用的语法。这一步也采取了一种谨慎的升级策略,通过先提升一个8.0版本的副本为新的主用库,来逐步进行数据库的升级,并确保在升级过程中有足够的回滚能力和服务能力。

IT界那些事儿 213
上一篇: Python 包管理工具性能大比拼:pdm、pipenv、poetry、pip-tools
下一篇: 请卸载这 12 个被淘汰的 VS Code 插件
codingpy
博客等级 码龄11年 1873粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值