在追求高可用性和数据冗余的现代数据库架构中,MongoDB副本集是一个不可或缺的组件。本教程将引导您完成在Windows操作系统上部署MongoDB 4.4副本集的全过程,构建一个包含一主两从(一个主节点、两个从节点)的伪分布式系统。此配置旨在提供基础的故障转移能力及读取扩展性。
节点 | 配置 |
主节点 | localhost:27017 |
从节点1 | localhost:27018 |
从节点2 | localhost:27019 |
准备工作
确保已下载并安装MongoDB 4.4版本至您的Windows系统中。同时,为三个节点(主节点、从节点1、从节点2)准备独立的数据存储目录和日志文件路径。
步骤一:启动MongoDB实例
打开三个命令提示符窗口,分别用于启动主节点和两个从节点。使用以下命令格式启动每个MongoDB实例,替换<port>
、<dbpath>
和<logpath>
为实际的端口号、数据路径和日志路径:
bin>mongod -port 端口号 -dbpath 数据路径 -logpath 日志路径 -replSet 副本集名称
例如,主节点的启动命令可能是:
D:\mgdb\mongodb1\bin>mongod -port 27017 -dbpath D:\mgdb\MongoDB1\data -logpath D:\mgdb\MongoDB1\log\mongo1.log -replSet rs0
节点1:
节点2:
以上三个节点启动的都是一次性服务,所以窗口不要关闭!
步骤二:配置副本集
-
连接到MongoDB实例:在任一命令提示符下,进入任意一个节点切换到admin数据库
-
-
初始化副本集:在MongoDB中,定义副本集配置并执行初始化操作。配置应包含所有节点的信息及其优先级设置:
config = {_id : "rs0",members:[ { _id : 0, host : "localhost:27017", priority: 3 }, { _id : 1, host : "localhost:27018", priority: 2 }, { _id : 2, host : "localhost:27019", priority: 1 }]}; rs.initiate(config);
-
验证副本集状态:初始化后,使用
rs.status()
命令检查副本集状态,确保所有节点均健行。
注意事项
- 权限与管理身份:若在启动MongoDB服务时遇到权限问题,需以管理员身份运行命令提示符。
- 端口冲突:确保指定的端口未被其他服务占用。
- 从节点读取:默认情况下,客户端不能直接从从节点读取数据。可以通过执行
rs.slaveOk()
或使用rs.secondaryOk()
命令临时允许,但更推荐在应用程序层面配置读偏好以充分利用副本集的读取优势。
结论
完成上述步骤后,您已成功在Windows环境下部署了一个MongoDB 4.4副本集。此配置不仅增强了数据库的可靠性,还为读密集型应用提供了负载均衡的能力。记得定期检查副本集状态,确保其持续健康运行,并根据业务需求调整副本集策略