阿里云DTS实施小记

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介:

       最近在XX客户现场进行了一次RDS数据库灾备实施,使用的是阿里云的数据传输服务。这里先简单介绍一下,数据传输(Data Transmission)是阿里云提供的一种支持RDBMS(关系型数据库)NoSQLOLAP等多种数据源之间数据交互的数据服务。它提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输能力。通过数据传输可实现不停服数据迁移、数据异地灾备、跨境数据同步、缓存更新策略等多种业务应用场景,助您构建安全、可扩展、高可用的数据架构。

这次实施要使用的是DTS的数据同步功能,将生产RDS数据同步到另外一个可用区的RDS上。了解过DTS的朋友可能都会觉得比较简单,按部就班将DTS配起来然后进行同步不就得了吗。而事实上我的实施过程并没有那么顺利,下面给大家分享一下实施经验,以让大家以后尽可能地少饶坑。

因为同步的数据涉及到门店的会员数据和会员积分等,所以实施时间定在晚上10点。去到客户现场后,也不是说立刻就可以开干的。客户先等到10点半再开始购买DTS,核实了好几次DTS的规格和价格后终于在立即购买那里点击了鼠标。在同步数据之前我们和客户都认同需要对源RDS进行一次全备,在11点我们对源RDS实例进行物理备份(源RDS100G左右的数据量,物理备份这里等了40多分钟)。

       对源数据库备份完后,客户想在做数据同步作业之前先清空目标RDS,明明可以通过控制台删除数据库,但客户貌似对使用命令行操作有独特的信仰,于是我们创建了RDS的高级权限帐号,用该帐号连进去数据库里面,通过命令行清空了里面的库。这里科普一下,阿里云的DTS需要在目标RDS上创建同步帐号dtssyncwriter,因为创建了高级权限帐号,这个时候控制台无法回到原有使用控制台创建数据库和账号模式,需使用 SQL 命令创建数据库和账号,而事实上发现该帐号原本已存在了。到这里为止,准备工作都做了,接下来按照官方指引配完DTS,预检查并开始同步。

       好不容易等到同步完成了,客户发现有两个比较关注的表中多了10多条数据,我们问客户会不会可能在半夜还有新数据的写入?客户坚信门店都已经关门了,绝对不会有人员进店和资料更新的,然后就开始怀疑阿里云DTS是不是不可靠,是不是源和目标RDS会互相同步才导致了数据的增加。如果客户存在这种顾虑和疑问,我们应该绝对肯定的告知客户同步是单向的,不会动原始数据,而事实上当时我们也是这样告知客户的。

       还没开始去找多了数据的原因,这个时候来了个乌龙,客户发现刚才同步的这个目标RDS是经典网络的,而其余的RDS都是专有网络,这对后面的通信是有问题的,客户意识到自己选错了目标RDS,这意味着我们之前的工作又要重做了。

       客户的环境中还有另外一台目标RDS(专有网络)可用来做数据同步,这个RDS同样是之前使用过的,里面的数据已经没用了。客户对操作已经驾轻就熟了,于是直接重新配置了DTS并进行同步,在等待同步的过程中发现目标RDS上存在和源RDS同名的旧库,在同步之前忘记先删除掉了,更糟糕的是,这个时间刚好碰上源RDS那边正在做设定的计划任务的自动备份,无奈只能硬着头皮让它继续同步祈祷最后能同步成功,这个时候已经是凌晨4点。

       硬着头皮同步完,同样的,对比一下比较关注的两个表中的数据,发现目标RDS中只有几条数据,意味着同步不生效,可能的原因有两个,一个是在同步前没有先清空原有的同名旧数据库,另一个是因为当时源RDS正在做自动备份。

       洗了一把脸,再来一次。先直接通过控制台删除掉数据库,然后配置DTS,开始同步。这次同步完成后客户又对比了一下数据,发现源和目标RDS相比上次对比有多了一些数据,我们再次告诉客户请相信阿里云的DTS是单向同步的,除非是源RDS在半夜的时候仍然有新数据写入才导致数据增加的。

       虽然数据是增加了,在客户确认了源RDS和目标RDS两个比较关注的表中记录数是一致的之后,我们决定找出数据增长的原因,发现客户比较关注的两个表中都有createdtime这个字段,然后用sql命令查找createdtime001秒之后的记录,发现的确在凌晨是有新的数据写入,而且数量刚好就是之前对比得出的差值。终于舒了一口气。

最后总结一下,虽然DTS的技术点实施看起来比较简单,但是事实证明结合企业实际情况时也可能会变得复杂。另外,也建议大家在方案涉及的时候考虑风险点和应对措施,在实施前对相关技术了解清楚,在实施时要仔细、按序、彻底,在和客户交流过程中给予客户足够的信心。

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
6月前
|
关系型数据库 MySQL 数据挖掘
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
DTS 作为阿里云核心的数据交互引擎,以其高效的实时数据流处理能力和广泛的数据源兼容性,为用户构建了一个安全可靠、可扩展、高可用的数据架构桥梁。阿里云数据库 SelectDB 通过与 DTS 联合,为用户提供了简单、实时、极速且低成本的事务数据分析方案。用户可以通过 DTS 数据传输服务,一键将自建 MySQL / RDS MySQL / PolarDB for MySQL 数据库,迁移或同步至阿里云数据库 SelectDB 的实例中,帮助企业在短时间内完成数据迁移或同步,并即时获得深度洞察。
阿里云 SelectDB 携手 DTS ,一键实现 TP 数据实时入仓
|
6月前
|
数据库
阿里云DTS数据迁移和数据同步的差异性分析
阿里云DTS作为一款常用的数据库表迁移工具,提供了功能非常类似的两个功能:数据迁移、数据同步。阿里云DTS产品官网对这两个功能模块进行了简单的区分: 场景1:存量数据批量迁移,建议使用数据迁移功能。 场景2:增量数据实时同步,建议使用数据同步功能。 实际上,无论是数据迁移还是数据同步,都可以做 “结构初始化”+“全量数据迁移”+“增量迁移”,因此两者功能差异并不明显。笔者在多个项目实践DTS数据迁移,在简单需求场景下,将DTS的数据迁移、数据同步进行对比和总结。
|
2月前
|
NoSQL 安全 容灾
阿里云DTS踩坑经验分享系列|Redis迁移、同步
阿里云数据传输服务DTS在帮助用户迁移Redis数据、同步数据时,在某些复杂场景下会出现报错,或者源库与目标库数据不一致的问题,给用户带来困扰。本文介绍了DTS Redis到Redis迁移、同步过程中的典型问题,以帮助用户更好地使用DTS。
183 2
|
4月前
|
SQL 负载均衡 安全
阿里云DTS踩坑经验分享系列|全量迁移加速方法指南
阿里云数据传输服务DTS是一个便捷、高效的数据迁移和数据同步服务。一般而言,一个完整的DTS数据迁移任务主要包括预检查、结构迁移,全量迁移,增量迁移等阶段,其中全量迁移会将源数据库的存量数据全部迁移到目标数据库。面对各种各样的用户场景, 本文将重点介绍如何使用阿里云DTS实现全量数据迁移加速,以缩短迁移时间,确保数据迁移的效率和稳定性。
498 0
|
6月前
|
SQL 运维 关系型数据库
阿里云DTS踩坑经验分享系列|数据不一致修复大法
阿里云数据传输服务DTS在帮助用户迁移数据、同步数据时,在某些复杂场景下会出现源库与目标库数据不一致的问题,造成数据错误,给用户带来困扰。由于数据不一致的问题很难完全避免,为了及时修复不一致的数据,DTS产品推出数据订正功能,保障用户在同步\迁移数据时的数据一致性。本文介绍了产生数据不一致的一些典型场景,并重点阐述了如何使用DTS数据订正功能来修复不一致的数据。
548 4
|
6月前
|
NoSQL 关系型数据库 数据库
数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务
【2月更文挑战第29天】数据传输服务DTS(Data Transmission Service)是阿里云提供的实时数据流服务
77 5
|
6月前
|
关系型数据库 MySQL 数据库
使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
【2月更文挑战第29天】使用阿里云的数据传输服务DTS(Data Transmission Service)进行MySQL 5.6到MySQL 8.0的迁移
336 2
|
6月前
|
网络协议 容灾 NoSQL
阿里云DTS踩坑经验分享系列|网络问题排查大法
在DTS的所有用户问题中,网络问题出现的概率居高不下,很大程度上是由于DTS的链路复杂性,从源数据库到DTS再从DTS到目的数据库,任意的一个部位发生网络不通、网络质量问题都有可能导致DTS任务的中断,或者延迟。本文希望以一种最简单的模型,简述DTS网络不通问题的排查方法,并给出一些简单的验证思路及手段,排查方向对了才能事半功倍。
109121 3
阿里云DTS踩坑经验分享系列|网络问题排查大法
|
6月前
|
存储 弹性计算 监控
【数据传输服务用户测评】阿里云DTS和MongoShake的性能对比
本文聚焦DTS MongoDB->MongoDB 和 MongoShake 数据同步的性能,分别针对副本集/分片集群架构、单表/多表、全量/增量同步进行性能的对比。
86261 9
|
6月前
|
SQL JSON NoSQL
阿里云DTS踩坑经验分享系列|链路内ETL使用手册
DTS是一个数据迁移和同步服务,通常用于数据搬迁或实时数据传输。DTS在数据同步链路基础上,提供流式数据ETL数据处理功能,支持使用DSL(Domain Specific Language)脚本语言灵活地定义数据处理逻辑。
94008 3
下一篇
无影云桌面