本场景介绍如何在数据库传输服务 DTS 控制台创建公网自建 MongoDB 迁移至公网自建 MongoDB 任务。
已在公网环境中搭建文档数据库 MongoDB 版实例和账号。
当数据库实例的接入方式选择的是公网自建时,且数据库实例开启了访问限制,那么在创建数据库传输任务前,您需要将 DTS 服务器 IP 地址添加至数据库实例的白名单或安全组中。不同地域下的 DTS 服务器 IP 地址不同,具体如下所示:
华南 1(广州)、华北 2(上海)和华北 2(北京)的 DTS 服务器 IP 地址是 221.194.189.0/27,157.148.90.32/27,180.184.132.64/27,61.129.54.64/27,220.196.172.32/27,117.135.143.32/27,220.196.168.32/27,116.132.250.32/27,111.45.13.32/27,125.88.248.32/27,180.153.35.32/27,220.181.65.32/27,220.181.65.64/27
。
亚太东南(柔佛)的 DTS 服务器 IP 地址是 101.47.0.32/27,220.181.65.32/27,220.181.65.64/27
。
关于 DTS 服务器 IP 地址段的详细信息,请参见添加 DTS 服务器的 IP 地址段。
创建数据迁移任务之前,请确认源库和目标库的网络连通性与服务可用性。
您还可以根据预检查项中的说明,来检查源库和目标库中各迁移对象做相应准备。更多详情,请参见预检查项(MongoDB)。
在迁移过程中,请勿对源库进行主备切换,否则将导致迁移任务失败。
若未选中增量迁移,数据迁移期间请勿在源实例中写入新的数据,以确保数据一致性。
为实时保障数据的一致性,建议选择结构迁移、全量数据迁移和增量数据迁移。
若暂时不需要启动迁移任务,您可以在完成迁移对象配置后,单击页面右下角的保存。保存后会跳转回迁移任务列表页,此时任务状态为待启动,您可以在合适的时候再配置迁移任务。配置方法,请参见配置迁移任务。
在预检查时,如果选择忽略告警并启动迁移任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(MongoDB)。
由于全量数据迁移会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量迁移完成后目标库的集合存储空间会比源库的集合存储空间大。
在数据迁移的过程中,若遇到目标库中已存在同主键值或唯一键的情况,DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。当数据进行冲突覆盖时,如果目标库中存在同名表,可能会导致数据不一致等问题,具体如下所示。建议您通过表名映射的方式、删除或重命名目标库中同名表的方式避免数据不一致等问题降低业务风险。
表结构一致时:迁移的数据将覆盖目标表中与源库主键或唯一键的值相同的记录。
表结构不一致时:可能会导致无法初始化数据,只能迁移部分列数据。
当您想通过专线实现数据迁移时,您可以提交工单联系技术人员。
类型 | 说明 |
---|---|
源库限制 |
|
其他限制 |
|
源库需具备以下操作限制:
在结构迁移和全量迁移阶段,请勿执行库或集合的结构变更,否则数据迁移任务会失败。
当只执行全量数据迁移时,请勿向源库中写入新的数据,否则将导致源和目标数据不一致。
用于数据迁移的账号需具备以下权限:
说明
在需要进行增量迁移分片集数据时,源库账号需要 Change Stream 权限。
登录 DTS 控制台。
在顶部菜单栏,选择项目和地域。
在左侧导航栏,单击数据迁移。
在迁移任务列表页面,单击创建任务。
在创建迁移任务页面的配置源库及目标库配置向导页面,配置以下参数信息。
类别 | 参数 | 说明 |
---|---|---|
无 | 任务名称 | (可选)自定义迁移任务名称。命名规则如下:
说明 如果不设置,系统会按照命名规则为任务创建一个随机名称,该随机名称以 |
链路规格 | 按需选择迁移任务的链路规格,当前支持 Compact 和 Standard。 说明 成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格。 | |
源库配置 | 选择已有数据源 | 您可以按需选择是否使用已录入的实例:
|
实例类型 | 选择 MongoDB。 | |
接入方式 | 选择公网自建 MongoDB。 说明 在迁移公网自建 MongoDB 实例时,您需要提前在源端的白名单或安全组策略中,添加 DTS IP 段的访问权限。单击查看 DTS IP 段查看和复制 IP 段。 | |
地域 | 选择目标实例所属地域。 | |
架构 | 按需选择目标 MongoDB 实例的架构类型,当前支持选择副本集、分片集群和单节点。 | |
增量数据获取方式 | 在架构选择分片集群时支持设置增量数据获取方式。按需选择增量数据的获取方式,支持以下选择:
| |
在增量数据获取方式设置为 ChangeStream 或 None 时,需配置参数地址、账号校验数据库、数据库账号和数据库密码。 | ||
地址 | 输入目标自建实例的主机地址和端口或域名和端口,格式为 IP:Port 或 DomainName:Port 。在存在多个地址时,需使用英文逗号(,)隔开,最多支持配置 5 个地址。 | |
账号校验数据库 | 输入账号所属数据库的库名。 | |
数据库账号 | 输入目标实例的数据库账号。 | |
数据库密码 | 输入目标实例数据库账号对应的密码。 | |
在增量数据获取方式设置为 Oplog 时,需配置 Mongos 信息和分片信息参数。 | ||
Mongos 信息 |
| |
分片信息 |
| |
测试链接 | 单击测试链接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:
| |
目标库配置 | 选择已有数据源 | 您可以按需选择是否使用已录入的实例:
|
实例类型 | 选择 MongoDB。 | |
接入方式 | 选择公网自建 MongoDB。 说明 在迁移公网自建 MongoDB 实例时,您需要提前在源端的白名单或安全组策略中,添加 DTS IP 段的访问权限。单击查看 DTS IP 段查看和复制 IP 段。 | |
架构 | 按需选择目标 MongoDB 实例的架构类型,当前支持选择副本集、分片集群和单节点。 | |
地域 | 选择目标实例所属地域。 | |
地址 | 输入目标自建实例的主机地址和端口或域名和端口,格式为 IP:Port 或 DomainName:Port 。在存在多个地址时,需使用英文逗号(,)隔开,最多支持配置 5 个地址。 | |
账号校验数据库 | 输入账号所属数据库的库名。 | |
数据库账号 | 输入目标实例的数据库账号。 | |
数据库密码 | 输入目标实例数据库账号对应的密码。 | |
测试链接 | 单击测试链接,验证是否成功连接实例。
| |
无 | 项目 | (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目。 |
标签 | (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:
说明
| |
计费方式 | 当前仅支持按量计费,您无需选择。 说明 关于计费的详细信息,请参见计费说明。 |
单击下一步:配置迁移对象。
在配置迁移对象配置向导页面,配置相关参数信息,如下表所示。
说明
若暂时不需要启动迁移任务,您可以在完成迁移对象配置后,单击页面右下角的保存。
保存后会跳转回迁移任务列表页,此时任务状态为待启动,您可以在合适的时候再配置迁移任务。配置方法,请参见配置迁移任务。
参数 | 说明 |
---|---|
迁移类型 | 根据业务需要选择迁移类型,其中:
说明 若未选中增量迁移,数据迁移期间请勿在源实例中写入新的数据,以确保数据一致性。 |
迁移对象 | 在迁移对象区域中勾选需要迁移的对象,您可以在已选择对象区域中确认需要迁移的对象。同时,在该区域的搜索框内支持模糊搜索,批量删除不需要的目标。 |
错误重试时间 | 在迁移任务中,当源库和目标库断连后导致迁移任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 600 秒。 |
全量迁移速率 | 按需设置全量迁移速率。防止在迁移速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整以下参数:
说明 在迁移类型选择全量迁移时,支持配置该参数。 |
单击预检查。
在预检查配置向导页面,根据检查结果执行以下操作:
单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试。
单击操作列的忽略,忽略本次告警继续启动迁移任务。同时,也可以单击忽略全部,一键忽略全部告警信息。
说明
选择忽略告警并启动迁移任务,可能导致数据不一致,带来业务风险。
关于预检查的具体说明,请参见预检查项。
在预检查页面右下角,单击确认订单。
在确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务。
成功创建数据迁移任务后,您可以返回数据库传输服务 DTS 控制台,在数据迁移任务列表查看数据迁移任务的信息。更多信息,请参见查看迁移任务。
API | 描述 |
---|---|
CreateTransmissionTask | 调用 CreateTransmissionTask 接口创建数据库传输服务任务。 |
ModifyTransmissionTask | 调用 ModifyTransmissionTask 接口修改传输任务。 |