第一次用 DRS 把 MySQL 在线同步到 GaussDB:全量+增量实测记录

举报
桑田 发表于 2026/11/01 20:33:52 2026/11/01
【摘要】 最近做了一次数据库同步的实操:把一个 RDS for MySQL 里的业务库,用数据复制服务 DRS 在线同步到 GaussDB(集中式版)。目标是全量搬完之后,源端再写入的新数据也能自动跟过去。整个过程走通了,踩的几个坑都挺有代表性,记录

最近做了一次数据库同步的实操:把一个 RDS for MySQL 里的业务库,用数据复制服务 DRS 在线同步到 GaussDB(集中式版)。目标是全量搬完之后,源端再写入的新数据也能自动跟过去。整个过程走通了,踩的几个坑都挺有代表性,记录下来。

场景与链路

源端是一个 MySQL 5.7 的库,里面有两张表:客户表 client 和银行卡表 bank_card,各造 10 条测试数据。目标端是 GaussDB 集中式版(1 主 2 备)。链路是:先建目标库实例 → 建好源库并造数 → 在目标端建同名空库 → 用 DRS 建同步任务(全量+增量)→ 源端再插入 20 条新数据 → 两边对数验证。

关键步骤

  1. 先下单目标端 GaussDB:按需计费、集中式、1 主 2 备,端口 8000,建在与源端相同的 VPC 和子网里,省去后面打通网络的麻烦。
  2. 源端放行:DRS 同步实例有自己独立的 IP,它要连源库的 3306 端口。实验环境里我把 MySQL 端口对内网放行了;生产环境建议只放行同步实例所在子网,别图省事全开。
  3. 两边各建同名库 finance:源端在 DAS 里建库建表并插入初始数据;目标端也要先把空库建好,同步对象映射时要把目标库名手动填成 finance。
  4. 建 DRS 同步任务:迁移类型选入云,网络选 VPC 网络,同步模式选「全量+增量」。同步对象选表级同步,把 finance 库移入;有一点容易漏:除了默认勾选的「同步表数据」,还要把「同步表结构」和「同步索引」也勾上,不然目标端只有数据没有结构定义。增量冲突策略选「覆盖」。
  5. 预检查与启动:预检项全部通过后立即启动。10 条数据的全量很快就到 100%,增量时延显示 0 秒。
  6. 增量验证:回源端再插入 20 条 bank_card,源端计数变 30;到目标端查询,计数同样是 30,随机抽一条新增记录按主键查,内容一致。最后用 gsql 客户端经公网 IP 直连目标库再查一次,结果无误。

踩的四个坑

  • 规格售罄与可用区有关:选 GaussDB 规格时,如果可用区选了三个,通用型规格全线售罄;只保留一个可用区后立刻有货。配实例时遇到「无可用规格」先别慌,试试收窄可用区。
  • DAS 登录要选主节点:登录 GaussDB 的数据管理服务时,节点下拉默认落在一个从节点上,测试连接直接报无法连接;改选主节点后才通。遇到「实例明明正常却连不上」,先检查自己连的是不是主节点。
  • 查不到数据先看模式(Schema):在目标端执行查询,一开始结果为空——不是数据没同步过来,而是当前模式停在系统默认的模式上,切到 finance 模式后数据全在。GaussDB 兼容 MySQL 的库下面还有一层模式,查数前先确认模式选对了。
  • 同步实例的 IP 要提前放行:DRS 创建时会提示同步实例的 IP 需要加入源库白名单。这个提示一闪而过容易忽略,等任务卡在连接失败再回头补就浪费一轮时间。

小结

这次实测下来,DRS 的全量+增量链路对小数据量几乎是即时的,配置里真正的风险点不在性能,而在几个默认值的坑:可用区与规格的联动、主从节点选择、模式切换、同步对象要手动补勾结构与索引。把这四处提前列成检查单,整个同步一次就能走通。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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