今天有时间搞了一下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副本集教程的更多相关文章

  1. 创建mongodb副本集操作实例

    一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...

  2. 在Windows上使用Docker 创建MongoDB 副本集的极简方法(翻译)

    这篇博客介绍下在Windows上使用Docker 创建MongoDB 三节点副本集的最简单的方法.以下命令需要Docker for Windows并使用Linux 容器. 1: 为每个节点创建数据卷 ...

  3. MongoDB副本集学习(三):性能和优化相关

    Read Preferences/读写分离 有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Pref ...

  4. mongodb 副本集之入门篇

    作者: 凹凸曼-军军 前言:mongodb 因为高性能.高可用性.支持分片等特性,作为非关系型数据库被大家广泛使用.其高可用性主要是体现在 mongodb 的副本集上面(可以简单理解为一主多从的集群) ...

  5. MongoDB副本集的实现与维护实战

    1.建立MongoDB副本集 现利用一台机器完成MongoDB副本集的建立 机器1:127.0.0.1:27017 机器2:127.0.0.1:27018 机器3:127.0.0.1:27019 在D ...

  6. MongoDB副本集学习(一):概述和环境搭建

    MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...

  7. MongoDB副本集搭建及备份恢复

    一.MongoDB副本集(repl set)介绍 早起版本使用master-slave,一主一从和MySQL类似,但slave在此架构中为只读,当主库宕机后,从库不能自动切换为主: 目前已经淘汰了ma ...

  8. MongoDB副本集的常用操作及原理

    本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...

  9. MongoDB副本集的搭建

    副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...

随机推荐

  1. 视频的清晰度 1080p 720p 2k 4k是什么意思?

    在bilibili上看了一些个视频,发现它视频的清晰度有很多种选法.诸如720p,1080p,2k,4k,以及我看直播时经常遇见的蓝光,超清.它们的含义分别是什么呢?为了搞清楚这个问题,也为了以后的观 ...

  2. 面试问Redis集群,被虐的不行了......

    哨兵主要针对单节点故障无法自动恢复的解决方案,集群主要针对单节点容量.并发问题.线性可扩展性的解决方案.本文使用官方提供的redis cluster.文末有你们想要的设置ssh背景哦! 本文主要围绕如 ...

  3. mysql定时备份任务

    简介 在生产环境上,为了避免数据的丢失,通常情况下都会定时的对数据库进行备份.而Linux的crontab指令则可以帮助我们实现对数据库定时进行备份.首先我们来简单了解crontab指令,如果你会了请 ...

  4. redis高级命令3哨兵模式

    redis的哨兵模式 现在我们在从服务器1.222上让该从服务器作为哨兵 首先将redis安装包文件下的sentinel.conf文件复制到/usr/local/redis/etc目录下 然后修改se ...

  5. Docker(五)Docker镜像讲解

    Docker镜像讲解 镜像概念 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件 Dock ...

  6. html+css快速入门教程(6)

    9 综合实例 仿百度云盘下载页面实战 10 表格 10.1 table table 为表格标签 可以让我们的表格在浏览器中显示 table 下面还有两个常用标签 tr 和 td tr表示一行 td表示 ...

  7. 文档翻译经验分享(Markdown)

    该教程基于VSCode 加一些插件 youdao translate https://marketplace.visualstudio.com/items?itemName=Yao-Translate ...

  8. Eclipse配置maven环境1

    一.什么是maven? Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个 ...

  9. Jquery中$(document).ready()

    window.onload = function(){ alert("welcome"); } 语句的作用是希望在页面加载完,自动执行定义js代码(function). $(doc ...

  10. Canvas干货总结

    一.canvas简介 ​<canvas> 是 html5 新增的,一个可以使用脚本(通常为 javascript) 在其中绘制图像的 html 元素.它可以用来制作照片集或者制作简单的动画 ...