You need to enable JavaScript to run this app.
导航

同步至火山引擎专有网络 MongoDB

最近更新时间2024.04.12 10:33:02

首次发布时间2024.03.20 10:45:45

本文介绍如何在数据库传输服务 DTS 控制台创建火山引擎版 MongoDB 同步至火山引擎专有网络 MongoDB 任务。

前提条件

  • 已创建文档数据库 MongoDB 版实例和账号。详细操作,请参见创建实例创建账号

  • 按需设置目标端信息,具体如下所示:

    • 在使用 VPN 实现数据同步时,自建数据库所属的本地网络已通过 VPN 网关接入火山引擎。详细操作,请参见搭建云上VPC与云下多数据中心网络互通

    • 在需要使用专线实现数据同步时,您需要搭建云上单私有网络和云下单数据中心网络连通的专线连接。详细操作,请参见配置专线连接

  • 在源端部署在火山引擎的 ECS 中通过私网连接,且开启了访问限制时,您需要在 ECS 的安全组规则中添加 DTS 服务器的 IP 地址。

  • 已确认源端和目标端的网络连通性与服务可用性。

  • (可选)根据预检查项中的说明,检查源端和目标端中各同步对象。更多详情,请参见预检查项(MongoDB)

注意事项

  • 若未选中增量同步,数据同步期间请勿在源实例中写入新的数据,以确保数据一致性。

  • 为实时保障数据的一致性,建议选择结构初始化、全量初始化和增量同步。

  • 由于全量初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。

  • 在预检查时,如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。

  • 在创建火山引擎专有网络数据同步任务的过程中,系统会默认在您选择的私有网络内创建数张网卡,网卡会默认挂载到您选择的子网上。网卡的名称格式为 dts_shuttle_********

  • 在数据同步的过程中,若遇到目标库中已存在同主键值或唯一键的情况,DTS 不会保留目标端中冲突的数据,即源端的数据将会覆盖掉目标端的数据。当数据进行冲突覆盖时,如果目标库中存在同名表,可能会导致数据不一致等问题,具体如下所示。建议您通过表名映射的方式、删除或重命名目标库中同名表的方式避免数据不一致等问题降低业务风险。

    • 表结构一致时:同步的数据将覆盖目标表中与源库主键或唯一键的值相同的记录。

    • 表结构不一致时:可能会导致无法初始化数据,只能同步部分列数据。

限制条件

应用限制

类型说明

源库限制

  • 带宽要求,源库所属的服务器需具备足够出口带宽,否则将影响数据同步的速率。

  • 待同步对象的集合需具备主键或唯一约束,且字段具有唯一性,否则可能会导致目标库出现重复数据。

  • 当同步的对象是集合级别,且需进行编辑例如集合的名称映射时,则单次同步任务最多支持同步 1000 张集合。当超出该限制时,任务提交后会显示请求报错,此时建议您拆分待同步的集合,分批配置任务。

  • 当您需要进行增量同步时,您需要完成以下配置:

    • 开启 Oplog 日志,否则预检查阶段将提示报错,且无法启动同步任务。

    • 在全量初始化期间,Oplog 日志建议至少保留 7 天及以上,如需调整 Oplog 大小,请参见 Change the Size of the Oplog。您也可以在全量初始化完成后,再清理数据库传输服务 DTS 源库在任务运行后产生的 oplog 日志。

其他限制

  • 建议源库和目标库的 MongoDB 的版本保持一致,或者从低版本同步至高版本以保障兼容性。当高版本同步至低版本时,可能存在数据库兼容性或数据丢失的问题。

  • 不支持同步 admin 和 local 库中的数据。

  • 不保留事务信息,即源库中的事务同步到目标库时会转变为单条记录。

  • 执行数据同步前,您需要评估源库和目标库的性能,建议在业务低峰期执行数据同步。否则 DTS 在全量初始化时会占用源库和目标库一定的读写资源,可能导致数据库的负载上升。

  • 目标 MongoDB 数据库的存储空间需大于源 MongoDB 数据库占用的存储空间。

  • DTS 会通过 ROUND(COLUMN,PRECISION) 读取 FLOAT 列和 DOUBLE 列的同步精度,FLOAT 的默认同步精度为 38 位,DOUBLE 的默认同步精度为 308 位。当不符合业务预期时,请提交工单

操作限制

源库需具备以下操作限制:

  • 在结构初始化和全量初始化阶段,请勿执行库或集合的结构变更,否则数据同步任务会失败。

  • 当只执行全量初始化时,请勿向源库中写入新的数据,否则将导致源和目标数据不一致。

数据库最小权限策略

用于数据同步的账号需具备以下权限:

  • 源库待同步对象 FIND 权限。

  • 源库 changestream 权限。

  • 目标库 INSERTUPDATEREMOVEDROPDATABASEDROPCOLLECTION 权限。

同步类型说明

同步类型说明
结构初始化将源火山引擎版 MongoDB 中同步对象的结构初始化到目标火山引擎专有网络 MongoDB 中。

全量初始化

将源火山引擎版 MongoDB 同步对象的存量数据全部初始化到目标火山引擎专有网络 MongoDB 中。

说明

支持全量初始化 DATABASE 和 COLLECTION。

增量同步

在全量初始化的基础上,将源火山引擎版 MongoDB 的增量更新同步到目标火山引擎专有网络 MongoDB 中。

说明

不支持增量同步在任务开始运行后新建的数据库。

操作步骤

  1. 登录 DTS 控制台

  2. 在顶部菜单栏,选择项目和地域。

  3. 在左侧导航栏,单击数据同步

  4. 同步任务列表页面,单击创建任务

  5. 创建同步任务页面的配置源库及目标库配置向导页面,配置以下参数信息。

    类别参数说明

    任务名称

    (可选)自定义同步任务名称。命名规则如下:

    • 以字母开头。

    • 长度需在 64 个字符内。

    • 只能包含字母、数字、下划线(_)和中划线(-)。

    链路规格

    按需选择同步任务的链路规格,当前支持 CompactStandard

    说明

    成功创建任务后,不支持修改任务的链路规格。关于链路规格的详细信息,请参见产品规格

    同步拓扑

    根据业务需要选择同步拓扑,当前仅支持单向同步

    说明

    关于同步拓扑的更多信息,请参见数据同步拓扑

    源库配置实例类型选择 MongoDB
    接入方式选择火山引擎版 MongoDB
    架构按需选择目标 MongoDB 实例的架构类型,当前支持选择副本集分片集群
    地域选择目标实例所属地域。

    是否跨火山引擎账号

    按需选择是否跨账号传输数据,取值如下:

    • 本账号:选择本账号时,表示仅在本账号内实现数据传输。

    • 跨账号:选择跨账号时,表示将实现两个账号间的数据传输。

      说明

      • 在进行跨账号传输数据时,您需要通过目标端所在的账号登录数据库传输服务 DTS 控制台。

      • 跨账号进行数据传输前,您需要在源端的主账号内创建 IAM 角色并授权。详细操作,请参见如何授权用户实现跨账号传输数据

    跨账号 ID输入源库所属的火山引擎账号 ID。
    跨账号角色输入已授权 DTS 访问跨账号资源的 IAM 角色。

    MongoDB 实例

    从下拉列表中选择目标 MongoDB 的实例。

    说明

    您可以通过实例 ID 或名称搜索目标实例。

    数据库账号输入目标实例的数据库账号。
    数据库密码输入目标实例数据库账号对应的密码。

    测试链接

    单击测试链接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:

    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。

    • 连接认证失败,无法正常创建连接, 请联系客服:当出现该报错提示时,请提交工单联系技术支持。

    目标库配置实例类型选择 MongoDB
    接入方式选择火山引擎专有网络 MongoDB
    架构按需选择目标 MongoDB 实例的架构类型,当前支持选择副本集分片集群单节点
    地域选择私有网络所属地域。
    地址输入目标自建实例的主机地址和端口,格式为 IP:Port。在存在多个地址时,需使用英文逗号(,)隔开,最多支持配置 5 个地址。
    账号校验数据库输入账号所属数据库的库名。

    私有网络

    从下拉列表中选择目标私有网络,具体如下所示:

    • 专线连接:通过专线 CEN 实现数据连通时,选择 CEN 下所属的任意私有网络。

    • VPN 连接:通过 VPN 实现数据连通时,选择 VPN 网关绑定的私有网络。

    子网

    从下拉列表中选择和私有网络连通的子网。

    说明

    在同步火山引擎专有网络 MongoDB 实例时,您需要提前在源端的白名单或安全组策略中,添加子网 IP 段的访问权限。单击查看子网 IP 段查看和复制 IP 段。

    数据库账号输入目标实例的数据库账号。
    数据库密码输入目标实例数据库账号对应的密码。

    测试链接

    单击测试链接,验证是否成功连接实例。 当测试连接失败时,根据失败提示信息修改相关配置后,再次单击测试连接,验证是否可以成功连接实例。具体提示信息如下:

    • 连接认证失败,请检查网络是否正常:当出现该报错提示时,请确认网络的连通性。

    • 连接认证失败,请检查用户名和密码是否正确:当出现该报错提示时,您需要确认用户名和密码的准确性。

    • 连接认证失败,无法正常创建连接,请联系客服:当出现该报错提示时,请提交工单联系技术人员。

    • 无效的 IP 地址:当出现该报错提示时,请确认 IP 地址的正确性。

    • 专有网络需要子网有 * 个可用 IP,当前私有网络内子网可用 IP 数不足,无法创建任务,请检查私有网络内子网资源:当出现该报错提示时,您需要调整私有网络子网内可用的 IP 数量,以保证目标私有网络内子网内有足够的 IP。

    项目

    (可选)从下拉列表中选择该任务所属项目,默认在 default(默认项目) 下。您也可以单击创建新项目,创建新的项目。详细操作,请参见新建项目

    说明

    • 关于如何授予子用户访问指定项目下资源的权限操作步骤,请参见修改项目权限

    • 成功创建任务后,如果需要修改实例的所属项目,例如将任务从当前项目移入至其他项目,您可以将资源移入指定项目。详细操作,请参见资源移入项目

    • 项目是一个虚拟的概念,包括一组资源、用户和角色。通过项目可以对一组资源进行统一的查看和管理,并且控制项目内用户和角色对这些资源的权限。

    标签

    (可选)单击添加标签,为实例添加标签,标签可帮您实现云资源的分类、云资源的访问控制、账单与成本分摊等。标签由一个键值对(Key-Value)组成,用于标识云资源,可以帮助您从不同维度(例如用途、所有者等)对具有相同特征的云资源进行分类,便于筛选和聚合,从而轻松管理云上资源。关于标签的详细信息,请参见标签概述。标签的键值对规则如下:

      • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。

      • 大小写敏感,且长度在 1~128 个字符内。

      • 使用 UTF-8 编码的 Unicode 格式。

      • 不支持设置以 volc: 开头的任何形式的 Key,例如 Volc:VOLC: 等。

    • (可选)值

      • 支持任何语言、文字、数字、空格或符号(_.:/=+-@)。

      • 大小写敏感,且长度在 0~256 个字符内。

      • 使用 UTF-8 编码的 Unicode 格式。

    说明

    • 单次最多可给任务绑定 20 个标签。单个任务最多可绑定 50 个标签。

    • 同一个资源拥有的标签 Key 不可重复,且一个标签 Key 只有一个值 Value。

    计费方式

    按需选择计费方式,当前支持按量计费包年包月两种计费方式。

    说明

    关于计费的详细信息,请参见计费说明

    购买时长

    按需选择包年包月的购买时长。

    说明

    在计费方式选择包年包月时,支持设置购买时长。

  6. 单击下一步:配置同步对象

  7. 配置同步对象配置向导页面,配置以下参数信息。

    说明

    • 若暂时不需要启动同步任务,您可以在完成同步对象配置后,单击页面右下角的保存

    • 保存后会跳转回同步任务列表页,此时任务状态为待启动,您可以在合适的时候再配置同步任务。配置方法,请参见配置同步任务

    参数说明

    同步类型

    按需选择同步类型,当前支持结构初始化全量初始化增量同步

    说明

    • 默认勾选增量同步

    • 在勾选结构初始化全量初始化时,预检查完成后,数据库传输服务 DTS 会将源实例中待同步对象的数据在目标实例中初始化,作为后续增量同步数据的基础。

    同步起始点

    设置从某个指定位点或时间点拉取 Binlog 日志,取值如下:

    • 系统默认:默认为当前时间点。

    • 指定时间戳:单击输入框,选择日期,单击选择时间设置时间点,然后单击确定

    说明

    • 同步类型同时勾选了全量初始化增量同步时,同步起始点默认为当前时间点且不支持修改。

    • 当选择指定时间戳时,您设置的时间必须要晚于源端 Binlog 的最早时间。当没有对应时间 Binlog 时,则选取最接近 Binlog 的起点。

    同步对象

    同步对象区域中勾选需要同步的对象,您可以在已选择对象区域中确认需要同步的对象。同时,在该区域的搜索框内支持模糊搜索,批量删除不需要的目标。

    错误重试时间在同步任务中,当源库和目标库断连后导致同步任务失败时,会立即在指定时间内多次重试连接源库和目标库。取值范围:600~86400,单位:秒(s)。默认值为 7200 秒。

    全量同步速率

    按需设置全量同步速率。防止在同步速率过高时,影响源库的性能,您可以根据源库和目标库的读写压力情况适当调整以下参数:

    • 每秒同步的行数:按需开启并设置每秒同步的行数。默认值 100,000,取值范围 1~100,000。

    • 每秒同步的数据量:按需开启并设置每秒同步的数据量。默认值 25,000,取值范围 1~25,000,单位 KB。

    说明

    同步类型选择全量初始化时,支持配置该参数。

  8. 单击预检查

  9. 预检查配置向导页面,根据检查结果执行以下操作:

    1. 单击预检查结果操作列的详情,查看详细的告警和失败信息,并根据告警或失败信息修改库表后,单击重试

    2. 单击操作列的忽略,忽略本次告警继续启动同步任务。同时,也可以单击忽略全部,一键忽略全部告警信息。

      说明

      • 选择忽略告警并启动同步任务,可能导致数据不一致,带来业务风险。

      • 关于预检查的具体说明,请参见预检查项

  10. 预检查页面右下角,单击确认订单

  11. 根据创建任务的计费类型,选择配置方式:

    1. 按量付费 在确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务

    2. 包年包月

      1. 确认订单配置向导页面,再次确认配置信息。阅读《数据库产品和服务条款》并勾选我已阅读并同意《数据库产品和服务条款》,然后单击创建并启动任务

      2. 确认订单信息配置向导页面,确认任务的计费信息。

      3. (可选)单击代金券兑换,在代金券兑换对话框,输入代金券兑换码后单击兑换

      4. (可选)在代金券区域,按需勾选可用代金券,单次仅支持选中一张,即可抵扣部分费用。也可不使用代金券。

      5. 单击下一步

      说明

      支付完成配置向导页面,显示支付成功则任务创建成功。

成功创建数据同步任务后,您可以返回 DTS 控制台,在数据同步任务列表查看数据同步任务的信息。