功能概述

MongoShake 是一款数据同步的开源工具,基于 mongodb_oplog 的集群复制功能构建,可以满足迁移和同步的需求。更多信息可参考 MongoShake 官方文档

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

注意事项

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

约束限制

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

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

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

  • 不支持同步 configlocal 以及 admin 库。

操作步骤

参考修改 MongoDB 集群配置参数,修改以下参数值。

参数 说明

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

  • 这里配置源集群的从节点或只读节点 IP 地址即可。

Mongoshake: 源 MongoDB 用户

表示源 MongoDB 用户名。需配置为具有管理权限的帐号,这里填写 root

Mongoshake: 源 MongoDB 用户密码

表示源 MongoDB 用户密码,这里填写 root 用户对应的密码。

Mongoshake: 目标 MongoDB 地址

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

  • 填写格式为 IP:Port,多个 IP 地址之间,使用 , 隔开,如 2.2.2.2:27017,2.2.2.3:27017,2.2.2.4:27017,其中需包含主节点 IP 地址。

  • 这里配置目标集群的主节点 IP 地址即可。

Mongoshake: 目标 MongoDB 用户

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

Mongoshake: 目标 MongoDB 用户密码

表示目标 MongoDB 用户密码,这里填写 root 用户对应的密码。