1

MongoDB节点如何快速克隆?

 2 years ago
source link: https://blog.51cto.com/lee90/5615009
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

MongoDB节点如何快速克隆?

精选 原创

我的二狗呢 2022-08-24 11:04:11 博主文章分类:MongoDB ©著作权

文章标签 mongodb 文章分类 Linux 系统/运维 阅读数180

常见的方法,直接把新的节点加入到现有的MongoDB集群中,让它自己去同步数据,这个方法最简单省事。

但是,也会存在一些缺点:

1、全量同步期间,集群的负载会变高,如果业务程序的read_timeout write_timeout 设置的比较低可能会有感知。对此可以调大业务程序链接mongodb的几个timeout参数。

2、需要事先估算下oplog的大小,防止出现新的节点还处于全量同步的过程中,现有集群的oplog被覆盖的情况。这样的话,新的节点永远也加不进集群里。

鉴于上述2个原因,生产上大库(例如1T以上)的加节点,我一般采样下面的方法:

假设节点标识为:主节点:M  2个备节点:S1 S2 , 新加入的节点为S3

1、关停一个从节点S1的MongoDB进程。 生产基本上都是一主两备(PSS架构)吧,如果还是一主一备一仲裁(PSA架构),建议乘早改掉,官方都不推荐了。

2、scp拷贝这个S1的数据到新的节点S3。

3、启动step1关停的从节点S1的MongoDB进程,自动加回集群。

4、启动新的节点S3的MongoDB进程。

5、在原先的主节点M上,执行添加S3节点的操作。

6、S3节点会加入后会根据oplog中的信息,尝试增量同步,等一段时间完成增量同步后即可加入集群。

TIPS:

oplog 在MongoDB>=3.6+ 版本(希望没记错)已经可以在线调整的。看下当前的oplog存多久的,就可估算出能不能撑到拷完数据,如果担心不够大就先在线调整下就行。

  • 打赏
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK