全部产品
数据传输服务DTS

从本地MongoDB迁移到MongoDB实例

更新时间:2017-06-07 13:26:11   分享:   

使用数据传输DTS可以将本地的MongoDB实例的数据迁移至RDS For MongoDB。Mongodb迁移支持增量数据同步功能,可以实现在本地应用不停服的情况下,平滑完成MongoDB数据库的迁移工作。

本小节简单介绍使用DTS进行MongoDB->RDS For MongoDB数据迁移的任务配置流程。

迁移类型简介

对于MongoDB->云数据库 MongoDB数据迁移,DTS支持全量数据迁移及增量数据迁移,这个迁移类型的功能及限制如下。

  • 全量数据迁移

    数据传输DTS将源数据库迁移对象的存量数据全部迁移到目标实例。

  • 增量数据迁移

    增量数据迁移将迁移过程中,本地MongoDB实例的增量更新数据同步到云数据库MongoDB,最终本地MongoDB同云数据库MongoDB进入动态数据同步的过程。使用增量数据迁移,可以实现在本地MongoDB正常提供服务的时候,平滑完成MongoDB->RDS For MongoDB的数据迁移。

迁移功能

  • MongoDB版本支持支持MongoDB 3.0,3.2 两个版本

  • MongoDB全量数据迁移支持

    • 支持database 迁移
    • 支持collection 迁移
    • 支持index 迁移
  • MongoDB增量数据迁移支持

    • 支持document 新增、删除、更新 操作的同步
    • 支持collection新建、删除 操作的同步
    • 支持database 新建、删除 操作的同步
    • 支持index 新建、删除 操作的同步

迁移权限要求

当使用DTS进行MongoDB-> 云数据库MongoDB迁移时,不同迁移类型,对源跟目标MySQL实例的迁移帐号权限要求如下:

迁移类型 全量数据迁移 增量数据迁移
本地MongoDB read 待迁移库的read
admin的read权限
local的read权限
目的MongoDB实例 readWrite readWrite

迁移任务配置

下面详细介绍使用DTS将本地的MongoDB迁移到云数据库MongoDB的任务配置流程。

迁移帐号创建

迁移任务配置,需要提供本地自建MongoDB实例及目标MongoDB云数据库的迁移账号,迁移账号所需权限详见上面的 迁移权限要求 一节。

如果您的本地MongoDB或MongoDB云数据库的迁移账号尚未创建,那么可以参考如下流程创建迁移账号:

  1. db.createUser({user:"username",pwd:"password",roles:[{role:"rolename1",db:"database_name1"},{role:"rolename2",db:"database_name2"}]})

参数说明:

  • username: 要创建的账号
  • password: 上面账号对应的密码
  • rolename1/rolename2:待授权给username的角色名,例如上面的read, readWrite
  • database_name1/database_name2: 只将database_name1/database_name2上的角色role1/role2授权给username

    关于MongoDB的角色授权也可以参考 MongoDB Create User说明

迁移任务配置

当上面的所有前置条件都配置完成后,就可以开始正式的数据迁移了。下面详细介绍迁移任务配置流程。

  1. 进入数据传输DTS控制台,点击右上角的创建迁移任务,开始迁移任务配置。
  2. 本地MongoDB跟目标MongoDB实例的连接信息配置。

    这个步骤主要配置 迁移任务名称,本地MongoDB连接信息及目标MongoDB云数据库连接信息。其中:

    • 任务名称

      DTS为每个任务自动生成一个任务名称,任务名称没有唯一性要求。您可以根据需要修改任务名称,建议为任务配置具有业务意义的名称,便于后续的任务识别。

    • 源实例信息

      • 实例类型:选择 有公网IP的自建数据库
      • 数据库类型: 选择 MongoDB
      • 主机名或IP地址: 配置MongoDB访问地址,这个地址必须为公网访问方式
      • 端口:本地MongoDB实例的监听端口
      • 数据库名称:连接MongoDB实例的默认数据库名
      • 数据库账号:本地MongoDB实例的连接账号
      • 数据库密码:本地MongoDB实例连接账号对应的密码
    • 目标实例信息

      • 实例类型:选择 MongoDB实例
      • MongoDB实例ID: 配置迁移的目标MongoDB实例的实例ID。 DTS支持经典网络的MongoDB实例。如果您的MongoDB实例为VPC网络的实例,那么需要切换到经典网络模式后,再使用DTS进行迁移
      • 数据库名称:连接MongoDB的默认数据库名
      • 数据库账号:连接MongoDB实例的连接账号
      • 数据库密码:上面数据库账号对应的密码

      当配置完连接信息后,点击右下角 授权白名单并进入下一步 进行白名单授权。这个步骤DTS会将DTS服务器的IP地址添加到目标MongoDB云数据库的白名单中,避免因为MongoDB实例设置了白名单,DTS服务器连接不上MongoDB实例导致迁移失败。

      MongoDB迁移_步骤1

  3. 选择迁移对象及迁移类型。

    • 迁移类型

      对于MongoDB,支持 全量数据迁移、增量数据迁移。

      如果只需要进行全量迁移,那么迁移类型选择:全量数据迁移。

      如果需要进行不停机迁移,那么迁移类型选择:全量数据迁移+增量数据迁移。

    • 迁移对象

      这个步骤需要选择要迁移的对象。迁移对象选择的粒度可以为:库、collection/function 两个粒度。默认情况下,对象迁移到MongoDB实例后,对象名跟本地MongoDB实例一致。如果您迁移的对象在源实例跟目标实例上名称不同,那么需要使用DTS提供的对象名映射功能,详细使用方式可以参考库表列映射

      MongoDB迁移_步骤2

  4. 预检查。

    在迁移任务正式启动之前,会先进行前置预检查,只有预检查通过后,才能成功启动迁移。预检查的内容及修复方式可以参考本文末尾的 预检查简介 一节。

    如果预检查失败,那么可以点击具体检查项后的按钮,查看具体的失败详情,并根据失败原因修复后,重新进行预检查。

    MongoDB迁移_步骤3

  5. 启动迁移任务。

    当预检查通过后,可以启动迁移任务,任务启动成功后,可以在任务列表中查看迁移的具体状态及迁移进度。

    至此,完成本地MongoDB数据库到MongoDB实例的数据迁移任务配置。

预检查

DTS在启动迁移之前,会进行前置预检查,本小节简单介绍MongoDB->RDS For MongoDB的预检查内容:

检查项 检查内容 备注
源库连接性检查 检查DTS服务器跟本地MongoDB实例的连通性 (1) 填写信息是否有误?如果填写信息有误,请修改后重新预检查
(2) 检查端口是否配置从其他服务器连接访问
目标库连接性检查 检查DTS服务器跟目标MongoDB实例的连通性 检查填写信息是否有误,如果有误请先修改后重新预检查
源库版本检查 检查本地MongoDB的版本,DTS是否支持 请先升级版本到3.2后,重新预检查
源库权限检查 检查本地MongoDB提供的迁移账号的权限是否满足需求 如果检查失败,请参照 迁移账号创建 一节授权后,重新预检查
目的库权限检查 检查目的MongoDB数据库提供的迁移账号的权限是否满足需求 如果检查失败,请参照 迁移账号创建 一节授权后,重新预检查
增量拓扑冲突检查 检查MongoDB实例上是否有其他增量迁移任务正在运行 如果检查失败,那么需要结束或删除其他的增量迁移任务后,重新预检查
本文导读目录
本文导读目录
以上内容是否对您有帮助?