环境准备

Liunx 服务器一台

以下示例为单机版安装集群, 没有分片

MongoDB 安装

1.下载 MongoDB tgz 安装包:

可以从下载中心下载:

https://www.mongodb.com/download-center#production

Shell:

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon2-4.0.1.tgz

2.解压缩下载的压缩文件

使用下面的命令解压缩刚才下载的文件

tar -zxvf mongodb-linux-*-4.0.1.tgz

3.添加路径到环境变量

打开 /etc/profile ,然后添加下面的脚本进去:

export PATH=<mongodb-install-directory>/bin:$PATH

为你的程序安装目录,然后刷新环境变量:

source /etc/profile

集群搭建

1.为每个实例创建目录

创建文件夹:

mkdir -p /opt/mongodb/rs0-0 /opt/mongodb/rs0-1 /opt/mongodb/rs0-2

2.创建配置文件

切换到 rs0-0 目录中,创建配置文件touch mongod.conf,内容为:

#mongod.conf

systemLog:
destination: file
logAppend: true
path: /opt/mongodb/rs0-0/logs/mongodb.log storage:
dbPath: /opt/mongodb/rs0-0/data
journal:
enabled: true processManagement:
fork: true # fork and run in background
pidFilePath: /opt/mongodb/rs0-0/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo net:
port: 27017
bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces. replication:
replSetName: rs0

切换到 rs0-1 目录中,创建配置文件touch mongod.conf,内容为:

#mongod.conf

systemLog:
destination: file
logAppend: true
path: /opt/mongodb/rs0-1/logs/mongodb.log storage:
dbPath: /opt/mongodb/rs0-1/data
journal:
enabled: true processManagement:
fork: true # fork and run in background
pidFilePath: /opt/mongodb/rs0-1/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo net:
port: 27018
bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces. replication:
replSetName: rs0

切换到 rs0-2 目录中,创建配置文件touch mongod.conf,内容为:

#mongod.conf

systemLog:
destination: file
logAppend: true
path: /opt/mongodb/rs0-2/logs/mongodb.log storage:
dbPath: /opt/mongodb/rs0-2/data
journal:
enabled: true processManagement:
fork: true # fork and run in background
pidFilePath: /opt/mongodb/rs0-2/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo net:
port: 27019
bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces. replication:
replSetName: rs0

3.启动实例

实例0:

mongod --replSet rs0 --port 27017  --smallfiles --oplogSize 128

实例1:

mongod --replSet rs0 --port 27018   --smallfiles --oplogSize 128

实例2:

mongod --replSet rs0 --port 27019  --smallfiles --oplogSize 128

4.配置集群

启动起来之后,使用mongo客户端命令切换到其中一个实例上

mongo --port 27017

然后在 Mongo shell中输入:

rsconf = {
_id: "rs0",
members: [
{
_id: 0,
host: "<hostname>:27017"
},
{
_id: 1,
host: "<hostname>:27018"
},
{
_id: 2,
host: "<hostname>:27019"
}
]
}

替换 为你的主机名或者ip地址,然后执行:

rs.initiate( rsconf )

输入 rs.conf() 来查看你的集群信息:

{
"_id": "rs0",
"version": 1,
"protocolVersion": NumberLong(1),
"writeConcernMajorityJournalDefault": true,
"members": [
{
"_id": 0,
"host": "<hostname>:27017",
"arbiterOnly": false,
"buildIndexes": true,
"hidden": false,
"priority": 1,
"tags": {},
"slaveDelay": NumberLong(0),
"votes": 1
},
{
"_id": 1,
"host": "<hostname>:27018",
"arbiterOnly": false,
"buildIndexes": true,
"hidden": false,
"priority": 1,
"tags": {},
"slaveDelay": NumberLong(0),
"votes": 1
},
{
"_id": 2,
"host": "<hostname>:27019",
"arbiterOnly": false,
"buildIndexes": true,
"hidden": false,
"priority": 1,
"tags": {},
"slaveDelay": NumberLong(0),
"votes": 1
}
],
"settings": {
"chainingAllowed": true,
"heartbeatIntervalMillis": 2000,
"heartbeatTimeoutSecs": 10,
"electionTimeoutMillis": 10000,
"catchUpTimeoutMillis": -1,
"catchUpTakeoverDelayMillis": 30000,
"getLastErrorModes": {},
"getLastErrorDefaults": {
"w": 1,
"wtimeout": 0
},
"replicaSetId": ObjectId("5b7412b72362045708008077")
}
}

本文地址:https://www.cnblogs.com/savorboard/p/mongodb-4-cluster-install.html

作者博客:Savorboard

本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本

MongoDB 4.0 开发环境搭建集群的更多相关文章

  1. android 5.0开发环境搭建

    Android 5.0 是 Google 于 2014 年 10 月 15 日发布的全新 Android 操作系统.本文将就最新的Android 5.0 开发环境搭建做详细介绍. 工具/原料 jdk- ...

  2. Hadoop-2.8.0 开发环境搭建(Mac)

    Hadoop是一个由Apache基金会开发的分布式系统架构,简称HDFS,具有高容错性.可伸缩性等特点,并且可以部署在低配置的硬件上:同时,提供了高吞吐量的数据访问性能,适用于超大数据集的应用程序,以 ...

  3. CC++初学者编程教程(2) Microsoft Visual C++ 6.0开发环境搭建

    上一篇演示的是如何安装VS2010,本文演示的是如何安装Microsoft Visual C++ 6.0 简称VC6. 有同学经常VC6都是很古董的版本了,为啥他还存在,不得不说VC6是微软一个很经典 ...

  4. IMX6开发板Qtopia2.2.0开发环境搭建以及编译镜像

    搭建 Qtopia2.2.0 开发环境,需要先搭建 Android 的编译环境,然后在 Android 编译环境的基础上,再搭建 Qtopia2.2.0 编译环境.以下内容基于迅为-iMX6开发板.Q ...

  5. Cocos2d-x.3.0开发环境搭建

    配置:win7 + VS2012 + Cocos2d-x.3.0 + Cocos Studio v1.4.0.1 前言:本文介绍在上述配置下进行游戏开发的环境搭建.开发语言为C++.如果读者不需要查看 ...

  6. 2、【Spark】Spark环境搭建(集群方式)

    Spark集群方式搭建结构如图所示,按照主从方式.

  7. AndroidStudio2.0开发环境搭建

    实验内容 下载安装Android Studio 配置使用环境 实验要求 下载安装Android Studio 基本环境配置 实验步骤 1.首先从安卓开发者网站下载最新的Android Studio h ...

  8. ubuntu16.04 HyperLedger Fabric 1.2.0 开发环境搭建

    安装准备 1. 安装git.cRUL.gcc/g++和make $ sudo apt-get update $ sudo apt-get install build-essential git cur ...

  9. 在VS2015中的SDL2.0开发环境搭建

    写本文的目的在于使用网络上的教程及官方的教程(如:http://www.willusher.io/sdl2%20tutorials/2013/08/15/lesson-0-visual-studio) ...

随机推荐

  1. (七)SpringBoot2.0基础篇- application.properties属性文件的解析及获取

    默认访问的属性文件为application.properties文件,可在启动项目参数中指定spring.config.location的参数: java -jar myproject.jar --s ...

  2. 关于Linux虚拟化技术KVM的科普

    虚拟化技术应用越来越广泛,虚拟化技术需求越来越强劲.KVM.XEN.Docker等比较热门,尤其是KVM技术越来越受欢迎. 基于此背景,了解一下KVM+QEMU就有点必要了. 从网上收集了一些资料进行 ...

  3. AbstractRoutingDataSource实现动态数据源切换 专题

    需求:系统中要实现切换数据库(业务数据库和his数据库) 网上很多资料上有提到AbstractRoutingDataSource,大致是这么说的 在Spring 2.0.1中引入了AbstractRo ...

  4. Spring提供的用于访问Rest服务的客户端:RestTemplate实践

    什么是RestTemplate? RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效 ...

  5. Python Redis 的安装

    安装 可以去pypi上找到redis的Python模块: http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit= ...

  6. MySQL 开发实践

    最近研发的项目对DB依赖比较重,梳理了这段时间使用MySQL遇到的8个比较具有代表性的问题,答案也比较偏自己的开发实践,没有DBA专业和深入,有出入的请使劲拍砖!- MySQL读写性能是多少,有哪些性 ...

  7. B20J_2007_[Noi2010]海拔_平面图最小割转对偶图+堆优化Dij

    B20J_2007_[Noi2010]海拔_平面图最小割转对偶图+堆优化Dij 题意:城市被东西向和南北向的主干道划分为n×n个区域.城市中包括(n+1)×(n+1)个交叉路口和2n×(n+1)条双向 ...

  8. Dropwizard入门及开发步骤

    Dropwizard介绍 Dropwizard结构的服务组成 开发步骤 Dropwizard介绍 Dropwizard是一个微服务框架, 是各项技术的一个集成封装.它包含了以下组件: 嵌入式Jetty ...

  9. Resnet论文翻译

    摘要 越深层次的神经网络越难以训练.我们提供了一个残差学习框架,以减轻对网络的训练,这些网络的深度比以前的要大得多.我们明确地将这些层重新规划为通过参考输入层x,学习残差函数,来代替没有参考的学习函数 ...

  10. 浅析JavaScript解析赋值、浅拷贝和深拷贝的区别

    文章首发于sau交流学习社区 一.赋值(Copy) 赋值是将某一数值或对象赋给某个变量的过程,分为: 1.基本数据类型:赋值,赋值之后两个变量互不影响 2.引用数据类型:赋**址**,两个变量具有相同 ...