线上集群之间数据同步和迁移最佳实践
本小节为您介绍如何在线上进行集群之间数据同步和迁移。
注意
- 迁移过程会给源集群带来额外开销,若在无法保证资源充足的情况下进行数据迁移,可能会导致 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 集群,且集群状态为活跃。
操作步骤
-
登录管理控制台。
-
选择产品与服务 > 数据库与缓存 > 文档数据库 MongoDB,进入集群管理页面。
-
选择源集群 A,点击源集群 A 的 ID,进入集群详情页面。
记录 primary 节点的 IP 地址。
-
通过mongo shell连接到集群 A 的 primary 节点。
详细操作请参见通过 Mongo Shell 连接。
-
在集群 A 的 primary 节点每隔 1 秒插入数据。
初始时集群 A 和集群 B 的数据都为空。
-
在集群 A 的详情页面,选择配置参数页签,选择公共参数,点击修改属性。
-
找到并设置 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 参数。
- 设置 MongoShake:是否开启参数为
-
点击保存,确认启用 MongoShake 数据同步服务。
-
选择产品与服务 > 数据库与缓存 > 文档数据库 MongoDB,进入集群管理页面。
-
选择目标集群 B,点击目标集群 B 的 ID,进入集群详情页面。
记录 primary 节点的 IP 地址。
-
通过 mongo shell 连接到集群 B 的 primary 节点。
详细操作请参见通过 Mongo Shell 连接。
-
验证数据是否迁移成功(包括新插入的增量数据)。
如图所示,可以看到集群 A 的数据(包括新插入的增量数据)已成功同步到了集群 B,且两边的数据延迟不超过 2 秒。
待所有增量数据插入完毕后,关闭 MongoShake 通道并关闭集群 A,数据迁移完成。