DTS技术架构
天翼云DTS系统技术架构图如下所示:
DTS功能原理
数据迁移
DTS数据迁移提供多种迁移类型:结构对象迁移、全量数据迁移及增量数据迁移。如果需要实现不停服务迁移,需要同时选择结构对象迁移、全量数据迁移和增量数据迁移。
全量数据迁移过程可能会持续较久,在这过程中,源实例不断有业务写入,为保证迁移数据的一致性,在全量数据迁移之前,会记录当前源实例的日志位点,存储在本地数据库中。
当全量数据迁移完成后,DTS会启动增量日志回放模块,增量日志回放模块会从增量日志读取模块中获取增量数据,经过反解析、过滤、封装后迁移到目标实例,从而实现增量数据迁移。
数据同步
DTS数据同步功能能够实现两个数据源之间的增量数据实时同步。
同步链路创建过程
- 同步初始化
将源实例的历史存量数据在目标实例初始化一份。 - 增量数据实时同步
当初始化完成后进入两边增量数据实时同步阶段,该阶段DTS将实现源实例和目标实例的数据动态同步。
增量数据实时同步的底层实现
在增量数据实时同步过程中,DTS的底层实现模块主要包括:
- 日志读取模块
日志读取模块从源实例读取原始数据,经过解析、过滤及标准格式化,最终将数据在本地持久化。日志读取模块通过数据库协议连接并读取源实例的增量日志。如果源数据库为RDS MySQL,那么数据抓取模块通过Binlog dump协议连接源库。 - 日志回放模块
日志回放模块从日志读取模块中请求增量数据,并根据用户配置的同步对象进行数据过滤,然后在保证事务时序性及事务一致性的前提下,将日志记录同步到目标实例。