MySQL级联复制中的数据同步(r11笔记第20天)

最近开发的同事反馈了一个问题,说有一台北京节点的MySQL数据库数据延迟太大,想让我们帮忙看看怎么解决。

这个问题一下子让我想起了之前“水深火热”的日子,因为这是一套MySQL级联复制的环境。这么做的目的也是为了能够方便数据查询和统计任务,看起来虽好,但是老是有一些不可控因素。

北美使用AWS在北美,都是实时的业务数据,考虑了灾备和读写分离使用了一主一从的架构,新加坡节点2是一个中继节点,也使用了AWS,可以看到新加坡节点是北美节点的从库,但是北京的主库。 北京节点是一个IDC设备。就这样一个级联复制的环境就跑起来了。

由于新加坡的节点网络延迟太大,而且很不稳定,之前的一部分业务最后就索性迁移到香港的云服务上了。剩下的这部分业务稳定运行了一段时间,但是最近经常发现数据延迟很大,这个问题又提上了日程。

我们经过讨论,开发同事建议,索性直接连北美节点吧,我这边简单做了测试,网速其实还是要好一点。所以改进后的架构如下:

但是这里就面临一个问题,怎么去无缝的把节点的数据顺利切换过去。发现这个问题变得有些纠结了,因为新加坡的节点目前和北京节点是有延迟,直接切换过去肯定不行,而且偏移量在不同的节点都有不小的差别。怎么调和呢。

每当到这个时候我就想起了MySQL非常经典的架构图。

碰到实际的问题再来看的时候发现有很多地方就需要加深理解了。

单纯使用偏移量,我和同事在纸上分析和讨论,感谢总是有一些不确定的地方。这让我就非常怀念起了5.6推出的GTID,这个特性在这个问题前真是太有用了。GTID的统一格式是由source_id加transaction_id构成。这个source_id就是UUID,是一个唯一性标示,在读写分离,一主多从的环境,还有当下的级联复制的环境中尤其有用,因为是全局事务的概念,所以不会出现重复的情况,这一点和Oracle里物理一致性的SCN很有相似的味道。

在这个问题中,如果能够启用GTID,那么北美节点的UUID在北京节点还是一个唯一性的标示,能够正确的标识和应用事务信息。

但是当前的环境是5.5版本,很遗憾使用不了,那么一种折中的办法就是停止新加坡的节点,然后让北京节点去追平数据,然后以这个为基准,让北京节点继续从北美的slave节点继续抓取增量的数据变化。

整个过程就会使用change master的方式来完成了。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2016-12-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏自动化测试实战

船长带你看书——《selenium2 python 自动化测试实战》(1)

38150
来自专栏云计算

用于增强数据治理能力与法规遵从性的容器

审计人员是如何评估当前分散存储基础设施的企业数据的使用情况的?简而言之,这其中困难重重!

20280
来自专栏IT可乐

Linux系列教程(一)——Linux系统简介

  本系列教程将完整的讲解整个Linux相关的知识,这是楼主学完兄弟连的Linux教程之后重新对Linux知识体系的整理。个人感觉兄弟连的Linux教程可以很好...

26480
来自专栏WeaponZhi

一些帮助你提升效(bi)率(ge)的干货!

关注我的你,真特别! ? 你的收藏夹需要精心维护 我们程序员,往往需要通过浏览器查阅大量的资料,当然,查阅完之后,顺手点个星星收藏一下,以便下次继续观看,或者先...

34170
来自专栏养码场

工作还是游戏?程序员:我选择边玩游戏边工作!

一方面体现在“数据”构造上仍有广阔的待开发空间,另一方面则是应用场景,除了做客观评价和“讲故事”,还需打通更多的商业模式。

8510
来自专栏玉树芝兰

如何把思维导图秒变成幻灯?

(由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。)

14620
来自专栏逸鹏说道

.NET技术+25台服务器怎样支撑世界第54大网站

英文原文:StackOverflow Update: 560M Pageviews A Month, 25 Servers, And It's All Abou...

40270
来自专栏编程

零基础如何自学Python

程序员在普通人眼里就像魔法师,一个脚本轻松抢几十盒月饼(虽然最后被开除),一个插件解决春运抢票难题,几十行代码搭建一个 Web 网站,用微信自动和妹纸聊天,在程...

51980
来自专栏Android 开发者

Android 模拟器现已支持 AMD 处理器和 Hyper-V

自两年前谷歌对 Android 模拟器进行重大更新以来,我们一直致力于开发出一款运行速度快、功能全面的模拟器,帮助您为用户打造卓越应用体验。Android 模拟...

29010
来自专栏Debian社区

Proxmox VE 5.0 Beta1 发布,基于 Debian 9 Stretch

Proxmox 5.0 Beta 1 “Virtual Environment” 发布了,新版基于 Debian 9 “Stretch”,采用了 Linux 4...

11920

扫码关注云+社区

领取腾讯云代金券