华为云数据复制服务DRS实战:迁移任务创建、同步模式、预检查与切换

举报
yd_235631729 发表于 2026/11/10 19:18:35 2026/11/10
【摘要】 本文介绍华为云数据复制服务DRS的核心用法:创建迁移或同步任务、选择全量与增量模式、完成预检查并处理常见告警,以及在增量时延追上后执行业务切换,帮助把源库数据安全、低中断地复制到目标库。

一、背景:为什么用DRS做库迁移和同步

把数据库迁到云上,或让两套库保持持续同步时,很多人第一反应是导出导入。全量导出在业务低峰也许能做,但库一大、白天又不能停写,窗口会拉得很长,增量也对不齐,切流时心里没底。

华为云数据复制服务(Data Replication Service,简称DRS)把“全量复制 + 增量追平 + 业务切换”做成可监控的任务:源库继续对外提供服务,目标库先接住存量,再持续应用增量变更,等时延接近零再切应用。它和云上数据库本身不是一回事——后者是数据存放的位置,DRS是两者之间的复制管道。本文按“准备工作 → 选择模式并创建任务 → 预检查 → 启动全量与增量 → 业务切换”的顺序实操一遍。菜单名称以控制台当前版本为准。

二、核心概念

源库与目标库:复制的起点和终点。源库可以是自建库或已有云上实例,目标库通常是新建的、规格和版本兼容的实例。两端都用占位符记录,例如 <源库地址>、<目标库地址>,不要把真实地址写进对外文档。

实时迁移:以“迁走并切走”为目的,一般走全量加增量,追平后做业务切换,切换完成可结束任务。

实时同步:以“长期保持一致”为目的,适合数据集成、汇总库,或多源合一。不一定做一次性割接,任务会持续运行。

全量与增量:全量负责把存量对象和数据拷过去,增量通过源库的事务日志持续追平。只做全量适合可短暂停写的小库;生产库几乎都要全量加增量。

预检查:任务启动前的自动体检,覆盖连通性、账户权限、日志开关、版本与对象冲突等。有失败项就先修,不要强行启动。

业务切换:把应用的写流量从源库切到目标库。前提是增量时延足够低,且目标库已追上。

三、准备工作

开始前先把两端信息写成一张表,避免创建任务时反复改:

  1. 源库引擎、版本、需要迁移的库与表,源库访问地址记为 <源库地址>,端口和库名分别记录;
  2. 目标库引擎、版本、规格和磁盘余量,访问地址记为 <目标库地址>,确认版本不低于源库,字符集和时区与源库一致;
  3. 源库和目标库的专用账号,分别记为 <源库用户>、<目标库用户>,权限要覆盖查询、一致性快照以及读取事务日志,不要直接用日常业务账号;
  4. 网络通路:源库与DRS任务所在区域要能连通,按实际环境选择虚拟私有云、专线、VPN或公网,安全组只放行DRS所需的库端口,不要对全部地址完全放开;
  5. 源库事务日志已开启且保留时间足够,磁盘余量能扛住全量阶段的额外读取;
  6. 目标库是空库或已明确冲突策略,避免把旧数据和新迁移对象混在一起。

账号密码只通过安全渠道保管,不要写进代码仓库或公开文档。目标库规格建议不低于源库峰值,否则增量会一直落后。

四、选择迁移或同步模式

创建任务前先想清楚“迁完是否切走”,再选类型,不要选错后再删建。

若目标是把业务迁到新库并断开源库,选实时迁移,迁移模式选“全量+增量”。全量阶段拷贝表结构和存量数据,增量阶段持续应用变更,为切换打基础。若库很小且能接受一段停写,可以只做全量,但要把停写窗口写进变更单。

若目标是两边长期并行、做报表汇总,或把多个源汇到一个目标,选实时同步。同步也可以是全量加增量,但任务会一直跑,对象映射和冲突策略要比一次性迁移更谨慎。多源合一时,主键和唯一键必须提前规划,避免后写入覆盖先写入。

还要确认引擎组合:同引擎同版本最稳妥;跨版本时目标库应不低于源库,跨引擎要先看控制台当前支持的对象范围,不要假设所有存储过程、触发器、外键都会原样过去。对象选择尽量按库或按业务域勾选,先迁核心库,再迁周边。

五、创建迁移任务

进入数据复制服务控制台:

  1. 选择与目标库相同的区域,创建迁移或同步任务;
  2. 填写任务名称,建议带环境和用途,例如 drs-mig-prod-core;
  3. 选择任务类型(实时迁移或实时同步)、迁移模式(全量、增量或全量+增量)、引擎类型和网络类型;
  4. 配置源库:地址填 <源库地址>,再填端口、<源库用户> 和密码,测试连接通过后再进入下一步;
  5. 配置目标库:地址填 <目标库地址>,同样填端口、<目标库用户> 和密码并测试连接;
  6. 选择迁移对象,确认表、索引、视图等是否在本次范围内,需要改名时配置对象映射;
  7. 按需设置同步冲突策略、是否迁移用户与权限、限速和失败重试,测试环境可先限速观察;
  8. 确认计费方式和任务规格,规格影响全量和增量的吞吐,选太小会导致增量时延降不下来。

创建后先不要直接启动,先进入预检查。连接测试成功只说明账号和网络通,不代表日志、权限和对象都具备迁移条件。

六、预检查与常见问题

提交预检查后,控制台会给出逐项结果。建议把失败项和告警项都记到变更单里,告警不一定会挡住启动,但生产任务不要轻易忽略。

常见必须处理的失败项包括:

连通性失败:核对 <源库地址>、<目标库地址>、端口、安全组和网络类型是否选错。改完再测连接,不要在不通时反复重建任务。

权限不足:<源库用户> 缺少读事务日志或锁定一致性快照的权限,或 <目标库用户> 不能建表、建索引、写数据。按产品文档当前要求补齐权限后再查一次。

事务日志未开启或保留过短:增量依赖源库日志。未开启时先在维护窗口打开,并把保留时间设到能覆盖全量所需时长加余量,否则全量还没结束,最早的增量就已经被清理。

对象冲突或结构不支持:目标库已有同名表、存在无主键表,或某些对象类型当前不支持。先清理冲突对象,按控制台提示补主键或排除部分对象。

磁盘或规格不足:目标库磁盘估不下全量,或任务规格明显偏低。先扩容再检查,避免跑到一半空间写满。

全部关键项通过后,再启动任务。全量阶段关注进度和源库负载,必要时在业务高峰临时限速;进入增量后关注时延,时延长期不下降时检查规格、源库写入量和网络,而不是立刻做切换。

七、业务切换

增量时延稳定接近零,并且抽样对比源库与目标库数据一致后,才能进入切换。不要只看任务状态是“增量中”就切,因为堆积一旦反弹,切过去会丢最近的写入。

建议按下面的顺序,不要跳步:

  1. 冻结或降低源库写入:把应用改为只读,或在维护窗口短暂停写,并停止可能直连源库的定时任务和后台作业;
  2. 在DRS任务中观察增量时延,确认堆积降到接近零,并再做一次关键表的行数或校验和对齐;
  3. 按控制台提供的切换或结束流程操作,确认目标库已经应用到最后一批增量,必要时把目标库从只读改为可写;
  4. 把应用连接从 <源库地址> 改为 <目标库地址>,先放一小部分读或写,观察错误率和慢查询,再全量切流;
  5. 保留源库一段时间作为回退点,确认业务稳定后再结束DRS任务,不要一切完就拆源库。

如果是实时同步或灾备演练,切换同样要有明确的写端切换和回切步骤,避免两端同时可写造成数据分叉。切换失败时,优先把应用连回源库,再排查增量延迟和对象差异,而不是在目标库上手动补数据。

需要记录核对命令时,用占位符,不要把真实地址写进对外文档。例如:

-- 在源库和目标库分别执行,核对本表行数
SELECT COUNT(*) FROM <业务表名>;

八、小结

DRS的关键不是把任务“创建出来”,而是三件事同时正确:模式选对(迁走还是长期同步)、预检查把连通性、权限和日志问题清掉、切换时增量时延真正追上并且留有回退。先用一张表把 <源库地址>、<目标库地址>、账号、对象范围和模式对齐,再创建任务并完成预检查,最后在维护窗口切流,这样比导出导入更可控,也比带着失败项强行启动更安全。

生产环境还要考虑:任务规格与源库峰值匹配、切换演练、数据对比和回退窗口,以及任务结束后再回收源库。地址和账号只放在内部变更单里,不要出现在公开博客或代码仓库中。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。