
MongoDB系列—— Window 搭建Mongodb 集群
发布日期:2025-04-14 17:48:22
浏览次数:9
分类:精选文章
本文共 1708 字,大约阅读时间需要 5 分钟。
MongoDB 副本集(Replica Set)搭建指南
MongoDB 的副本集是一种简单且高效的集群方式,适合处理读写并发情况。本文将详细介绍如何搭建一个包含主节点、备节点和仲裁节点的副本集。
副本集概述
在副本集中,主节点(Master)负责数据的写入和查询,备节点(Slave)负责数据的复制和查询。仲裁节点(Arbitrator)用于在主节点故障时选举新的主节点,确保集群的高可用性。
主节点与备节点的角色
- 主节点:负责数据的写入和查询操作,数据持有权。
- 备节点:在默认配置下仅作为数据的副本,无法独立处理查询。通过优化配置,可以让备节点也能处理查询请求,分担主节点的压力。
- 仲裁节点:不存储数据,仅在主节点故障时发挥作用,确保副本集能快速恢复。
搭建步骤
1. 安装 MongoDB
解压 MongoDB 数据库文件,并创建以下三个文件夹:
masterslavearbiter
在每个文件夹中创建对应的配置文件(如 master.config
、slave.config
、arbiter.config
)。
2. 配置文件示例
以下是各节点的配置文件示例:
master.config
dbpath=D:\mongodb\master\data\dblogpath=D:\mongodb\master\data\log\mongodb.logport=2222logappend=truereplSet=zj
slave.config
dbpath=D:\mongodb\slave\data\dblogpath=D:\mongodb\slave\data\log\mongodb.logport=3333logappend=truereplSet=zj
arbiter.config
dbpath=D:\mongodb\arbiter\data\dblogpath=D:\mongodb\arbiter\data\log\mongodb.logport=4444logappend=truereplSet=zjarbiterOnly=true
3. 启动 MongoDB 服务
创建一个批处理脚本(如 install-mongodb.bat
),分别在三个文件夹中运行:
@echo offtaskkill /im mongod.exe /fstart D:\mongodb\master\bin\mongod.exe --install --logpath=D:\mongodb\master\data\log\mongodb.log --logappend --dbpath=D:\mongodb\master\data\db --replSet zjpause
将相关路径替换为实际路径。
启动所有服务。
4. 连接数据库
在命令提示符中:
cd D:\mongodb\master\binmongo 192.168.2.129:2222
5. 初始化副本集
在数据库中执行以下命令:
use zjdbconfig --zj "config={_id:'zj', members:[{_id:0, host:'192.168.2.129:2222'}, {_id:1, host:'192.168.2.129:3333'}, {_id:2, host:'192.168.2.129:4444', arbiterOnly:true}]}" rs.initiate()
6. 验证节点状态
执行以下命令查看副本集状态:
rs.status()
预期输出显示主节点状态为 PRIMARY。
备注
优化备节点查询:通过配置 replication.readOnly = true
,可以让备节点支持查询操作,减少主节点压力。
常见问题:
- 如果出现
STARTUP2
状态,可能是配置加载延迟。 - 如果出现
UNKNOWN
状态,可能是网络连接问题。
高可用性:
- 确保所有节点在同一网络段内。
- 定期检查网络连接,确保副本集内部通信正常。
通过以上步骤,可以成功搭建一个高可用性、负载均衡的 MongoDB 副本集。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年05月19日 02时56分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MacType Decency 项目常见问题解决方案
2025-04-11
Mac下MySQL 报错:Error1045(28000)解决办法
2025-04-11
Mac电脑怎么读写不了移动硬盘?解决苹果电脑不能读写移动硬盘问题
2025-04-11
Makefile遗漏分隔符错误解决
2025-04-11
malloc和定位new表达式
2025-04-11
MAMP无法正常启动,错误提示The built-in Apache is active
2025-04-11
MangoDB4.0版本的安装与配置
2025-04-11
Manjaro 24.2 “Yonada” 发布:尖端功能与精美界面再度进化
2025-04-11
map 函数返回的列表在使用一次后消失
2025-04-11
Map 遍历取值及jstl的取值
2025-04-11
Mapbox GL示例教程【目录】-- 已有80篇
2025-04-11
mapping文件目录生成修改
2025-04-11
MapReduce程序依赖的jar包
2025-04-12
MapStruct 映射过程中忽略某个字段
2025-04-12
map和bean的相互转换
2025-04-12
Map的深浅拷贝的探究
2025-04-12
Map集合循环遍历的几种方式
2025-04-12
MariaDB的简单使用
2025-04-12