本文共 1708 字,大约阅读时间需要 5 分钟。
MongoDB 的副本集是一种简单且高效的集群方式,适合处理读写并发情况。本文将详细介绍如何搭建一个包含主节点、备节点和仲裁节点的副本集。
在副本集中,主节点(Master)负责数据的写入和查询,备节点(Slave)负责数据的复制和查询。仲裁节点(Arbitrator)用于在主节点故障时选举新的主节点,确保集群的高可用性。
解压 MongoDB 数据库文件,并创建以下三个文件夹:
masterslavearbiter
在每个文件夹中创建对应的配置文件(如 master.config
、slave.config
、arbiter.config
)。
以下是各节点的配置文件示例:
dbpath=D:\mongodb\master\data\dblogpath=D:\mongodb\master\data\log\mongodb.logport=2222logappend=truereplSet=zj
dbpath=D:\mongodb\slave\data\dblogpath=D:\mongodb\slave\data\log\mongodb.logport=3333logappend=truereplSet=zj
dbpath=D:\mongodb\arbiter\data\dblogpath=D:\mongodb\arbiter\data\log\mongodb.logport=4444logappend=truereplSet=zjarbiterOnly=true
创建一个批处理脚本(如 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
将相关路径替换为实际路径。
启动所有服务。
在命令提示符中:
cd D:\mongodb\master\binmongo 192.168.2.129:2222
在数据库中执行以下命令:
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()
执行以下命令查看副本集状态:
rs.status()
预期输出显示主节点状态为 PRIMARY。
优化备节点查询:通过配置 replication.readOnly = true
,可以让备节点支持查询操作,减少主节点压力。
常见问题:
STARTUP2
状态,可能是配置加载延迟。UNKNOWN
状态,可能是网络连接问题。高可用性:
通过以上步骤,可以成功搭建一个高可用性、负载均衡的 MongoDB 副本集。
转载地址:http://jsffk.baihongyu.com/