MongoDB副本集部署(windows)

环境准备

一、

  1. Windows操作系统:确保你的计算机上安装了Windows操作系统。
  2. MongoDB安装包:从MongoDB官网下载适合你Windows系统的安装包。
  3. 目录结构:创建用于存储数据和日志的目录结构,例如D:\MongoDB\dataD:\MongoDB\log

二、配置MongoDB节点

  1. 创建目录结构:为MongoDB的数据文件和日志文件创建适当的目录结构。例如,可以创建D:\MongoDB\data作为数据目录,D:\MongoDB\log作为日志目录。
  2. 复制MongoDB目录:复制MongoDB的bin目录,以创建多个MongoDB实例(即副本集成员)。例如,可以创建MongoDB1MongoDB2MongoDB3等目录,并在每个目录下放置一个bin目录。
  3. 配置参数:为每个MongoDB实例配置必要的参数,包括端口号、数据路径、日志路径和副本集名称。例如,在MongoDB1bin目录下,可以创建一个批处理文件或命令行脚本来启动MongoDB实例,并指定相应的参数。

本教程演示mongodb4.4 副本集部署(一主两从,伪分布式)

节点配置
主节点localhost:27017
从节点1localhost:27018
从节点2localhost:27019

每一个节点(实例)都创建对应的数据文件(data)和日志文件(log),例如:

启动实例(服务)

  1. 打开命令行窗口:以管理员身份打开命令行窗口(CMD)。
  2. 启动服务:在每个MongoDB实例的目录下,运行相应的启动命令来启动MongoDB服务。确保所有节点的MongoDB服务都已成功启动。

语法:

mongod -port 端口号  -dbpath 数据路径 -logpath 日志路径 -replSet 副本集名称

示例:

mongod -port 27018 -dbpath D:\mongoDB1\data -logpath D:\mongoDB1\log\mongo1.log -replSet rs0

主节点

从节点1(以管理员身份启动):

从节点2:

mongod -port 27019 -dbpath D:\mongoDB1\data -logpath D:\mongoDB1\log\mongo1.log -replSet rs0

以上三个节点启动的都是一次性服务,所以窗口不要关闭!
tips:
节点启动可能会遇到问题,主要检查端口是否被占用,和路径配置问题。若都没问题则考虑以管理员身份启动cmd。

配置副本集

  1. 连接MongoDB实例:使用MongoDB shell(mongo)连接到其中一个MongoDB实例。

  2. 初始化副本集:在MongoDB shell中,运行rs.initiate()命令来初始化副本集。在命令中,指定副本集的名称和成员列表。例如,对于一个包含三个节点的副本集,可以使用以下命令进行初始化:

维持服务不要关闭,进入任何一个节点内

mongo -port 27017

进行配置:
1.切换到admin数据库

use admin

2.配置集群

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}]}

说明:第一个“_id”为副本集名称,“priority”为优先级,数字越大,优先级越高。
3.使得配置生效

rs.initiate(config)

生效后可能会出现节点显示错误:
(明明是主节点,但却显示从节点)

只需要查看副本集状态即可更正:

 rs.status()

从节点配置
刚刚配置好的副本集中的从节点是无法进行数据库操作的:

mongo -port 27018
show dbs

要先进行从节点永久化设置:

rs.slaveOk()

 或者使用(推荐使用):

rs.secondaryOk() 

副本集验证

  1. 连接到MongoDB实例:使用MongoDB shell连接到任意一个MongoDB实例。
  2. 检查副本集状态:在MongoDB shell中,运行rs.status()命令来检查副本集的状态。该命令将返回一个包含副本集详细信息的文档,包括每个节点的状态、角色(主节点或从节点)以及数据同步情况等。

在主节点中增加数据

db.c4.insert({name:"副本测试",num:1})

在从节点上验证:

db.c4.find()

说明副本集群部署成功。

注意事项

  • 确保所有节点的网络连接稳定,并且防火墙设置允许MongoDB实例之间的通信。
  • 在配置副本集时,MongoDB官网建议当副本集成员个数大于二时,推荐副本集成员个数为奇数个,以提高选举的可靠性和避免平票情况的发生。
  • 副本集成员之间的数据同步是通过oplog(操作日志)来实现的。每个副本集成员(除仲裁节点外)都会在其本地存储一个oplog的副本,以确保数据的一致性和可靠性。
  • 在部署过程中,如果遇到任何问题或错误,可以查阅MongoDB的官方文档或相关社区论坛以获取帮助和解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值