MongoDB整理笔记の增加节点
发布日期:2025-04-14 17:34:19 浏览次数:10 分类:精选文章

本文共 1557 字,大约阅读时间需要 5 分钟。

MongoDB 复制集不仅 提供了高可用性,还提供了负载均衡的解决方案。在实际应用中,增减Replica Set 节点非常普遍。例如,当应用的读压力急剧增加时,现有的3台节点可能无法满足需求,此时需要增加节点来分担压力,从而达到压力均衡。

以下是两种常用的增加Replica Set节点的方法:

方法一:通过oplog 增加节点

这种方法操作简单,且不需要大量人工干预,但需要注意oplog是capped集合,采用循环方式处理日志。因此,使用oplog直接增加节点可能导致数据不一致的问题。为了解决这一问题,可以结合数据库快照和oplog的方式来增加节点。

步骤 1:配置并启动新节点,启用28013端口

首先需要为新节点配置必要的权限和端口。以下是详细的配置命令示例:

mkdir -p /data/data/r3echo "this is rs1 super secret key" > /data/key/r3chmod 600 /data/key/r3/Apps/mongo/bin/mongod --replSet rs1 --keyFile /data/key/r3 --fork --port 28013 --dbpath /data/data/r3 --logpath=/data/log/r3.log --logappend

步骤 2:将新节点添加到现有的Replica Set中

使用rs.add命令将新节点加入复制集:

rs1:PRIMARY> rs.add("localhost:28013")

步骤 3:验证节点状态

通过rs.status()命令可以查看节点的状态:

rs1:PRIMARY> rs.status()

状态初始化阶段可能会显示新节点的状态为“not reachable/healthy”,但一旦同步完成,状态应变为“HEALTHY”。

步骤 4:数据同步完成

同步完成后,可以通过检查节点状态来确认:

rs1:PRIMARY> rs.status()

此时,新节点的状态应显示为“SECONDARY”或“PRIMARY”,并且数据同步已完成。

方法二:通过数据库快照和oplog 增加节点

这种方法结合了数据库快照和oplog日志,能够无缝地进行节点扩展,避免了数据不一致的问题。

步骤 1:备份某一复制集成员的物理文件

使用scp命令复制物理文件:

scp -r /data/data/r3 /data/data/r4

步骤 2:在源复制集中插入新文档(用于验证同步)

在源复制集中插入一条新文档:

rs1:PRIMARY> db.c1.insert({age:20})

步骤 3:启动新节点并启用28014端口

新节点使用相同的配置文件启动,并启用相应的端口:

/Apps/mongo/bin/mongod --replSet rs1 --keyFile /data/key/r4 --fork --port 28014 --dbpath=data/data/r4 --logpath=/data/log/r4.log --logappend --fastsync

步骤 4:将新节点添加到复制集

使用rs.add命令将新节点加入复制集:

rs1:PRIMARY> rs.add("localhost:28014")

步骤 5:验证数据同步

通过检查新节点的数据是否正确同步:

rs1:SECONDARY> db.c1.find()

总结

通过以上两种方法,可以有效地增加MongoDB复制集的节点数量。选择哪种方法取决于具体的业务需求和场景。oplog直接添加节点简单,但可能存在数据一致性问题;而数据库快照加oplog的方式更加稳定,适合需要高数据一致性的场景。

上一篇:MongoDB整理笔记の索引
下一篇:MongoDB整合SpringBoot

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月29日 00时02分27秒