当前位置: 首页 > news >正文

mongoDB搭建集群

(学习自黑马)

下载对应linux版本MongoDB

源码下载地址:https://www.mongodb.com/download-center#community

目前在一台服务器开三个端口模拟三个mongodb,

配置一个主节点27017,

一个从节点27018,

一个仲裁者27019

配置主节点,副节点,仲裁节点

(下面的创建文件一共有三份,通过不同的端口号实现 , 将配置文件的端口修改成对应节点端口即可,注意路径也要跟着修改)

#创建文件log日志文件data数据文件 conf配置文件

mkdir -p /mongodb/replica_sets/myrs_{端口号}/log \ &
mkdir -p /mongodb/replica_sets/myrs_{端口号}/data/db
vim /mongodb/replica_sets/myrs_{端口号}/mongod.conf

mongod.conf文件内容

systemLog:destination: filepath: "/mongodb/replica_sets/myrs_{端口号}/log/mongod.log"logAppend: true
storage:dbPath: "/mongodb/replica_sets/myrs_{端口号}/data/db"journal:#启用或禁用持久性日志以确保数据文件保持有效和可恢复。enabled: true
processManagement:#启用在后台运行mongos或mongod进程的守护进程模式。fork: true#指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PIDpidFilePath: "/mongodb/replica_sets/myrs_{端口号}/log/mongod.pid"
net:#服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip#bindIpAll: true#服务实例绑定的IP 本机ipbindIp: localhost,192.168.0.252  #bindIp#绑定的端口port: {端口号}
replication:#副本集的名称replSetName: myrs

启动mongodb: (三个都要启动)

/{你上传的mongodb路径}/mongod -f 
/mongodb/replica_sets/myrs_{端口号}/mongod.conf

查看启动状态 出现三个服务代表启动成功

ps -ef | grep 'mongo'[root@CentOS7 ~]# ps -ef | grep 'mongo'
root     27598     1  0 10:15 ?        00:00:17 /application/mongoBD/mongodb/bin/mongod -f /mongodb/replica_sets/myrs_27017/mongod.conf
root     29589     1  0 10:59 ?        00:00:06 /application/mongoBD/mongodb/bin/mongod -f /mongodb/replica_sets/myrs_27018/mongod.conf
root     30045     1  0 11:08 ?        00:00:04 /application/mongoBD/mongodb/bin/mongod -f /mongodb/replica_sets/myrs_27019/mongod.conf

进入主节点,这时使用show dbs命令会报错需要执行初始化副本集

rs.initiate()

执行完成后, show dbs 命令成功

添加从节点

rs.add("192.168.0.252:27018")

查看状态

rs.status()

members里面即为集群配置

"members" : [{"_id" : 0,"name" : "192.168.0.252:27017","health" : 1,"state" : 1,"stateStr" : "PRIMARY","uptime" : 4840,"optime" : {"ts" : Timestamp(1678332988, 1),"t" : NumberLong(1)},"optimeDate" : ISODate("2023-03-09T03:36:28Z"),"syncingTo" : "","syncSourceHost" : "","syncSourceId" : -1,"infoMessage" : "","electionTime" : Timestamp(1678331608, 1),"electionDate" : ISODate("2023-03-09T03:13:28Z"),"configVersion" : 2,"self" : true,"lastHeartbeatMessage" : ""},{"_id" : 1,"name" : "192.168.0.252:27018","health" : 1,"state" : 2,"stateStr" : "SECONDARY","uptime" : 40,"optime" : {"ts" : Timestamp(1678332988, 1),"t" : NumberLong(1)},"optimeDurable" : {"ts" : Timestamp(1678332988, 1),"t" : NumberLong(1)},"optimeDate" : ISODate("2023-03-09T03:36:28Z"),"optimeDurableDate" : ISODate("2023-03-09T03:36:28Z"),"lastHeartbeat" : ISODate("2023-03-09T03:36:34.887Z"),"lastHeartbeatRecv" : ISODate("2023-03-09T03:36:34.099Z"),"pingMs" : NumberLong(0),"lastHeartbeatMessage" : "","syncingTo" : "192.168.0.252:27017","syncSourceHost" : "192.168.0.252:27017","syncSourceId" : 0,"infoMessage" : "","configVersion" : 2}]

添加仲裁节点

rs.addArb("192.168.0.252:27019") 

此时在查看状态members里面会多出仲裁节点

登录从节点

/{路径}/bin/mongo --host 192.168.0.252 --port=27018

此时使用show dbs报错

设置为从节点

rs.slaveOk()

此时使用show dbs 成功 现在可实现了读写分离,让主插入数据,让从来读取数据

登录仲裁者节点

/{路径}/bin/mongo --host 192.168.0.252 --port=27019

设置为仲裁节点

rs.slaveOk()

完成

http://www.lryc.cn/news/35313.html

相关文章:

  • [深入理解SSD系列 闪存2.1.5] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现
  • 最新 JVM 面试经典问题
  • HTML5 和 CSS3 的新特性
  • Vulnhub系列:FristLeaks
  • XWiki Annotation Displayer 存在任意代码执行漏洞(CVE-2023-26475)
  • 数字孪生GIS智慧风场Web3D可视化运维系统
  • Retrofit核心源码分析(二)- 网络请求和响应处理
  • STM32启动模式讲解与ICP下载电路
  • 5款小巧好用的电脑软件,让你的工作生活更加高效!
  • python线程池
  • 深入浅出PaddlePaddle函数——paddle.ones_like
  • 计算机组成原理(海明码效验)(3)-软件设计(二十四)
  • Linux2.2网络驱动程序编写
  • 像素密度提升33%,Quest Pro动态注视点渲染原理详解
  • 【Linux实战篇】二、在Linux上部署各类软件
  • 基于SpringBoot的学生会管理系统 源码
  • [league/glide]两行代码实现一套强大的图片处理HTTP服务
  • Kafka 消费者组
  • 高效学 C++|组合类的构造函数
  • Java使用Springboot+Mybatis构建第一个项目
  • L2-007 家庭房产 L1-007 念数字
  • 1/4、1/2、整车悬架天棚主动控制仿真分析合集
  • 【微信小程序项目实战】TodoList-项目主体搭设(2)
  • 23种设计模式-迭代器模式(安卓应用场景介绍)
  • 面试 - 软件工程体系
  • 05-CSS
  • 华为OD机试题,用 Java 解【分奖金】问题
  • Multisim 14.3 安装教程
  • 06-Oracle表空间与用户管理(表空间,用户,备份与恢复,导入导出数据)
  • XSS攻击防御