MongoShake 是一款数据同步的开源工具。基于 mongodb_oplog 的集群复制功能构建,可以满足迁移和同步的需求。

MongoDB 通过集成 MongoShake,可实现副本集 MongoDB 集群之间的数据同步,实现集群灾备和多活功能。

本小节主要介绍如何配置 MongoShake 参数,实现数据同步。

注意事项

受数据量、网络等因素影响,数据同步过程可能耗时较久,建议在业务低峰期进行。

约束限制

  • 仅支持副本集 MongoDB 集群之间的数据同步。

  • 不支持同时将一个集群数据同步到多个集群。

  • 不支持同步数据库用户帐号信息。

  • 不支持同步 config,local,admin 库。

前提条件

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

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

    注意

    数据导入和导出期间,需确保安装工具的服务器与两个 MongoDB 集群之间网络畅通。

    当安装工具的服务器与两个 MongoDB 集群之间网络不通时,可使用边界路由器VPN 等方式打通网络。

操作步骤

  1. 登录管理控制台。

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

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

  4. 配置参数页签,选择公共参数,点击修改属性

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

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

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

  6. 点击保存,确认启用 MongoShake 数据同步服务。

    MongoShake 服务

MongoShake 参数

参数 说明 取值示例

MongoShake 是否开启

确认是否开启 MongoShake 服务。

Mongoshake: 同步方式

选择数据同步方式。

  • 默认为 全部,表示全量+增量的数据同步。全量同步历史数据,并持续同步新写入数据。

  • 取值 full ,表示全量的数据同步。全量同步历史数据,同步完成之后 MongoShake 通道自动关闭。

  • 取值 incr,表示增量的数据同步。仅同步新写入数据,不同步历史数据。

全部

Mongoshake: 源 MongoDB 地址

表示源 MongoDB 集群节点地址。

  • 需配置为 IP:Port

  • 若需配置整个集群的 IP,需用逗号隔开,例如 1.1.1.1:27017,1.1.1.2:27017,1.1.1.3:27017。

说明

为避免影响业务,尽量配置为集群从节点或只读节点。

1.1.1.1:27017

Mongoshake: 源 MongoDB 用户

表示源 MongoDB 用户名。
需配置为具有管理权限的帐号,例如 root 帐号。

root

Mongoshake: 源 MongoDB 用户密码

表示源 MongoDB 用户密码。

-

Mongoshake: 目标 MongoDB 地址

表示目标 MongoDB 集群节点地址。

  • 需配置为 IP:Port

  • 若需配置整个集群的 IP,需用逗号隔开,例如 2.2.2.1:27017,2.2.2.2:27017,2.2.2.3:27017。

说明

为避免影响业务,尽量配置为集群从节点或只读节点。

2.2.2.1:27017

Mongoshake: 目标 MongoDB 用户

表示目标 MongoDB 用户名。
需配置为具有管理权限的帐号,例如 root 帐号。

root

Mongoshake: 目标 MongoDB 用户密码

表示目标 MongoDB 用户密码。

-

后续操作

  • MongoShake 提供 restful 接口,数据同步期间可监控数据同步情况。详细说明,请参见 How to monitor the MongoShake

  • 数据同步完成后,执行 comparison.py 对比确定数据是否同步完成。

  • 数据同步完成后,您可以选择关闭 MongoShake 同步通道。