云上数据迁移工具选型:DMS、Snowball、CDC怎么选?

去年一个客户,机房要搬迁,几十TB数据要上云。技术负责人问我:“用DMS传吧,反正网上说能传。”
我问他:“你们带宽多少?”
“200Mbps。”
“算过传多久吗?”
他沉默了。
粗算:200Mbps带宽跑满,传50TB数据,理论需要约24天。但互联网带宽不可能跑满,实际可能要一个多月。而且这期间网络不能断、源库不能停。
这是数据迁移工具选型最常见的误区:只看工具功能,不看场景匹配。
今天聊聊DMS、Snowball、CDC怎么选。数据量、网络带宽、停机窗口三个维度,决定了该用哪个工具。
01 先算一笔账
选工具之前,先回答三个问题。
第一,数据量多大?
几百GB到几TB,DMS在线传可行。几十TB到几百TB,DMS传几个月不现实,要考虑Snowball物理运输。PB级数据,可能需要Snowmobile(集装箱卡车)。
第二,网络带宽多少?
200Mbps传50TB约24天(理论值)。如果带宽只有50Mbps,时间翻四倍。如果用的是专线,可以稍微乐观一些,但前提是专线不承载其他业务流量。带宽越低,离线方案越有优势。
第三,停机窗口多长?
能接受几小时停机,还是必须零停机?DMS+CDC可以实现分钟级停机,Snowball物理运输需要更长的切换窗口。
那家客户50TB数据,200Mbps带宽,业务要求停机不超过4小时。DMS在线传要一个月,不行。Snowball方案成了唯一选择。
02 DMS:在线迁移的主力
AWS DMS(Database Migration Service)适合中小数据量、在线迁移。
适合场景:
核心能力:
注意事项:
那家客户如果用DMS传50TB,按200Mbps带宽、实际可用带宽约70%估算,需要30天以上。业务等不起。
03 Snowball:物理运输,量大必选
当网络太慢或数据量太大时,Snowball是更经济的选择。
适合场景:
数据量几十TB到PB级
网络带宽不足,在线传输时间过长
业务对迁移时间敏感,不能等几个月
工作原理:AWS寄一个物理存储设备(Snowball Edge),你把数据拷进去,寄回AWS,AWS导入云端。
注意事项:
那家客户选择Snowball方案:两台Snowball Edge并行拷贝,一周内完成数据导出和寄回。加上AWS导入时间,整体两周内完成。比DMS在线传快了一倍多。
04 CDC:持续同步保证数据一致
CDC(Change Data Capture)不是独立工具,而是DMS或自建方案中的核心能力。
适合场景:
迁移期间源库持续写入,需要保持目标库实时同步
双库并行运行,验证目标库性能
最终切流时停机窗口极短
工作原理:读取数据库日志(binlog、WAL),捕获每一条插入、更新、删除操作,实时应用到目标库。
核心优势:
那家客户Snowball传完全量后,开启CDC同步迁移期间的增量数据,确保切流时数据一致。
05 选型决策树
第一步:数据量多大?
<5TB,带宽充裕 → DMS全量+CDC,停机短
5-50TB,带宽充裕 → DMS可行,但评估时间
5-50TB,带宽不足 → Snowball+DMS/CDC混合方案
50TB → Snowball或Snowmobile
第二步:停机窗口多长?
几小时以内 → DMS+CDC,切流时接近零停机
几个小时到一天 → DMS全量,规划好切换窗口
一天以上 → 物理运输方案
第三步:源库能承受查询压力吗?
核心库,不能额外负载 → CDC方案(读日志)
可接受SELECT查询 → DMS全量可接受
06 一个真实案例:混合方案搞定50TB迁移
那家客户,50TB数据,200Mbps带宽,停机窗口4小时。
方案:
Snowball Edge两台并行拷贝全量数据(约1周)
设备寄回AWS,AWS导入云端(约3天)
导入期间,DMS CDC持续同步源库增量变更
切流前,数据校验确认一致
切流窗口内,业务停机不到2小时
技术负责人说:“如果当初用DMS硬传,可能现在还在传。”
写在最后
数据迁移工具选型,核心不是工具本身,是场景匹配。
那家客户的运维负责人后来总结:“数据量小用DMS,数据量大用Snowball;全量+增量,CDC保一致;带宽不足别硬传,物理运输更靠谱。”
你的数据,选对工具了吗?