创建MongoDB副本集教程
今天有时间搞了一下mongoDB的副本集,遇到好多坑,写下此文,方便日后查阅!
本教程是在windows环境下安装测试的(我是本机一台 + 两台虚拟机)
本机:10.53.8.159
虚拟机一:10.53.8.110
虚拟机二:10.53.8.112
MongoDB版本如下:

一些基本设置我就不说了,比如三台都可以相互ping通,关闭了防火墙等等。
写入操作只能在主节点进行,从节点不能写入。
1.从官网下载安装包
https://www.mongodb.com/download-center/community
2.跟随教程安装
安装教程网上很多 https://www.runoob.com/mongodb/mongodb-window-install.html
注意:安装好后,不要再跟着它 “创建目录” ,因为data,log目录已经创建好了。
安装好后,我的目录如下

路径:E:\MongoDB\Server\4.0
3.在其余两台虚拟机上也各自安装一遍mongoDB。
我的安装路径和本机保持一致,E:\MongoDB\Server\4.0 希望大家也保持一致,等你搞熟了就随意了。
4.编辑本机中 E:\MongoDB\Server\4.0\bin\mongod.cfg 配置文件
配置文件采用yml格式,所以需要注意别把格式搞错,否则会出现错误码1053
修改两个点:
1.bindIp:127.0.0.1 =======>bindIp: 0.0.0.0 这个是控制可以从哪些ip登陆mongoDB,0.0.0.0的话是可以从任意ip
2.将replication前的#号放开,修改成如下配置
replication:
oplogSizeMB: 128
replSetName: mySet
enableMajorityReadConcern: true
5.同步骤4,编辑虚拟机一,二 中 E:\MongoDB\Server\4.0\bin\mongod.cfg 配置文件
6.制作启动bat文件
在本机 E:\MongoDB\Server\4.0\bin下,新建 mongo_start.bat(创建txt文件,然后将后缀txt改成bat即可)里面内容如下
mongod.exe --config "E:\MongoDB\Server\4.0\bin\mongod.cfg"


7.同步骤6,虚拟机一,二 中也制作bat文件
8.双击本机,虚拟机一,二中的bat启动mongoDB副本集。
9.在本机上,进入E:\MongoDB\Server\4.0\bin目录,用cmd命令行连接mongoDB。

mongo --port 27017
10.定义副本集配置成员
注意:_id必须和mongod.cfg配置文件的replSetName完全相同。
rsconf = {
_id: "mySet",
members: [
{
_id: 0,
host: "10.53.8.159:27017"
},
{
_id: 1,
host: "10.53.8.110:27017"
},
{
_id: 2,
host: "10.53.8.112:27017"
}
]
}

11.执行初始化命令
rs.initiate(rsconf)
rsconf和步骤10定义的名称一致。

OK是1 ,表示创建成功。
12.查看配置后的信息
rs.conf()

12.使用可视化工具也可以看到相关信息

13.连接10.53.8.159 insert一条数据
db.col.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
14.在10.53.8.110,10.53.8.112上都可以确认到数据,至此副本集配置和测试成功。

切记:
1.副本集启动前,确保data目录为空
2.确保路径不出错
3.确保三台机子相互间能ping通。(有时网络不好,也会失败)
附上官方文档说明:英文的,有能力可以阅读,收获绝对很大。
https://docs.mongodb.com/v4.0/tutorial/deploy-replica-set/
有任何问题可以留言联系我!
创建MongoDB副本集教程的更多相关文章
- 创建mongodb副本集操作实例
一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...
- 在Windows上使用Docker 创建MongoDB 副本集的极简方法(翻译)
这篇博客介绍下在Windows上使用Docker 创建MongoDB 三节点副本集的最简单的方法.以下命令需要Docker for Windows并使用Linux 容器. 1: 为每个节点创建数据卷 ...
- MongoDB副本集学习(三):性能和优化相关
Read Preferences/读写分离 有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Pref ...
- mongodb 副本集之入门篇
作者: 凹凸曼-军军 前言:mongodb 因为高性能.高可用性.支持分片等特性,作为非关系型数据库被大家广泛使用.其高可用性主要是体现在 mongodb 的副本集上面(可以简单理解为一主多从的集群) ...
- MongoDB副本集的实现与维护实战
1.建立MongoDB副本集 现利用一台机器完成MongoDB副本集的建立 机器1:127.0.0.1:27017 机器2:127.0.0.1:27018 机器3:127.0.0.1:27019 在D ...
- MongoDB副本集学习(一):概述和环境搭建
MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...
- MongoDB副本集搭建及备份恢复
一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...
- MongoDB副本集的常用操作及原理
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...
- MongoDB副本集的搭建
副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...
随机推荐
- 有a1,a2,a3,a4,四个数组,四个数组重新组合成一个数组(A),间隔是10个元素
好久没折腾Py了,这是去年年初2019.3月发在Q中的一个记录,因不从事这个,并且被在工厂耽误10几年,所以很少写Blog在这里,感觉这里比较正式,而在Q中只是随意性的记载, 但发布图片总是需要另外再 ...
- 使用Vim写LaTeX代码(Vim+Vimtex+Skim)
最近在写博客的时候发现对数学公式的支持并不好,于是就想寻找一个解决方案.我本身是一个爱折腾的人,有时尽管有现成的解决方案我有事也不愿意去用.于是多方查找资料,想寻求一个自定义的解决方案,最终把自己的目 ...
- 重学 Java 设计模式:实战责任链模式「模拟618电商大促期间,项目上线流程多级负责人审批场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 场地和场景的重要性 射击
- excel如何快速汇总多个类别的总和?
这个需求是一位在当前抗疫一线的朋友提出的,和各位分享一下. 需求情况 因为众所周知的原因,他每天都需要为照顾的小区居民购买.运送生活物资.小区居民通过表单的形式提交自己每日的需求,最终汇总到一张exc ...
- Jenkins项目构建运行
[准备环境] 继Jenkins环境搭建完成后,进行插件的管理 [思路] 项目顺序是,开发提交代码到代码仓库,测试通过Jenkins拉下开发的代码打包部署: 1.开发提交代码 2.Jenkins自动从代 ...
- Redis面试专题
Redis面试专题 1. 什么是redis? Redis 是一个基于内存的高性能key-value数据库. (有空再补充,有理解错误或不足欢迎指正) 2. Reids的特点 Redis本质上是一个Ke ...
- FastJson对实体类和Json还有JSONObject相互转换
1. 实体类或集合转JSON串 String besnString = JSONObject.toJSONString(实体类); 2.JSON串转JSONObject JSONObject json ...
- gatewayworker 安装 pcntl 扩展
安装其它扩展也是如此. 第一步,查看php版本: /phpstudy/server/php/bin/php -v 第二步,下载扩展文件: http://php.net/releases/ 这里面寻找 ...
- linux下的c语言编程学习笔记
视频参看csdn学院王阳和下面的linux环境下c语言编程基础相当的经典,其中王阳的视频讲的很好,相当的经典 编译hellogcc.c需要依赖/home目录下的头文件 为了避免同一个文件被includ ...
- linux网络编程-一个简单的线程池(41)
有时我们会需要大量线程来处理一些相互独立的任务,为了避免频繁的申请释放线程所带来的开销,我们可以使用线程池 1.线程池拥有若干个线程,是线程的集合,线程池中的线程数目有严格的要求,用于执行大量的相对短 ...