开发者社区 问答 正文

数据传输服务DTS实时同步基础原理

已解决

展开
收起
游客l3c7sbespnroo 2018-01-08 23:04:35 2686 分享 版权
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    同步原理

    数据传输服务的实时同步功能能够实现任何两个RDS实例之间的增量数据实时同步。2016.8月份后,将陆续支持OLTP->OLAP的数据实时同步。

    同步链路的创建过程包括:
    (1) 同步初始化, 同步初始化主要将源实例的历史存量数据在目标实例初始化一份。
    (2) 增量数据实时同步, 当初始化完成后进入两边增量数据实时同步阶段,在这个阶段,DTS会实现源实例跟目标实例之间数据动态同步过程。

    增量数据实时同步过程,DTS的底层实现模块主要包括:
    (1) 日志读取模块
    日志读取模块从源实例读取原始数据,经过解析、过滤及标准格式化,最终将数据在本地持久化。日志读取模块通过数据库协议连接并读取源实例的增量日志。如果源DB为RDS MySQL,那么数据抓取模块通过Binlog dump协议连接源库。

    (2) 日志回放模块
    日志回放模块从日志读取模块中请求增量数据,并根据用户配置的同步对象进行数据过滤,然后在保证事务时序性及事务一致性的前提下,将日志记录同步到目标实例。
    DTS实现了日志读取模块、日志回放模块的高可用,DTS容灾系统一旦检测到链路异常,就会在健康服务节点上断点重启链路,从而有效保证同步链路的高可用。

    2018-01-12 07:25:40
    赞同 2 展开评论