操作场景
本文为您介绍使用数据传输服务 DTS 从 MongoDB 数据库同步数据至腾讯云数据库 MongoDB 的过程。
准备工作
1. 请仔细阅读 使用说明,了解功能约束和注意事项。
2. 请根据您需要使用的接入类型,提前打通 DTS 与数据库之间的访问通道,具体请参考 网络准备工作。
IDC 自建数据库/其他云厂商数据库:接入方式可选择“公网/专线接入/VPN 接入/云联网”。
CVM 上的自建数据库:接入方式选择“云服务器自建”。
腾讯云数据库实例:接入方式选择“云数据库”。
3. 建议在源数据库创建一个只读账号供同步使用,参考方式如下。
# 源数据库为副本集、单节点时的语法示例use admindb.createUser({user: "username",pwd: "password",roles:[{role: "readAnyDatabase", db: "admin"},{role: "read", db: "local"}]})# 源数据库为分片集群时的语法示例use admindb.createUser({user: "username",pwd: "password",roles:[{role: "readAnyDatabase", db: "admin"},{role: "read", db: "local"},{role: "read", db: "config"}]})
4. 目标库为腾讯云数据库实例,可以使用 mongouser 进行同步,也可以自行创建账号,自行创建账号的参考方式如下。
db.createUser({user:"username",pwd:"password",roles:[{role:"readWriteAnyDatabase",db:"admin"}]})
操作步骤
步骤一:新建同步任务
1. 登录 DTS 控制台,在左侧导航选择数据同步,单击新建同步任务,进入新建同步任务页面。
2. 在新建同步任务页面,选择同步的源实例类型和所属地域,目标实例类型和所属地域,规格等,然后单击立即购买。
参数 | 描述 |
创建模式 | 新建任务:新建一个全新的任务。 创建类似任务:快速创建一个和历史任务相同配置的任务,新的任务中数据库类型、计费模式等默认填充的选项都和历史任务保持一致,用户如果需要也可根据情况进行修改。 |
计费模式 | 支持包年包月和按量计费。 |
源实例类型 | 选择 MongoDB,购买后不可修改。 |
源实例地域 | 选择源实例所在地域,购买后不可修改。 |
目标实例类型 | 选择 MongoDB,购买后不可修改。 |
目标实例地域 | 选择目的实例所在地域,购买后不可修改。 |
规格 | |
标签 | 给同步任务设置标签键与标签值,便于通过标签高效管理多个任务。 |
任务名 | 选择创建后命名,默认任务名称与任务 ID 一致。在同步任务创建完成之后,可重新设置任务名称。 选择立即命名,在下面输入框中,输入任务名称。 |
协议条款 |
3. 购买完成后,返回 数据同步列表,可看到刚创建的数据同步任务,刚创建的同步任务需要进行配置后才可以使用。
步骤二:设置同步源和目标数据库
1. 在数据同步任务列表,单击操作列的配置,进入配置同步任务页面。

2. 在设置同步源和目标数据库页签,填写源和目标数据库等信息,然后单击测试连通性,测试连通性后,单击下一步。



任务设置
参数 | 描述 |
任务名称 | DTS 会自动生成一个任务名称,建议用户修改为一个具有业务意义的名称,便于任务识别。 |
运行模式 | 立即执行:前置校验通过后会立即启动任务。 定时执行:设置一个任务开始执行的时间,前置校验通过后不启动任务,到设定的时间再启动。 |
源库设置
参数 | 描述 |
源实例类型 | 购买时所选择的源实例类型,不可修改。 |
源实例地域 | 购买时选择的源实例所在地域,不可修改。 |
接入类型 | 源库为 IDC 自建数据库/其他云厂商数据库:接入类型可选择“公网/专线接入/VPN 接入/云联网”。 公网:源数据库可以通过公网 IP 访问。 专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络打通。 VPN 接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络打通。 云联网:源数据库可以通过 云联网 与腾讯云私有网络打通。 私有网络 VPC:源数据库和目标数据库都部署在腾讯云上,且有 私有网络。 源库为 CVM 上的自建数据库:接入类型选择“云服务器自建”。 源库为腾讯云数据库实例:接入类型选择“云数据库”。 |
架构 | 接入类型选择“公网/云服务器自建/专线接入/VPN 接入/云联网/私有网络 VPC”时显示该参数。请根据实际情况选择。 副本集:指源库为副本集,每一个副本集由一个 Primary 节点和一个或多个 Secondary 节点组成的架构。 集群迁移:指源库为分片集群,每一个分片集群由 mongos 节点、config server、shard 节点等组件组成的架构。 单节点:指源库集群为单个节点来进行读写操作。 说明: 选择一种架构类型,并且连通性测试通过后,不能再修改为其他架构类型,否则任务会报错。 |
迁移方式 | 架构选择“集群迁移”,迁移方式为“oplog”时,需要配置如下参数。 节点 - mongod:请输入 mongod 节点 IP 和端口,或者域名和端口。多个节点请换行输入;每个 shard 下仅填入一个 mongod 即可,示例:1xx.xx.55.77:6xx9 节点 - mongos:请输入 mongos 节点 IP 和端口,或者域名和端口。 节点 - Config Server:请输入 Config Server 节点的 IP 和端口,或者域名和端口。 架构选择“集群迁移”,迁移方式为“Change Stream”时,需要配置如下参数。 连接串类型:支持普通或者 SRV 连接串 节点 - mongos:请输入 mongos 节点 IP 和端口,或者域名和端口。 说明: Change Stream 迁移方式以下的 DDL event: createIndexes、dropIndexes、modify、drop、create、shardCollection、reshardCollection、refineCollectionShardKey 其中:createIndexes、dropIndex、create、modify 仅6.0版本以上支持,refineCollectionShardKey 仅在6.10版本以上支持 |
公网 | 接入类型选择“公网”时,需要配置如下参数。 主机地址:源数据库 IP 地址或域名。 端口:源数据库使用的端口。 |
云服务器自建 | 接入类型选择“云服务器自建”时,需要配置如下参数。 云服务器实例:云服务器 CVM 的实例 ID。 端口:源数据库使用的端口。 |
专线接入 | 接入类型选择“专线接入”时,需要配置如下参数。 私有网络专线网关:专线接入时只支持私有网络专线网关,请确认网关关联的网络类型。 私有网络:选择私有网络和子网。 主机地址:源数据库 IP 地址或域名。 端口:源数据库使用的端口。 |
VPN 接入 | 接入类型选择“VPN 接入”时,需要配置如下参数。 VPN 网关:请选择 VPN 网关 ID。 私有网络:选择 VPN 网关关联的私有网络和子网。 主机地址:源数据库 IP 地址或域名。 端口:源数据库使用的端口。 |
云数据库 | 接入类型选择“云数据库”时,需要配置如下参数。 是否跨账号 本账号:源数据库实例和目标数据库实例所属的主账号为同一个腾讯云主账号。 跨账号:源数据库实例和目标数据库实例所属的主账号为不同的腾讯云主账号。跨账号操作指导请参见 云数据库跨账号实例间同步。 云数据库实例:源数据库的实例 ID。 |
云联网 | 接入类型选择“云联网”时,需要配置如下参数。 云联网接入时,支持同账号云联网和跨账号云联网。 主机所在网络环境:请根据实际情况选择。例如源库为腾讯云数据库实例,选择“腾讯云”;源库为 IDC 自建数据库,选择“自建 IDC”;源库为其他云厂商数据库,则选择对应的网络。 主机地址:源数据库 IP 地址或域名。 端口:源数据库使用的端口。 云联网实例所属账号 我的账号:云联网资源和目标数据库归属同一个腾讯云主账号。 其他账号:云联网资源和目标数据库归属不同的腾讯云主账号。 私有网络云联网:云联网实例名称。 云联网关联 VPC 及子网:“云联网关联 VPC”指云联网中接入同步链路的 VPC。请在云联网关联的所有 VPC 中,选择除了源数据库所属 VPC 外的其他 VPC。 VPC 所属地域:购买任务时选择的源数据库地域与接入 VPC 地域需要保持一致,如果不一致,DTS 会将购买任务中选择的源数据库地域,改为接入 VPC 地域。 |
私有网络 VPC | 接入类型选择“私有网络 VPC”时,需要配置如下参数。 私有网络:选择 VPN 网关关联的私有网络和子网。 主机地址:源数据库 IP 地址或域名。 端口:源数据库使用的端口。 |
是否需要认证 | 是否需要对源库中用户名和密码的安全性进行认证。选择“需要”则要填写如下参数。 认证库:需要认证的库名,即执行同步任务账号所属的数据库名称,只支持填写 admin。 认证机制:当前仅支持 SCRAM-SHA-1。 账号及密码选择 相同账号及密码:mongod、mongos、Config Server 角色均采用相同账号及密码时选择该参数,并填入统一的账号密码。 不同的账号及密码:mongod、mongos、Config Server 角色采用不同账号及密码时选择该参数,并分别填入 mongod、mongos、Config Server 的账号和密码。 |
账号 | 源数据库的账号。 |
密码 | 源数据库账号的密码。 |
连接方式 | SSL 安全连接指 DTS 与数据库通过 SSL(Secure socket layer)安全连接,对传输链路进行加密。 选择 SSL 安全连接可能会增加数据库的连接响应时间,一般腾讯云内网链路相对较安全,无需开启 SSL 安全连接,采用公网/专线等传输方式,并且对数据安全要求较高的场景,需要开启 SSL 安全连接。选择 SSL 安全连接前,需要先在数据库中开启 SSL 加密。 |
目标库设置
目标库参数设置与源库类似,接入类型根据实际的情况选择,此处不再赘述。
步骤三:设置同步选项和同步对象
在设置同步选项和同步对象页签,将对数据初始化选项、数据同步选项、同步对象选项进行设置,在设置完成后单击保存并下一步。
说明:
如果用户在同步过程中确定会对某张表使用 rename 操作(例如将 table A rename 为 table B),则同步对象需要选择 table A 所在的整个库(或者整个实例),不能仅选择 table A,否则 rename 操作后,table B 的数据不会同步到目标库。


设置项 | 参数 | 描述 |
数据初始化选项 | 初始化类型 | 全量数据初始化:同步任务执行时会先将源实例中数据初始化到目标实例中。 |
| 已存在同名表 | 前置校验并报错:存在同名表则报错,流程不再继续。 忽略并继续执行:全量数据和增量数据直接追加到目标实例的表中。 |
数据同步选项 | 主键冲突处理 | 冲突覆盖:在同步时发现表主键冲突,用源库主键记录覆盖目标库主键记录。 |
| 同步操作类型 | 支持操作:Insert、Update、Delete、DDL。当前不支持 “DDL 自定义”。 |
同步对象选项 | 同步对象 | 整个实例:同步整个实例。 指定对象:同步指定对象,支持基础库表。 |
高级选项 | 限制传输速率 | |
步骤四:设置一致性校验
数据一致性校验,即 DTS 对数据同步的源库和目标库的表数据进行对比,并给出对比结果和不一致详情,辅助用户快速对同步结果进行验证。
在设置一致性校验页面,勾选开启数据一致性校验,配置参数后,单击下一步。

配置项 | 参数 | 描述 |
校验选项 | 校验内容 | 数据库信息:针对源和目标库中的索引、库表信息和片键进行校验。源库和目标库都为分片集群时,支持选择片键进行校验。 全量校验:针对目标端追平源端数据前的全部数据进行比较。 持续增量校验:针对持续增量校验任务发起后产生的增量数据进行比较。 |
| 数据库信息 | 支持校验索引、片键和库表信息。源库和目标库都为分片集群时,支持选择片键进行校验。 |
| 数据校验 | 内容校验:对所选检验对象进行内容校验。 行数校验:对所选校验对象进行行数对比。 |
| 校验基准 | 源端:使用源端的数据作为校验基准。 |
校验参数配置 | 线程数选择 | 设置范围为1~8,请根据实际情况选择,提高线程数可加快一致性校验速度,但也会增加源和目标库的负载。 |
校验对象选项 | 校验对象 | 全部同步对象:校验范围为同步任务勾选的全部对象。 |
步骤六:校验和启动任务
1. 在校验任务页面,完成校验并全部校验项通过后,单击立即启动。
2. 如果校验任务不通过,可以参考 校验不通过处理方法 修复问题后重新发起校验任务。
失败:表示校验项检查未通过,任务阻断,需要修复问题后重新执行校验任务。
警告:表示检验项检查不完全符合要求,可以继续任务,但对业务有一定的影响,用户需要根据提示自行评估是忽略警告项还是修复问题再继续。

3. 在弹出的对话框中,单击确定。
4. 返回数据同步任务列表,任务开始进入运行中状态。
说明:
选择操作列的更多 > 结束可关闭同步任务,请您确保数据同步完成后再关闭任务。
5. (可选)您可以单击任务名,进入任务详情页,查看任务初始化状态和监控数据。