概述:

利用主从复制+

GTID

的特性实现异地数据同步与读写分离。下面是实现细节与不同于常规方案的特性。

实现背景

是为了将分属两个不同集群的实例,建立同步关系。备实例会自动选择主实例中延迟较小的备机建立同步,当该主实例备机发生故障时,会自动与另一个备机建立同步关系。

DCN同步建立后,主实例可写,备实例只读。这可作为一种异地容灾方案,也可作为一种异地读写方案

,参照

D

CN

技术分为两步:

第一部分:

在主备机房中,如图2

在主机房一主两备中,master提交事务后,写入binlog,通过mysql主从复制协议,master机将binlog传输到任意slave机,然后slave机回放relaylog,最终完成主从复制。第二部分:如图1,主备机房完成建立DCN同步后,备机房的master机会从主机房中主备延迟最小的slave机上的拉取binlog,随后回放binlog。

部分:

如果主机房当前已经建立DCN同步的slave机器故障了,会自动与另一个备机建立同步关系如图2

主从同步的方式实现异地容灾方案比较成熟,但仍需要解决一些核心问题。

1.

由于存在“级联复制”的情况,那么如何准备的计算延迟?

2.

如果实例需要进行扩容时,同步关系是否收到影响,作为异地读写分离的场景,级联节点数据延迟扩大如何解决?

针对上述问题:

1.

计算延迟

a)

不采用

Seconds_Behind_Master

的值作为延迟依据,主机

agent不停地向主机数据库写入带有当前时间戳的记录,这些记录会同步到备机数据库中

备机的

agent根据数据库中最新的记录与机器当前时间戳,就可以计算出实时延迟时间了

,然后备机

agent再将这些信息(包括实时延迟与延迟的主机信息)写入到zk中,告知其它模块

,而这些信也息作为scheduler仲裁扩容的依据。

b)

如下图延迟的计算过程,在扩容的同步数据步骤中

M每写入一条时间戳记录,目标实例中的所有节点都会同步到该条记录,然后上报到zk中,当scheduler发现所有节点的延迟小于5秒,且delayip都是M(这点主要是防止异常)时,进入到下一个流程

2.实例进行扩容的时候,集群具备自动更新

dcn同步关系的功能,并且在扩容过程中

不需要人为介入,减少了

延迟

影响

。由程序介入,并分拆为三步:

a)

建立原实例与目标实例的同步关系

b)

检测目标实例与原实例之间的延迟,当延迟小于

5S时,设置原实例只读,拒绝掉新的写入

c)

检测目标实例与原实例之间的

gtid,当gtid无差别时,断开原实例与目标实例之间的同步关系,并将Proxy路由切换到目标实例

d)

下图表示利用D

CN

进行集群扩容的流程:

i.

MM表示主实例的主机,MS表示主实例备机,MSET表示主实例。SM表示备实例主机,SS表示备实例备机,SSET表示备实例。EMM表示主实例扩容的目标实例的主机,EMS表示主实例扩容的目标实例的备机,EMSET表示主实例扩容的目标实例。ESM表示备实例扩容的目标机器的主机,ESS表示备实例扩容的目标机器的备机,ESSET表示备实例扩容的目标实例

扩容流程:

(

1)建立EMSET与MSET之间的扩容同步关系。

(

2)检测到EMSET与MSET之间的延迟小于5秒时,断开SSET与MSET之间的DCN同步关系。(

提前断开是为了防止后续S

SET

GTID

的信息不被

EMSET

GTID

列表包含,这里的差异信息可能是

MM

节点与E

MSET

断开后新写入Z

K

的时间戳记录

)

(

3)确认SSET与MSET之间的DCN同步关系断开后,设置MSET为隔离状态(此时网关会拒绝掉所有新的连接),并向EMM节点的agent发送扩容处理任务。

(

4)当EMM节点的agent接收到scheduler发送的扩容处理后,设置MM节点只读,并计算EMM与MM节点gtid的差值,当gtid无差值时,反馈scheduler任务处理成功。如果期间设置只读失败,反馈sheduler处理失败。

(

5)Scheduler根据agent反馈进行区分处理,反馈成功进入步骤6,反馈失败进入步骤7。

(

6)断开EMSET与MSET之间的扩容同步关系,返回扩容成功,并建立EMSET与SSET之间的DCN同步关系。

(

7)把MSET设置为正常状态(网关正常接收新连接),返回扩容失败,并重建MSET与SSET之间的DCN关系。

mysql dcn_Tdsql DCN同步技术原理介绍相关推荐

  1. (3)HDFS原理与高可用技术原理介绍

    专栏目录 (1)大数据和应用场景介绍 (2)大数据技术综述总结 (3)HDFS原理与高可用技术原理介绍 (4)Yarn架构.资源管理原理和运维技术介绍 (5)Kafka原理和高可用介绍 1.HDFS简 ...

  2. 网络时间同步(卫星时钟同步系统)技术原理介绍

    网络时间同步(卫星时钟同步系统)技术原理介绍 网络时间同步(卫星时钟同步系统)技术原理介绍 1.前言 由计算机网络系统组成的分布式系统,若想协调一致进行:IT行业的"整点开拍".& ...

  3. GPU加速技术原理介绍

    GPU加速技术&原理介绍 1.GPU&CPU GPU英文全称Graphic Processing Unit,中文翻译为"图形处理器".与CPU不同,GPU是专门为处 ...

  4. 液晶常用接口“LVDS、TTL、RSDS、TMDS”技术原理介绍

    液晶常用接口"LVDS.TTL.RSDS.TMDS"技术原理介绍 1:Lvds Low-Voltage Differential Signaling 低压差分信号 1994年由美国 ...

  5. MYSQL主从不同步延迟原理分析及解决方案

    MYSQL主从不同步延迟原理分析及解决方案 参考文章: (1)MYSQL主从不同步延迟原理分析及解决方案 (2)https://www.cnblogs.com/shishanyu/p/7977835. ...

  6. 在线答题系统的技术原理介绍

    对于在线答题系统有很多种不同的定义. 一种是人工对计算机的题目解答,另外一种就是答案库的自动解答.我们现在介绍的就是利用自身的答案库进行自动答题的在线答题系统的技术原理介绍. 在答题平台中有大量的识别 ...

  7. 3D/VR/AR简易技术原理介绍

    3D/VR/AR简易技术原理介绍 3D模型的生成流程 1.信息的采集 物体图片的采集,同一平面上需要360度全方位角度采集 2.查找特征点 找到图片的特征点,作为物体的识别参考,如下图所示: 参考算法 ...

  8. mysql数据库主从同步的原理_mysql数据库主从同步复制原理

    MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能.更高可靠性要求的场合.与之对应的是另一个同步技术是MySQ ...

  9. 知识图谱技术原理介绍

    作者:王昊奋 近两年来,随着Linking Open Data[1] 等项目的全面展开,语义Web数据源的数量激增,大量RDF数据被发布.互联网正从仅包含网页和网页之间超链接的文档万维网(Docume ...

  10. 智能配网方案 Airkiss 技术原理介绍及应用

    写在前面 站在巨人的肩膀上,可以看得更远 一.什么是Air Kiss 可以说AirKiss 是微信硬件平台提供的一种WIFI硬件设备快速配置连接网络的技术,是一种创新性的信息传递技术.通过该技术可以便 ...

最新文章

  1. python遇到Retry(total=4, connect=None, read=None, redirect=None, status=None)解决方案
  2. dialog对话框初始化 mfc_MFC中Dialog初始化顺序
  3. 代码创建 WPF 旋转动画
  4. java监听窗口饮品,Java 完成部分水吧点饮品系统的:点饮品,饮品管理片段的实现...
  5. 如何oracle数据库用户名和密码,Oracle数据库用户名及密码查询
  6. Android Flutter 内存机制初探
  7. [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql
  8. delphi的几个特别关键字 object absolute
  9. 使用Slf4j查看日志输出
  10. Vue计算属性、方法、侦听器
  11. 二分法在生活中的一次应用
  12. 如何为iTunes 11中的歌曲列表着色算法有效? [关闭]
  13. 管理小故事精髓 100例
  14. wget下载的文件在哪里
  15. 蛋白质组学与转录组学联合分析
  16. python中fun函数求1+2…+n_功能:编写函数fun求1!+2!+3!+ …… +n!的和,在main函 数中由键盘输入n值,并输出运算结果。请编写fun 函数...
  17. 学术英语理工(第二版)Unit5课文翻译
  18. 第七章:OCP工具简介
  19. git 撤回commit
  20. 海伦司圆梦上市:徐炳忠身价超过奈雪的茶掌门人,未来能否坚挺?

热门文章

  1. 瑞幸咖啡上市被评“蒙眼狂奔”,CEO钱治亚回答:狂奔是真的,但并非蒙眼
  2. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句
  3. 那些年,我们一起追过的球队
  4. 使用ThinkMusic网站源码配合cpolar,发布本地音乐网站
  5. bind9 域名劫持_域名劫持会怎样?如何解决域名劫持
  6. 最新计算机台式机小机箱,几款热门台式机主机机箱的参数配置【图文】
  7. Python -- 图像处理—PIL库的使用
  8. Oracle中用sys用户登录
  9. 删除字符串中的元音字母
  10. 第一章 DirectX 计算机图形学(上)