Mysql跨机房同步方案

原文:https://cloud.tencent.com/developer/article/1188291

假设现有两个机房,需要做到数据同步。

以下是架构图(实际架构图根据现有机房架构和实际会比下图复杂,但整体思路不变):

Mycat、Canal、Otter是关键的三项技术:

Mycat:数据库分库分表中间件,可以管理一个mysql集群,屏蔽了mysql集群,对外伪装成mysql server,用户无感知mysql集群。

Canal:阿里巴巴开源产品,可以读取mysql二进制日志文件,并解析成想要的数据。

Otter:阿里巴巴开源产品,配合Canal可以做到读取二进制文件,解析出增量数据sql,然后执行sql到指定连接。

流程:

  1. 用户插入一条数据到mycat。

  2. mycat解析sql,分配sql到指定mysql数据库。

  3. mysql(假设M1接收到数据)数据库接收数据,根据主从配置,写出二进制日志。

  4. mysql(M2)读取二进制日志同步数据,mysql(S)读取二进制日志同步数据,并写出二进制日志。

  5. Canal读取二进制日志,解析成sql。

  6. Otter接到sql,获取连接,在机房B的mycat上执行sql。

  7. Otter收到sql执行回执,执行完毕。

注:

本文给予思路及具体技术方案,具体技术的应用及使用,请自行google。

otter: https://github.com/alibaba/otter/wiki/QuickStart

canal: https://github.com/alibaba/canal

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,757评论 0 30
  • https://www.cnblogs.com/along21/p/8011596.html https://bl...
    SkTj阅读 3,172评论 1 4
  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 2,476评论 1 8
  • 我的女人像火柴,一点就燃。 昨天和她吵了架,仅仅因为我说错了一句话。她不理我了,早早和儿子关进房间睡觉。 我一个人...
    追光小强阅读 418评论 0 0
  • 你或是堂内悬着的古画 我是窗外古树的枝丫 共存于同一座古刹 却依然相见无涯 你或是黄泉路边的彼岸花 我是守护着你的...
    2班王圯涵11号阅读 407评论 0 5