本小节为您介绍如何在线上进行集群之间数据同步和迁移。

注意
  • 迁移过程会给源集群带来额外开销,若在无法保证资源充足的情况下进行数据迁移,可能会导致 OOM,请谨慎操作。

  • 若集群磁盘使用已超过 500 G 的情况下,不建议执行此操作。

前提条件

  • 已有源集群和已创建目标集群。

    说明
    • 源集群 A :172.22.112.7(Primary)、172.22.112.8(Secondary)、172.22.112.10(Hidden)

    • 目标集群 B :172.22.112.5(Primary)、172.22.112.6(Secondary)、172.22.112.11(Hidden)

    • 源集群版本 <= 目标集群版本。例如:当前目标集群版本为 MongoDB 3.6.8 v1.0.1 ,则源集群版本可以为 MongoDB 3.6.8 v1.0.1或以下版本。

  • 已获取管理控制台登录账号和密码,且已获取集群操作权限。

  • 已创建 MongoDB 集群,且集群状态为活跃

操作步骤

  1. 登录管理控制台。

  2. 选择产品与服务 > 数据库与缓存 > 文档数据库 MongoDB,进入集群管理页面。

  3. 选择源集群 A,点击源集群 A 的 ID,进入集群详情页面。

    记录 primary 节点的 IP 地址。

  4. 通过mongo shell连接到集群 A 的 primary 节点。

    详细操作请参见通过 Mongo Shell 连接

  5. 在集群 A 的 primary 节点每隔 1 秒插入数据。

    说明

    初始时集群 A 和集群 B 的数据都为空。

    migration online 01
    migration online 02
  6. 在集群 A 的详情页面,选择配置参数页签,选择公共参数,点击修改属性

  7. 找到并设置 Mongoshake 相关参数。

    说明

    MongoShake 是基于 mongodb oplog 的集群复制工具,可以满足迁移和同步的需求,进一步实现灾备和多活功能。

    • 设置 MongoShake:是否开启参数为,开启 MongoShake 数据同步功能。

    • 设置 MongoShake:同步方式参数为all,全量+增量同步数据。

    • 设置 MongoShake:源地址为 hidden 节点 IP 地址。以减少生产环境为对业务的影响,此处建议使用 hidden 节点做数据迁移。

    • 设置 MongoShake:目标 MongoDB 地址为目标集群 B :172.22.112.5(Primary)、172.22.112.6(Secondary)、172.22.112.11(Hidden)。

      更多相关参数说明,请参见 MongoShake 参数

    migration online 03
  8. 点击保存,确认启用 MongoShake 数据同步服务。

  9. 选择产品与服务 > 数据库与缓存 > 文档数据库 MongoDB,进入集群管理页面。

  10. 选择目标集群 B,点击目标集群 B 的 ID,进入集群详情页面。

    记录 primary 节点的 IP 地址。

  11. 通过 mongo shell 连接到集群 B 的 primary 节点。

    详细操作请参见通过 Mongo Shell 连接

  12. 验证数据是否迁移成功(包括新插入的增量数据)。

    如图所示,可以看到集群 A 的数据(包括新插入的增量数据)已成功同步到了集群 B,且两边的数据延迟不超过 2 秒。

    migration online 04
    说明

    待所有增量数据插入完毕后,关闭 MongoShake 通道并关闭集群 A,数据迁移完成。