其中x是> = 22吗

这个问题

有一些事情你不喜欢数据。一个是水,另一个是火。那么,你猜怎么着:

OVH火

如果你认为一切都会好起来,看一看:



鉴于我的ISP在OVH管理基础设施的一部分,他们一直受到事件的影响。

正如你所看到的亮点,机票号码在三年内变化很少(2 k的情况下)和日期从2018年到2021年。最重要的是,我不得不提到我这个月开了几票之前消失了。

所以我的ISP是非常幸运的,在三年很少的情况下,发送我所有的票/ dev / null…或者他们已经失去了三年的数据。

让我们直接去追逐;他们已经失去了他们的数据。

在OVH大火之后,这些家伙没有好的备份用于数据恢复,甚至没有一个像样的灾难恢复解决方案。他们的平台仍然无法超过5天,在此期间他们也失去了自己的网络的可见性/接入点/客户等等。

恢复数据带来了他们重新上线,但是需要他们一个多月审查和解决内部管理制度,使服务可接受的标准。不用说,投诉和更昂贵的法律行动已经提高了。

这一切都是因为他们错过了两个基本的最佳实践在设计一个系统:

  • 良好的备份/恢复过程
  • 总是有一个灾难恢复解决方案

是的,我知道…我应该改变ISP。

总之,灾难恢复(DR)在任何生产系统解决方案是一个关键因素。奇怪的我们仍然需要这2021年,但显然,它仍然是被低估了,需要我们的注意。

这就是为什么在(长)的这篇文章中,我将介绍如何利用实现博士的另一个改进解决方案raybetapp 和标准MySQL功能组复制和异步复制自动故障转移(空军联队)。

雷竞技下载官网Percona生活,开源数据库会议,将在2021年成为更大、更好的。现在开放注册!

异步复制自动故障转移

我已经介绍了新的MySQL功能(http://www.tusacentral.net/joomla/index.php/mysql-blogs/227-mysql-asynchronous-source-auto-failover),但让我们回顾。

从MySQL 8.0.22 Percona服雷竞技下载官网务器和MySQL 8.0.22您可以利用空军联队在设计分布式解决方案。这是什么意思?

当使用简单Async-replication你有:

简单Async-replication

然而,一个高可用性(HA)解决方案在DC2将数据从另一个HA解决方案在DC1 1:1的关系,意义是对另一个节点一个节点的连接。

如果你有这个:

数据复制是中断和两个DCs分道扬镳。你也需要手动(或通过脚本)恢复中断链接。与空军联队可以指望一个显著的改善:

现在不是1:1的联系,但在DC2节点可以依靠空军联队恢复链接其他剩余的节点:

异步复制自动故障转移

如果一个节点在DC2(复制品)失败,那么链接又坏了,它需要手动干预。这解决了一块相当大的问题,但它不能解决一切,正如我在上面的文章中提到。

如果一个节点在DC2(复制品)失败,那么链接又坏了,它需要手动干预。

GR故障转移

我希望能有一个固定在MySQL 8.0.23,但不幸的是,事实并非如此。所以我决定开发一个概念验证,看看它将解决这个问题,更重要的是需要做什么安全。

结果是一个非常基本的(我需要改进代码)存储过程调用grfailover之间的转变,管理内部初选一组集群复制:

我借这个概念从伊夫的复制经理Percona XtraDB集群(雷竞技下载官网https://github.com/y-trudeau/Mysql-tools/tree/master/PXC),但我们会看到GR和这个用我们需要少得多。

为什么这是一个简化的版本吗?

因为在GR我们已经有大量的信息,我们也有autofailover异步复制。鉴于此,我们需要做的只是管理的启动/停止复制。Auto-failover会照顾的从一个源转移到另一个,而GR将照顾哪些节点应该首选复制品复制品网站(主要)。

简而言之,检查节点只需要看看是主要的,如果是这样,如果尚未开始复制活跃而最终停止如果节点不是主要。

我们还可以维持一个表是怎么回事,可以肯定的是,我们没有两个节点同时复制。

这个定义将是这样的:

完整的代码可以在GitHub中找到:https://github.com/Tusamarco/blogs/tree/master/asyncAutoFailOver

指南

你需要做的第一件事就是部署Percona MySQL服务器分布(8.0.22或更高雷竞技下载官网)使用组复制HA解决方案。为此,在这里指的是广泛的指导:雷竞技下载官网MySQL Percona分布:高可用性与组复制解决方案

一旦它运行在DCs,您可以配置空军联队在DCs主节点下面MySQL 8.0.22:异步复制自动连接(IO线程)故障转移或者这个MySQL异步源汽车故障转移

空军联队复制启动并运行后,现在是时候为你创建过程和管理表在直流电源的主

首先,确保你有一个雷竞技下载官网模式,如果没有的话,创建:

然后创建表:

最后,创建过程。请记住,您可能需要改变定义者或简单地删除它。代码将被复制到所有节点上。可以肯定的是,所有节点上运行下面的命令:

你应该得到一些如上所述。

如果不是,然后检查你的复制,可能需要修复。相反,如果一切顺利,这意味着你已经准备好去。

运行该程序,您可以使用任何一种方法你喜欢,唯一重要的是你必须先运行它在当前每个DCs的主节点

这是因为主节点必须第一个登记管理表中。就我个人而言,我喜欢从cron运行它时在“生产”,而手动测试:

地点:

  • grfailover是程序的名称。
  • 5分钟后的超时的过程将启动复制节点。
  • dc2_to_dc1是英吉利海峡的名字在当前节点,需要管理的过程。

给定两个集群:

如果你查询管理表之后运行过程只在两个初选:

考虑到复制链接已经活跃,节点只报告“插入”发表评论。

,如果其中一个两个渠道和节点不停用(设置活动标志管理表中为0),评论将改变“备注:副本重启频道<通道名称>”

此时,您可以在其他节点上运行程序也在那之后,如果你通过渠道查询表:

如果我现在改变我的主,或者如果主下降?让我们“只是”转变主要说:

请注意,由于我有一个活跃的复制通道,成功最主要的转变,首先我必须停止复制通道。

阅读管理表,我们将看到grFailOver开始转变:

检查新主节点gr1一起,我们可以看到:

  • Gr_role是主要
  • 评论报告倒计时(分钟)节点等

5分钟后:

现在,我们可以看到的是:

  • 在复制节点gr1一起变得活跃
    • 它报告的时间开始复制
    • 它最后一次报告检查复制活跃
  • 节点gr2是次要的
    • 在评论也报道的时间和在新副本复制时重新启动节点

如果由于任何原因复制原始节点gr2重启(比如搬回主)而倒计时仍在地方,grFailOver将停止任何行动和重置gr1一起状态。

简而言之,现在我的两个dc可以依靠空军联队没有在一个不同的来源和对移动节点grFailOver GR初选后,或者当我的主要事故故障转移到另一个节点。

结论

我相信甲骨文是支持一些关于这个,我相信我们很快就会看到它,但与此同时,我不得不说,这个简单的解决方案是可行的。它改善了我的测试体系结构的弹性。

虽然我还是测试,我完全相信,这个过程可以用更有效的方式,我也确定缺陷和错误是在拐角处。

但是,这是一个POC,我满意的结果。这证明它不是很难做出更好的我们,也证明,有时一个小事可以产生巨大影响。

这也证明了我们不应该总是等待别人去做是必需的,任何人都可以帮助。

POC最后,正如上面提到的,这是一个解决方案,但没有人阻止你开始它,使它成为一个生产解决方案,正如我的同事伊夫为他做Percona XtraDB集群复制经理。雷竞技下载官网

只是在你!伟大的MySQL。

引用

https://www.datacenterdynamics.com/en/news/fire-destroys-ovhclouds-sbg2-data-center-strasbourg/

http://www.tusacentral.net/joomla/index.php/mysql-blogs/227-mysql-asynchronous-source-auto-failover

https://github.com/y-trudeau/Mysql-tools/tree/master/PXC

https://www.雷竞技下载官网percona.com/blog/2020/10/26/mysql-8-0-22-asynchronous-replication-automatic-connection-io-thread-failover/

订阅
通知的
客人

2评论
最古老的
最新的 大多数投票
内联反馈
查看所有评论
安东尼奥Bardazzi

最新的“MySQL 8.0.23,异步连接故障转移机制还支持组复制拓扑”https://dev.mysql.com/doc/refman/8.0/en/replication-asynchronous-connection-failover.html

图萨马可

由于安东尼奥,是的,我知道,我评估如果它意义的博客。我仍然在谈论8.0.22最新Percona服务器版本。雷竞技下载官网