DTS数据同步 | 《DTS控制台入门一本通》第五章-阿里云开发者社区

开发者社区> 云服务技术课堂> 正文

DTS数据同步 | 《DTS控制台入门一本通》第五章

简介: 本章重点介绍DTS数据同步

上一篇:DTS数据订阅 | 《DTS控制台入门一本通》第四章
下一篇:操作日志 | 《DTS控制台入门一本通》第六章

点击免费下载
《DTS控制台入门一本通》>>>

test

也可以PC端点击https://developer.aliyun.com/topic/download?id=803 下载

前面了解了“第三章 DTS 数据迁移”, 本章节详细讨论 DTS 数据同步。数据 迁移与数据同步从逻辑结构与实现上来说,是完全一样的,同样分为结构迁移、全量 迁移、增量迁移三个部分。只是数据同步的增量迁移是默认开启的(不可关闭)。所以 无论是数据迁移还是数据同步,都可以实现实时的数据同步。数据迁移与数据同步在 有重叠,那为什么还要有数据同步呢?数据同步比数据迁移也有很多的好处。两者的 区别主要有如下 4 点:

● 数据同步需要先购买再使用,支持预付费(包年包月)和后付费(按量付费)2 种,而 DTS 迁移只支持后付费(按量付费)。

● 数据同步支持跨地域的内网同步(如华东 1 的 rds-> 华北 1 的 RDS)。而数据 迁移对跨地域的迁移需要一侧有外网地址才可以,不支持内网迁移。

● 数据同步支持重新配置功能,数据迁移不支持,数据迁移如需要重新配置,需 要新建任务。

● 数据同步支持在同步过程中增加同步对象与删除同步对象,而数据迁移不支 持,数据迁移要新增和删除迁移对象,需要重新配置任务。 如下图 5-1 是 DTS 数据同步的页面。

image.png

5.1 地域

图 5-1 标记①处为地域信息,此处可以切换各个地域查看不同地域的实例信息。 这里选择的地域为“同步作业目标实例所在的地域”,假设您创建了一个华东 1 到华 北 1 的数据同步任务,这个任务会展示到华北 1 地域。推荐从概览页进入。

5.2 创建同步作业页面

图 5-1 标记②的“创建同步作业”,点击后,跳转到 DTS 数据同步购买页面,如下图 5-2。下面详细说下各项配置项。

image.png

5.2.1 商品类型

该商品类型的含义与“4.1.1 商品类型”相同。

5.2.2 功能

该功能的含义与“4.1.2 功能”相同。

5.2.3 源实例

源实例是指 DTS 数据同步的源端数据库类型,DTS 支持 MySQL、DRDS( 新 名称为 POLARDB-X)、Redis、PostgreSQL、Polardb、SQLserver 的数据库同步。

5.2.4 源实例地域

待迁移的源实例所在的地域。此处的选择规则与“3.3.2 实例地区”类似。

5.2.5 目标实例

目标实例是指 DTS 数据同步的目标数据库类型,不同的“源实例”对应不同的 目标实例,比如源实例为 MySQL 时,DTS 数据同步支持的目标实例有:MySQL、 MaxCompute、Datahub、ADS for MySQL、kafka、POLARDB 等, 比 如 源 实 例为 SQLserver,DTS 数据同步支持的目标实例只有 ADB for PostgreSQL。随着 DTS 的迭代升级,支持的类型也会不断的进行丰富。您配置时请以具体的页面展示 为准。

5.2.6 目标实例地域

待迁移的目标实例所在的地域。此处的选择规则与“3.3.2 实例地区”类似。

5.2.7 同步拓扑

当前 DTS 数据同步支持单向同步和双向同步,单向同步就是 A->B 的同步,双 向同步除了 A->B 外,还支持 B->A。双向同步相比单向同步要考虑的问题更多,比 如数据冲突处理、rename 等数据库命令、DDL 命令处理等问题。单向与双向同步 有如下几点需要注意。

5.2.7.1 单向同步

配置单向同步时,请注意如下 7 点:

● 如果同步对象为单个或多个表(非整库),那么在数据同步时,请勿对源库的 同步对象使用 gh-ost 或 pt-online-schema-change 等类似工具执行在线 DDL 变更,否则会导致同步失败。

● 暂不支持中国(香港)可用区 A 的 RDS MySQL 实例配置数据同步。

● 配置数据同步,RDS MySQL 实例必须具备内网地址。

● 如果源数据库没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标 数据库中出现重复数据

● 全量初始化过程中,并发 INSERT 会导致目标实例的表碎片,全量初始化完 成后,目标实例的表空间比源实例的表空间大。

● 当同步对象为整个库,且库中的触发器(TRIGGER)会更新库内某个表时, 可能导致源和目标库的数据不一致。请关闭目标库触发器。

● RENAME TABLE 操作可能导致同步数据不一致。例如同步对象只包含表 A, 如果同步过程中源实例将表 A 重命名为表 B,那么表 B 将不会被同步到目标 库。为避免该问题,您可以在数据同步配置时,选择同步表 A 和表 B 所在的 整个数据库作为同步对象。

####5.2.7.2 双向同步

配置双向同步时,请注意如下 7 点:

● 为保障双向同步链路的稳定性,对于同一张表的 DDL 更新只能在其中一个同 步方向进行同步。即一旦某个同步方向配置了 DDL 同步,则在反方向上不支 持 DDL 同步,只进行 DML 同步。

● 对于数据冲突的检测,DTS 目前支持的冲突检测策略为 TaskFailed( 遇到冲 突,任务报错退出 )、Ignore(遇到冲突,直接使用目标实例中的冲突记录)、 Overwrite(遇到冲突,直接覆盖目标实例中的冲突记录)。

● 全量初始化过程中,并发 INSERT 会导致目标集群的表碎片,全量初始化完成后,目标集群的表空间比源集群的表空间大。

● 如果数据同步的源集群没有主键或唯一约束,且记录的全字段没有唯一性,可 能会出现重复数据。

● 如果同步对象为单个或多个表(非整库),那么在数据同步时,请勿对源库的 同步对象使用 gh-ost 或 pt-online-schema-change 等类似工具执行在线 DDL 变更,否则会导致同步失败。

● 当同步对象为整个库,且库中的触发器(TRIGGER)会更新库内某个表时, 可能导致源和目标库的数据不一致,请关闭目标库触发器。

● RENAME TABLE 操作可能导致同步数据不一致。例如同步对象只包含某个 表,如果同步过程中源实例对该表执行了重命名操作,那么该表的数据将不会 同步到目标库。为避免该问题,您可以在数据同步配置时将该表所属的整个数 据库作为同步对象。

5.2.8 网络类型

DTS 数据同步通过专线进行内网数据传输,这也保证了 DTS 数据同步可以实现 跨地域内网同步。

5.2.9 同步链路规格

DTS 数据同步也有链路规格的说法,DTS 数据同步的链路规格有 4 种,性能由 低到高分别是 micro、small、medium、large(无限制规格,large 规格的线上运行 性能依赖于网络环境、源实例和目标实例的性能。)。 性能可以参考这里 https://help.aliyun.com/document_detail/26605.html?spm=a2c4g.11186623.6.560.4f8d5f5fzFwolJ

5.3 任务列表

图 5-1 标记③的处为所选择地域的任务列表。该页面展示与“3.4 任务列表” 的页面含义相同。当您购买完 DTS 数据同步作业后,此处会显示,比如刚才创建了一个华东 1-> 华东 2 的数据同步,点击华东 2 地域的任务列表,任务显示如下图5-3。

image.png

5.3.1 配置同步链路

DTS 数据同步购买完后,需要对其配置,才可以进行启动,点击“配置同步链路”跳转到 DTS 数据同步配置页面。如下图 5-4。由于之前购买 DTS 数据同步时选择的实例类型,地域都已经选定,此处的展示比 DTS 数据迁移也有一些区别。

image.png

5.3.1.1 实例类型

该实例类型的含义与“3.3.1 实例类型”含义相同。

5.3.1.2 实例 ID

由于我们实例类型选择的时 RDS 实例,此处要选择一个 RDS 数据库实 例,DTS 会自动检索华东 1 地域下您的实例信息,然后展示出来。该配置项与 “4.2.1.2RDS 实例 ID”含义相同。

5.3.1.3 数据库账号 / 数据库密码

该配置项与“4.2.1.3 数据库账号 / 数据库密码”含义相同。

5.3.1.4 连接方式

该配置项与“3.3.7 连接方式”的含义相同。

5.3.1.5 授权白名单并进入下一步

该功能与“3.3.9 授权白名单并进入下一步”含义相同。点击后,跳转新的页 面,如下图 5-5。该页面的含义与功能与“3.3.9 授权白名单并进入下一步”相同。

image.png

5.3.1.6 迁移类型

点击图 5-5 右下角的下一步,进入迁移类型选择页面。如下图 5-6。从这个页面也可以看到,您只可以配置结构初始化(结构迁移)与全量数据初始化(全量数据迁移),DTS 数据同步默认开启增量数据迁移。

image.png

5.3.1.7 预检查并启动

该功能与“3.3.11 预检查并启动”含义相同。如下图 5-7,预检查完成且全部成功后,点击关闭,DTS 数据同步开始进行数据同步,如下图 5-8。

image.png
image.png

5.3.2 实例 ID/ 作业名称

该功能与“3.4.1 ID/ 名称”、“4.2.2 订阅 ID/ 名称”含义相同。点击后,如下图5-9。

image.png

5.3.2.1 作业配置

该页面含义与“3.4.1.1 任务配置”、“4.2.2.1 订阅配置”含义相同。

5.3.2.2 同步初始化

该功能与“3.4.1.2 迁移详情”含义相同。如下图 5-10 和图 5-11。

image.png

5.3.2.3 性能监控

该功能与“3.4.1.3 性能监控”含义相同,如下图 5-12 和图 5-13。

image.png
image.png

5.3.2.4 监控报警

该页面含义与“3.4.7 监控报警”相同。如下图 5-14。

image.png

5.3.3 同步概况

图 5-8 的“同步概况”,指的是这个同步任务的迁移速度以及延迟情况,DTS 数据同步的延迟与迁移速度与“DTS 数据迁移”的逻辑相同,同样是从源端获取数 据(全量与增量),然后把数据写入到目标数据库。当出现延迟或者迁移速度不达标 时,可以根据“5.3.2.3 性能监控”说明进行排查。

5.3.4 暂停任务

该功能与“3.4.9 暂停任务”含义相同。

5.3.5 升级

该功能与“3.4.6 升级”含义相同。

5.3.6 更多

点击更多,可以对 DTS 数据同步任务进行更多配置,如下图 5-15。重点说下“修改同步对象”与“转为双向同步”这两个功能。

image.png

5.3.6.1 修改同步对象

DTS 数据同步支持在任务运行过程中增加或者删除同步对象,点击“修改同步对象”功能,跳转到新的对象配置页面,如下图 5-16,在这个页面,您可以把不需要同步的对象移除,也可以把新增需要同步的对象添加到同步列表,比如此处,我们把 sbtest 数据库加入同步对象(新增同步对象)。

image.png

点击预检查并启动后,预检查通过后,DTS 同步状态会变成“新增对象初始化 中”,如下图 5-17。这个状态可能会持续很久,DTS 的新增同步对象是通过启动一 个子 DTS 同步任务完成的,也就是 DTS 的后台会起到一个当前任务下的子任务按 照结构 + 全量 + 增量(何种迁移类型取决于主任务创建时如何配置)迁移新增的对象。 然后等迁移完成后,合并到主任务中(合并时是增量迁移合并,也就是说合并的前提 是子任务已经正常进入了增量迁移)。合并完成后“新增对象初始化中”会小时。如 果您遇到“新增对象初始化中”持续很长时间(比如 1 天)可以反馈阿里云售后核实。 需要注意,这类新增对象的操作不可取消。

image.png

5.3.6.1 转为双向同步

单向数据同步可以直接升级为双向同步,只有任务状态为正常同步中状态时,该选项才可选择(比如当任务状态为新增对象初始化中时,该功能不可用)。点击后,任务列表中该任务会变成如下图 5-18 的展示形式。

image.png

其中,之前配置好的任务变成了正向,为了实现双向同步,我们还需要配置反向同步任务才可以,点击“配置同步链路(等待由灰色变为蓝色)”,跳转配置页面如下图 5-19。

image.png

继续点击“授权白名单并进入下一步”,跳转对象选择页面,如下图 5-20,选择DML 同步类型、冲突修复策略以及同步对象后,点击下一步,选择迁移类型,然后启动预检查。至此,双向同步配置完成。

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

云服务技术课堂,各类技术课程、最佳实践输出,来好好听课吧!

官方博客