我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何修复MySQL GTID的混合问题

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何修复MySQL GTID的混合问题

这篇文章主要讲解了“如何修复MySQL GTID的混合问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何修复MySQL GTID的混合问题”吧!

整体服务是在两个机房对等部署,然后通过级联复制的方式串起来。

如何修复MySQL GTID的混合问题

实际切换前,节点B因为是从库,是很容易摘除的,所以整体的部署架构仅剩下A,C,D

如何修复MySQL GTID的混合问题

同时在切换前,为了保证整个业务访问域名的可用性,会临时开启双主复制,这个阶段能够最大程度保证数据的完整性。当然这里会有两种模式,一种是最大保护模式,最大保护模式意味着数据只能从一个入口写入,如果双写很可能会数据冲突,第二种是最大可用模式,也就意味着整个过程数据在两边始终可以写入。这个模式的选用和具体的业务特点有关(读多写少,读多写多等)。

如何修复MySQL GTID的混合问题

所以A和C之间的双主配置就显得尤其重要,也是整个平滑切换数据完整性的基础。

目前A,C,D节点的GTID基本信息如下:

A: show master status

Executed_Gtid_Set: A:1-222717169,B:1-697

C:show slave status

Executed_Gtid_Set: A:1-222716771,B:1-700

D:show slave status

Executed_Gtid_Set: A:1-222716771,B:1-700

这个数据表达的含义比较深刻,那就是在数据链中,存在已被摘除的节点B的GTID信息,而从C,D的GTID相关信息可以看到,B中是丢失了一个数据事务的(当然这个过程不是真正的数据变化,和操作不规范有关)

所以在这种情况下如果要配置双主,需要解决的就是B相关GTID的差异,一种是直接抹去B的痕迹,这个过程需要在C,D上面可操作,但是实际复制双主的时候又会出问题。

如果把GTID当做一种数据血缘的角度会发现,整个GTID真是一个很有灵性的设计。假设红色是A的数据血缘,绿色是B的数据血缘。

如何修复MySQL GTID的混合问题

舍弃了B之后,A,C开启了双主,整个数据血缘就是如下的状态了:

如何修复MySQL GTID的混合问题

所以整个复制拓扑中的任何数据变化都能够有理有据的追溯,这是GTID设计很有价值的一件事情。

关于修复方式,也比较清晰,那就是把C和D的数据血缘B的部分做下“回退”,如下:

A: show master status

Executed_Gtid_Set: A:1-222717169,B:1-697

C:show slave status

Executed_Gtid_Set: A:1-222716771,B:1-697

D:show slave status

Executed_Gtid_Set: A:1-222716771,B:1-697

按照这种模式来一次修改C和D,整个双向复制就能够很快构建起来了。

回置GTID的原理可以参考如下的图,通过gtid_purged可以间接实现裁剪。

如何修复MySQL GTID的混合问题

C端修复的步骤如下:

1)stop slave;

2)show slave status\G

3)reset master;

切记是在Slave端执行,这个阶段的目的就是要重新配置GTID的校准值。这个时候mysql.gtid_executed应该就是空的了。

4)重置GTID_purged值

SET @@GLOBAL.GTID_PURGED='A:1-222716771,B:1-697';

5)删除从库的复制配置

reset slave all;

6)配置复制关系

CHANGE MASTER TO MASTER_USER='dba_repl', MASTER_PASSWORD='xxxx' ,  MASTER_HOST='xxxxx',MASTER_PORT=xxxx,MASTER_AUTO_POSITION = 1;

7)重启Slave节点,查看状态

start slave;  show slave status\G

修复好之后,这部分打算是写一个巡检GTID和修复的脚本逻辑,能够把这部分的管理做得更细致一些。

感谢各位的阅读,以上就是“如何修复MySQL GTID的混合问题”的内容了,经过本文的学习后,相信大家对如何修复MySQL GTID的混合问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何修复MySQL GTID的混合问题

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

win10系统出问题如何修复

如果Windows 10系统出现问题,可以尝试以下几种修复方法:1. 重启电脑:有时候只需简单地重启电脑,问题就可以自行解决。2. 运行系统修复工具:Windows 10内置了一些系统修复工具,例如系统还原、自动修复工具等。可以通过“设置”
2023-10-18

如何修复XP突然蓝屏的问题

这篇文章主要讲解了“如何修复XP突然蓝屏的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何修复XP突然蓝屏的问题”吧!  360修复漏洞后WinXP系统蓝屏的具体解决方法:  方法一:
2023-06-13

AutoMySQLBackup 3.0在MySQL 5.7中的问题修复

最近一个电子看板小项目上线,由于数据库非常小,而且数据也不太重要。因此未选择XtraBackup备份,打算用AutoMySQLBackup来备份,结果部署后测试发现,有一些小问题是之前解决过的。有一些是MySQL 5.7版本才有的。下面记录一下解决过程。关于A
AutoMySQLBackup 3.0在MySQL 5.7中的问题修复
2014-10-24

电脑声音有问题如何修复

如果电脑声音有问题,可以尝试以下几种方法修复:1. 检查音量设置:确保电脑音量调节在合适的位置,而不是静音或者过高的音量。2. 检查音频设备连接:确保音频设备(如耳机、扬声器等)正确连接到电脑的音频插口或USB端口。3. 更新音频驱动程序:
2023-09-08

win7启动修复问题如何解决

这篇“win7启动修复问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win7启动修复问题如何解决”文章吧。win
2023-07-01

win10网络连接问题如何修复

这篇文章主要介绍了win10网络连接问题如何修复的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇win10网络连接问题如何修复文章都会有所收获,下面我们一起来看看吧。一、执行以下操作来帮助你修复连接问题或缩小该问
2023-07-01

dns服务器出现问题如何修复

要修复 DNS 服务器的问题,可以尝试以下几个步骤:1. 检查网络连接:确保服务器的网络连接正常,确认网络设备、线缆等都没有问题。2. 重启 DNS 服务:尝试重新启动 DNS 服务,可以通过服务管理工具或命令行进行操作。例如,在 Wind
2023-08-25

如何修复win8电脑主板短路问题

小编给大家分享一下如何修复win8电脑主板短路问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!主板短路的一般维修思路:⑴主板短路故障现象:插电源电流直接拉到5A
2023-06-28

如何设计合理的 MySQL 复合主键?

如何设计合理的 MySQL 复合主键?在数据库设计中,主键是一项非常重要的概念,它可以帮助我们唯一地标识每一行数据。在 MySQL 中,我们可以选择使用单一主键或者复合主键。复合主键是由多个字段组合而成的键,能够更加准确地定位数据,提高数
如何设计合理的 MySQL 复合主键?
2024-03-15

spring cloud如何修复zuul跨域配置异常的问题

前言本文主要给大家介绍一下在zuul进行跨域配置的时候出现异常该如何解决的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。异常The 'Access-Control-Allow-Origin' header conta
2023-05-31

编程热搜

目录