有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

操作场景

腾讯云 数据传输服务(Data Transmission Service,DTS)是提供数据迁移、数据同步、数据订阅于一体的数据库数据传输服务,可帮助用户在业务不停服的前提下轻松完成数据库迁移上云。DTS for MongoDB 可一次性将数据迁移到云上数据库,支持全量 + 增量数据的迁移,即迁移前源库的历史数据,和迁移过程中源库新增的写入数据一并进行迁移。

适用场景

适合通过 DTS 进行数据迁移上云的源端与目标端数据库形态如下表所示。
源端
目标端
说明
自建数据库 MongoDB(IDC 自建、腾讯云 CVM 上自建)
腾讯云 MongoDB
同时,支持从腾讯云 MongoDB 迁移至自建数据库。
第三方云厂商 MongoDB
腾讯云 MongoDB
-
腾讯云 MongoDB
腾讯云 MongoDB
腾讯云 MongoDB 与 MongoDB 实例之间迁移场景包括:
腾讯云同地域或不同地域间的迁移。
腾讯云同账号或跨账号之间的迁移。
腾讯云 MongoDB 实例不同版本之间的迁移。
腾讯云 MongoDB 副本集群与分片集群之间迁移。

使用限制

迁移过程中请勿进行如下操作,否则会导致迁移任务失败。
请勿修改、删除源数据库和目标数据库中用户信息(包括用户名、密码和权限)和端口号。
请勿在源库上执行清除 oplog 的操作。
在数据迁移阶段,请勿删除目的端数据库 TencetDTSData。
在数据迁移阶段,请谨慎操作目的端数据,避免最终数据不一致。
如果仅执行全量数据迁移,请勿在迁移过程中向源实例中写入新的数据,否则会导致源和目标数据不一致。针对有数据写入的场景,为实时保持数据一致性,建议选择全量+增量数据迁移。
源端为腾讯云 MongoDB3.2版本的分片集群,迁移时默认将所有分片片键作为哈希片键处理;如果希望在目标端使用范围片键,请在数据迁移前,预先在目标端创建范围片键。
分片集群迁移前,建议提前清理源端集群孤儿文档(Orphaned?Document)。否则,可能导致迁移后数据校验不一致的问题。如何清理孤儿文档,请参见MongoDB 官方文档 cleanupOrphaned
分片迁移中,请勿在源端对迁移的库表启用分片,避免源端和目标端数据分布不一致。若迁移中,源端对迁移的库表存在启用分片的操作,请在目标端检查分片状态,如果目标端没有启用分片,请手动执行下启用分片的操作。启用分片的具体操作,请参见 MongoDB 官方文档 Shard a Collection
DTS 迁移源端副本集与分片集群支持 DDL 操作。
操作类型
支持的 SQL 操作
DML
INSERT、UPDATE、DELETE
DDL
INDEX:createIndexes、createIndex、dropIndex、dropIndexes
COLLECTION:createCollection、drop、collMod、renameCollection
DATABASE:dropDatabase、copyDatabase

使用须知

DTS 在执行全量数据迁移时,会占用一定源端实例资源,可能会导致源实例负载上升,增加数据库自身压力。如果您的数据库配置过低,建议您在业务低峰期进行迁移。
外网实例迁移时,请确保源实例服务在外网环境下可访问。
由于单节点无 Oplog,所以自建实例是单节点时,不支持增量迁移。

迁移准备

DTS 迁移之前,请对源端与目标端的环境进行如下检查。
类型
环境要求
源数据库要求
源库所在的服务器需具备足够的出口带宽,否则将影响迁移速率。
源库提供的用户需要有读取数据库的权限。
源库不能有和 TencetDTSData 同名的库。
源库若是集群模式,需在增量同步之前关闭 balancer。
进行全量 + 增量迁移时,需要能够从源端获取到 Oplog。
目标数据库要求
目标库的空间大小须是源库待迁移库表空间的1.3倍以上。
目标库提供的用户需要 root 权限。
目标库不能有和 TencetDTSData 同名的库。
目标库不能有和源库同名的库表。
源库为分片时,需要正确填写对应 mongos、config server、mongod 节点信息。
目标库不能有负载业务进行,否则会报警告。
源库和目标库的片键信息需要一致,否则会报警告。
迁移时,腾讯云 MongoDB 不支持免密访问。
请检查源数据库和目标数据库版本要求,请参见 数据迁移支持的数据库 进行核对。
确认源端网络环境接入类型是否互通。具体信息,请参见 准备工作
获取源端数据库与目标端数据库访问账号和密码。
建议在源实例创建一个只读账号供迁移使用,创建方式,如下所示:
use admin
db.createUser({
user: "username",
pwd: "password",
roles:
[
{role: "readAnyDatabase", db: "admin"},
{role: "read", db: "local"}
]
})

操作步骤

1. 登录 DTS 控制台,在左侧导航选择数据迁移页,单击新建迁移任务,进入数据传输服务页面。
2. 数据传输服务页面,参见下表,选择迁移的源实例类型和所属地域,目标实例类型和所属地域,规格等,然后单击立即购买
?
?
界面参数
参数含义
参数配置
服务类型
选择腾讯云数据传输服务所需提供的服务类型。数据传输服务包括数据迁移、数据同步、数据订阅服务。
选择数据迁移
创建模式
选择创建任务的模式。
新建任务:新建一个全新的任务。
创建类似任务:基于已存在的一个迁移任务,创建其类似任务,方便快速完成任务创建。
依实际情况选择即可。
任务 ID
创建模式创建类似任务时,显示该参数。配置类似任务的 ID信息。
创建类似任务,在任务 ID 的输入框,输入当前已有的类似任务 ID 编号。
计费模式
选择任务的计费模式。按量计费详情,请参见 计费概述
-
源实例类型
选择源数据库类型。
选择 MongoDB,购买后不支持修改。
源实例地域
选择源数据库所属地域。
如果源库为自建数据库,选择离自建数据库最近的一个地域即可。
目标实例类型
请根据您的目标数据库类型选择。
选择 MongoDB,购买后不支持修改。
目标实例地域
选择目标数据库所属地域。
-
规格
选择迁移链路的规格。具体信息,请参见 数据迁移规格说明
固定为 Medium
标签
给迁移任务设置具体的标签,方便使用标签管理任务。
单击添加,在标签键标签值下拉列表分别选择具体的标签键值对。
任务名
设置任务名称。
选择创建后命名,默认任务名称与任务 ID 一致。在迁移任务创建完成之后,可重新设置任务名称。
选择立即命名,在下面输入框,输入任务名称。
不支持除 - 之外的任意特殊符号。
支持小写字母、大写字母、汉字及数字。
长度限制请以控制台为准。
建议设置便于识别业务的名称。
协议条款
了解数据迁移的服务条款。
勾选我已阅读并同意《云数据库服务条款》
3. 自动返回至迁移任务列表,找到新建的迁移任务,观察任务状态 / 进度,等待迁移任务创建完成。单击其操作列的配置,进入修改迁移任务的配置向导。在设置源和目标数据库页签,进行源库设置和目标库设置。
注意:
建议在源实例创建一个只读账号用于迁移使用,否则迁移前校验步骤会提示告警,请依据实际情况选择忽略告警提醒。
?
?
?
配置类别
配置参数
参数含义
配置方法
任务设置
任务名称
设置数据迁移任务的名称。
新建数据迁移任务时已设置任务名称,此配置项便默认为已创建的名称。
新建数据任务时,未配置任务名称,请在输入框设置便于识别的任务名称。
不支持除 - 之外的任意特殊符号。
支持小写字母、大写字母、汉字及数字。
长度限制请以控制台为准。
运行模式
配置数据迁移任务的运行时刻。
立即执行:完成任务校验通过后,立即启动任务。
定时执行:可设置具体的执行时间,迁移将在设定的执行时间开始运行。
配置迁移任务之后,支持在执行时间之前修改定时执行时间。
迁移任务设置定时执行时间之后,而又需在定时时间之前立即运行任务,可在迁移任务列表操作列,单击立即启动
按需选择。如果选择定时执行,请在下方执行时间的输入框,选择任务启动的具体时刻。
配置迁移任务之后,支持在执行时间之前修改定时执行时间。
迁移任务设置定时执行时间之后,而又需在定时时间之前立即运行任务,可在迁移任务列表操作列,单击立即启动
源库设置
源库类型
购买时选择的源库类型。
确认源库类型正确即可,无法修改。如需要更改,只能终止当前任务,重新创建迁移任务。
所属地域
购买时选择的源库所在的地域。
确认源库地域信息正确即可,无法修改。
接入类型
选择源库接入迁移任务的网络类型。
公网:源数据库可以通过公网 IP 访问。
云主机自建:源数据库部署在 腾讯云服务器 CVM 上。
专线接入:源数据库可以通过 专线接入 方式与腾讯云私有网络连通。
VPN 接入:源数据库可以通过 VPN 连接 方式与腾讯云私有网络连通。
云数据库:源数据库属于腾讯云数据库实例。
云联网:源数据库可以通过 云联网 与腾讯云私有网络连通。
私有网络 VPC:源数据库和目标数据库可通过腾讯云 私有网络 连通。
请根据您的实际网络环境选择。接入网络类型不同,其相应配置的网络参数也有差异。
源库所在网络环境
接入类型云联网时,显示该参数。配置源库是否为腾讯云数据库。
根据源库的实际情况选择即可。
架构
接入类型公网云主机自建专线接入VPN 接入、云联网时,显示该参数。选择源库的架构形态。
副本集:指源库为副本集,每一个副本集由一个 Primary 节点和一个或多个 Secondary 节点组成的架构。
集群迁移:指分片集群,每一个分片集群由 mongos 节点、config server、shard 节点等组件组成的架构。
单节点:指源库集群为单个节点来进行读写操作。
根据源库的集群架构来选择。选择架构类型后,并且已进行连通性测试,无法再修改为其他架构类型。
私有网络专线网关
接入类型专线接入时,显示该参数。设置私有网络的专线网关 ID。
在下拉列表选择私有网络的专线网关 ID。专线接入时只支持私有网络专线网关,请确认网关关联网络类型。
私有网络
接入类型专线接入VPN 接入时,显示该参数。配置源库通过专线与 VPN 方式接入的私有网络信息。
在下拉列表,分别选择私有网络 ID 与子网。
VPN 类型
接入类型VPN 接入时,显示该参数。说明 VPN 的类型。
固定为:云 VPN 服务
主机地址
接入类型公网主线接入VPN 接入云联网时,显示该参数。设置源库主机的 IP 地址或者域名。
请在输入框输入源库的 IP 地址或域名。例如:10.20.3.21。
端口
接入类型公网主线接入VPN 接入云联网时,显示该参数。设置源库的网络端口。
请在输入框输入网络端口号。例如:6379。
云主机实例
接入类型云主机自建时,显示该参数。配置云主机 CVM 主机信息。
在下拉列表选择腾讯云主机 CVM 的实例 ID。
是否需要认证
接入类型公网云主机自建专线接入VPN 接入云联网时,显示该参数。配置是否需要对源库的访问账户进行权限验证。
请根据数据的安全级别要求进行选择。
需要:源库需要进行身份验证,则需同时配置认证库认证机制
不需要:源库无需进行身份验证即可访问。
认证库
是否需要认证需要时,显示该参数。云数据库 MongoDB 固定使用 admin 库作为登录鉴权的认证数据库。
-
认证机制
是否需要认证需要时,显示该参数。配置源库进行身份验证的认证方式。
当前仅支持 SCRAM-SHA-1方式认证。
是否跨账号
接入类型云数据库时,显示该参数。配置腾讯云源数据库实例是否需要跨账号访问。
跨账号:指源库与当前账号是不同的腾讯云账号。
本账号:指源库与当前账号属于同一个腾讯云账号。
数据库实例
接入类型云数据库时,显示该参数。配置腾讯云数据库的实例信息。
在下拉列表,选择腾讯云源数据库实例 ID。
私有网络云联网
接入类型云联网时,显示该参数。配置腾讯云云联网信息。
在下拉列表,选择腾讯云私有网络的云联网 ID。
节点 - mongod
架构选择集群迁移时,显示该参数。配置源 MongoDB 数据库 Mongod 的节点信息。
请在输入框中输入 mongod 节点 IP 地址 和端口,多个节点请换行。例如:10.3.55.77:6379
节点 - mongos
架构选择集群迁移时,显示该参数。配置 Mongos 节点信息。
请在输入框分别输入 mongos 节点 IP 地址和端口。
节点 - Config Server
架构选择集群迁移时,显示该参数。配置 Config Server 节点的 IP 地址和端口。
请在输入框分别输入 Config Server 节点的 IP 和端口。
账号及密码选择
架构选择集群迁移,且是否需要认证为需要时,显示该参数。该参数用于配置源库 Mongod、Mongos、Config Server 节点的账号是否相同。
相同账号及密码:指 Mongod、Mongos、Config Server 节点的账号与密码相同。
不同的账号及密码:指 Mongod、Mongos、Config Server 节点的账号与密码不相同,需要分别配置。请在下方节点 - mongod、节点 - mongos、节点 - Config Server的账号和密码的输入框分别输入对应的账号信息。
账号
是否需要认证要时,显示该参数。配置需认证的账号信息。
输入访问源库的账号信息。
密码
是否需要认证需要时,显示该参数。配置认证账户对应的密码。
输入访问源库账号对应的密码信息,不支持免密访问。
目标库设置
目标库类型
购买时选择的目标库类型。
确认目标库类型正确即可,无法修改。如需要更改,只能终止当前任务,重新创建迁移任务。
所属地域
购买时选择的目标库地域。
确认目标库地域信息正确即可,无法修改。
接入类型
配置目标库的网络接入类型。
固定为云数据库。指目标数据库属于腾讯云数据库实例。
数据库实例
选择目标库的实例 ID。
选择目标数据库实例 ID。
账号
目标库的数据库账号信息。
请在输入框输入账号信息。
密码
目标库的数据库账号的密码。
请在输入框输入账号对应的密码信息。
4. 配置完源库与目标库,请分别单击测试连通性,对源库与目标库分别进行网络连通性测试。如果连通性测试未通过,请参考 连通性测试不通过 进行处理。
?
?
5. 连通性测试通过,单击保存,在设置迁移选项及选择迁移对象页面,设置迁移选项和迁移对象,单击保存
?
?
?
配置参数
参数含义
配置方法
迁移类型
请根据您的场景选择。
全量迁移:迁移整个数据库,迁移数据仅针对任务发起时,源数据库已有的内容,不包括任务发起后源库实时新增的数据。
全量 + 增量迁移:迁移数据包括任务发起时源库的已有内容,也包括任务发起后源库实时新增的数据。
请依据迁移数据的实际情况选择是否需要进行增量数据的迁移。
数据一致性检测
配置数据全量迁移完成之后是否进行数据一致性校验。
全量检测迁移对象:迁移任务将对迁移后源库和目标库的数据进行详细的对比。迁移任务将在同步增量阶段,目标与源库数据差距为0MB,目标库与源库时间延迟也为0秒时,自动触发一次一致性校验。
不检测:即不进行数据校验。创建任务之后,用户也可在任务进行到“同步增量”阶段,手动进行触发一致性校验。具体信息,请参见 创建数据一致性校验任务。
迁移类型配置为全量迁移时,数据一致性校验固定为不检测
迁移类型配置为全量 + 增量迁移时,支持选择全量检测迁移对象不检测
全量检测迁移对象:迁移任务将对迁移后源库和目标库的数据进行详细的对比。迁移任务将在同步增量阶段,目标与源库数据差距为0MB,目标库与源库时间延迟也为0秒时,自动触发一次一致性校验。
不检测:即不进行数据校验。创建任务之后,用户也可在任务进行到“同步增量”阶段,手动进行触发一致性校验。具体信息,请参见 创建数据一致性校验任务
数据校验
固定为内容校验,即对数据库的数据进行校验。
-
迁移对象
配置迁移任务迁移具体范围。
整个实例:迁移整个实例,但不包括系统库,如 postgres 中的系统对象,但是会迁移 role 与用户元数据定义。
指定对象:迁移指定对象。
迁移对象指定对象,请在下面源库对象中选择迁移的具体数据库表。在已选对象,确认需迁移的库表。
6. 校验任务页签,等待迁移前校验工作执行完成,单击启动任务。 如果校验任务不通过,可以参考 校验不通过处理方法 修复问题后重新发起校验任务。
校验结果为失败:表示校验项检查未通过,任务阻断。单击查看详情,了解失败原因,修复问题之后,再次进行校验。
校验结果为警告:表示检验项检查不完全符合要求,可以继续任务,但对业务有一定的影响。单击查看详情,了解告警信息,评估是否忽略警告项。
?
?
7. 返回迁移任务列表,等待任务执行完成。
迁移类型选择全量迁移:任务完成后会自动结束,不需要手动结束。
迁移类型选择全量 + 增量迁移:全量迁移完成后会自动进入增量数据同步阶段,增量同步数据持续一直进行,不会自动结束。如需结束任务,请观察迁移阶段为增量同步,目标与源库时间延迟为0秒时,无延迟状态,将源库停写几分钟,在操作列单击完成,即可结束迁移任务。
?
?

更多操作

(可选)如果您需要进行查看任务、删除任务等操作,请单击对应的任务,在操作列进行操作,详情可参考 任务管理
当迁移任务状态变为任务成功时,即可对业务进行正式割接,更多详情可参考 割接说明


http://www.vxiaotou.com