外部实例迁移

网易云的外部MongDB 复制集实例迁移功能支持多线程数据库备份和恢复,支持迁移失败的重试。此外,网易云提供了较为全面的迁移参数检查,提高了迁移数据的成功率。

1. 迁移要求

  • 在执行迁移前,需要用户先在外部待迁移的实例上创建 role 为 backup 和 readAnyDatabase 的账户;
  • 目前仅承诺支持迁移2.6至3.4版本的外部 MongoDB 实例;
  • 对于低于2.6版本的实例,仍可以使用该功能进行自动迁移,若在迁移过程中遇到未知错误,请 提交工单 联系我们;
  • 外部实例迁移功能不迁移特殊的数据库,包括 admin 和 local 数据库;
  • 当前 MongoDB 与外部实例网络连通。

2. 迁移流程

2.1. 创建迁移账号

在执行迁移前,需要用户先在外部待迁移的实例上创建 role 为 backup 和 readAnyDatabase 的账户。操作如下:

use admin
db.createUser( { user: "<账号>", pwd: "<密码>", roles: [ { role: "backup", db: "admin" }, { role: "readAnyDatabase", db: "admin" } ] } );

Attention

该账号拥有较高权限,出于安全考虑,数据迁移完成后,请删除该账号。

2.2. 获取数据库列表

2.2.1. 登录 控制台,定位到目标「MongDB」,点击「数据迁移」按钮:

2.2.2. 填写待迁移的外部数据库信息:

  • 连接地址:输入外部实例地址信息
  • 连接端口:输入外部实例端口信息
  • 认证方式:选择 SCRAM-SHA-1MongoDB-CR
  • 认证数据库:admin
  • 账号:输入角色为backup和readAnyDatabase的账户

填写完成后点击「下一步」。

2.3. 选择待迁移的数据库

支持一次性迁移同一实例内的多个数据库。

勾选待迁移的数据库迁移类型后点击「下一步」。

参数说明:

迁移类型

  • 增量迁移:

增量迁移包括全量迁移和增量复制两个阶段。完成全量迁移后,会将迁移过程发生的数据变更同步到目标实例。

  • 全量迁移(默认):

将源实例迁移对象的结果定义及数据全部迁移到目标实例。

2.3. 预检查结果

参数设置后,将自动进行参数预检查,包括实例连通性、各个参数设置是否正确等。

  • 若发现错误,将出现失败提示,将鼠标移动至检查结果失败项右侧,可查看具体的解决建议,处理完成后点击「重新检查」:
  • 若检查通过,点击「开始迁移」则将开始数据迁移。

2.4. 开始迁移

Note

迁移过程中,可以点击迁移进度查看:

迁移进度:

2.5. 完成迁移

数据库迁移完成后,点击「完成迁移」: