今天学习了搭建 MongDB 复制环境,实验环境是在虚拟机上同一系统,并搭建三节点 Replica Set,
根据文档上的描述,mongodb 复制配置简单,并且能够自动 failover,这些高级特性以后再实验,这里仅
描述配置过程:

一 环境信息
虚拟机:         Red Hat Enterprise Linux Server release 6.2
主机名:       redhatB.example.com
MongoDB 版本:v2.2.1

  端口 数据目录
 主结点  27018  /mongodb/data01
 从节点一  27019  /mongodb/data02
 从节点二  27020  /mongodb/data03

二 搭建步骤
--2.1 创建数据目录

 [mongo@redhatB mongodb]$ mkdir -p /mongodb/data01
[mongo@redhatB mongodb]$ mkdir -p /mongodb/data02
[mongo@redhatB mongodb]$ mkdir -p /mongodb/data03

备注:三个目录分别为三个节点数据目录,并设置好目录权限。

--2.2 创建配置文件
--2.2.1 主节点配置文件

 touch /mongodb/data01/mongodb_27018.conf, 写入以下:

fork = true
port = 27018
dbpath = /mongodb/data01
logpath = /mongodb/data01/mongo.log
logappend = true
replSet = rs0

--2.2.2 从节点一配置

 touch /mongodb/data02/mongodb_27019.conf, 写入以下:

fork = true
port = 27019
dbpath = /mongodb/data02
logpath = /mongodb/data02/mongo.log
logappend = true
replSet = rs0

--2.2.3 从节点二配置

 touch /mongodb/data03/mongodb_27020.conf, 写入以下:

fork = true
port = 27020
dbpath = /mongodb/data03
logpath = /mongodb/data03/mongo.log
logappend = true
replSet = rs0

--2.3 启动主从节点

 mongod -f /mongodb/data01/mongodb_27018.conf
mongod -f /mongodb/data02/mongodb_27019.conf
mongod -f /mongodb/data03/mongodb_27020.conf

--2.4 初始化 Replica Sets
--2.4.1 登陆结点一初始化 

 [mongo@redhatB mongodb]$ mongo 127.0.0.1:27018
MongoDB shell version: 2.2.1
connecting to: 127.0.0.1:27018/test

> rs.inirs.initiate();
{
        "info2" : "no configuration explicitly specified -- making one",
        "me" : "redhatB.example.com:27018",
        "info" : "Config now saved locally.  Should come online in about a minute.",
        "ok" : 1
}

备注:使用的是默认配置。

--2.5 查看 Replica Sets 配置

 > rs.conf();
{
        "_id" : "rs0",
        "version" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "redhatB.example.com:27018"
                }
        ]
}

备注:只能看到一个节点信息;

--2.6 增加从节点

 rs0:PRIMARY> rs.add("redhatB.example.com:27019");
{ "ok" : 1 }
rs0:PRIMARY> rs.add("redhatB.example.com:27020");
{ "ok" : 1 }
rs0:PRIMARY>

--2.7 再次查看 Replica Sets 配置

 rs0:PRIMARY> rs.conf();
{
        "_id" : "rs0",
        "version" : 3,
        "members" : [
                {
                        "_id" : 0,
                        "host" : "redhatB.example.com:27018"
                },
                {
                        "_id" : 1,
                        "host" : "redhatB.example.com:27019"
                },
                {
                        "_id" : 2,
                        "host" : "redhatB.example.com:27020"
                }
        ]
}

备注:这时已经能看到三个节点信息。

--2.8 查看 Replica Sets 状态

 rs0:PRIMARY> rs.status();
{
        "set" : "rs0",
        "date" : ISODate("2012-11-22T08:43:21Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "redhatB.example.com:27018",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 2445,
                        "optime" : Timestamp(1353573735000, 1),
                        "optimeDate" : ISODate("2012-11-22T08:42:15Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "redhatB.example.com:27019",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 74,
                        "optime" : Timestamp(1353573735000, 1),
                        "optimeDate" : ISODate("2012-11-22T08:42:15Z"),
                        "lastHeartbeat" : ISODate("2012-11-22T08:43:21Z"),
                        "pingMs" : 0
                },
                {
                        "_id" : 2,
                        "name" : "redhatB.example.com:27020",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 66,
                        "optime" : Timestamp(1353573735000, 1),
                        "optimeDate" : ISODate("2012-11-22T08:42:15Z"),
                        "lastHeartbeat" : ISODate("2012-11-22T08:43:19Z"),
                        "pingMs" : 0
                }
        ],
        "ok" : 1
}

备注:rs.status() 命令可以显示节点状态具体信息。
  
  
三 测试
--3.1 登陆主节点

 [mongo@redhatB mongodb]$ mongo 127.0.0.1:27018
MongoDB shell version: 2.2.1
connecting to: 127.0.0.1:27018/test

rs0:PRIMARY> db.test_1.save({id:1});

rs0:PRIMARY> db.test_1.find();
{ "_id" : ObjectId("50ade66efabbde9e747577b1"), "id" : 1 }

备注:主节点可以读写;

--3.2 登陆从节点一

 [mongo@redhatB mongodb]$ mongo 127.0.0.1:27019
MongoDB shell version: 2.2.1
connecting to: 127.0.0.1:27019/test
rs0:SECONDARY> show dbs;show dbs;
local   0.125GB
test    0.0625GB
rs0:SECONDARY> show collections;
Thu Nov 22 16:48:15 uncaught exception: error: { "$err" : "not master and slaveOk=false", "code" : 13435 }
rs0:SECONDARY>

备注:从节点不可读写,但能看到主库创建的集合,从库需要使用 rs.slaveOk() 命令开启只读。
 
--3.3 开启从库只读模式

 [mongo@redhatB mongodb]$ mongo 127.0.0.1:27019
MongoDB shell version: 2.2.1
connecting to: 127.0.0.1:27019/test

rs0:SECONDARY> rs.slaveOk();

rs0:SECONDARY> show collections;
system.indexes
test_1

rs0:SECONDARY> db.test_1.find();
{ "_id" : ObjectId("50ade66efabbde9e747577b1"), "id" : 1 }

rs0:SECONDARY> db.test_1.save({id:2});db.
not master

备注:这时从库可读了(不可写),同理设置从库二。 到了这里,三节点 Replica Sets 环境已经全部
           搭建好了,步骤比较简单。

MongoDB:搭建三节点 Replica Set 环境的更多相关文章

  1. 使用express, create-react-app, mongodb搭建react模拟数据开发环境

    提要 最近刚刚完成了一个vue的项目,其中涉及的用户数有6000多个以及其他数据也比较多,为了在前端能够真实的进行数据模拟,所有把全量数据拷贝下来放到了api.json中.这样导致整个api.json ...

  2. OceanBase三节点部署&&扩容

    OceanBase三节点部署&&扩容 环境信息搭建三节点(1-1-1)创建资源池和租户查看数据分布 环境信息 IP OB目录 端口 192.168.43.89 /data/observ ...

  3. MongoDB之Replica Sets环境搭建

    最近学习MongoDB,这两天在搭建复制集的时候碰到了不少问题,也踩了好多坑,现在在这里记录下来,以供自己和他人参考 (因为本人是初学者,所以遇到的问题也会比较初级,所以本文也比较适合初学者查阅) 背 ...

  4. 三节点搭建openstack-Mitaka版本

    前言: 现在的云计算平台已经非常火,也非常的稳定了.像阿里云平台,百度云平台等等,今天咱们基于openstack来搭建一个云平台 注意: 本次平台搭建为三节点搭建(没有外部存储节点,所有存储为本地存储 ...

  5. 第三章 Spring.Net 环境准备和搭建

    在前面一章我们介绍了依赖注入,控制反转的概念.接下来我们来真正动手搭建一下Spring.Net的环境,看一下Spring.Net 中的控制反转和依赖注入是什么样子. 3.1  Spring.Net 下 ...

  6. 【运维技术】kafka三实例集群环境搭建及测试使用

    kafka三实例集群环境搭建及测试使用 单机搭建分为两部分:1. 软件安装启动 2. 软件配置 软件安装启动: # 切换到目录 cd /app # 获取kafka最新安装包,这边使用的是镜像地址,可以 ...

  7. 用“MEAN”技术栈开发web应用(三)用mongodb搭建数据库

    上一篇介绍了如何用express搭建起服务端MVC的开发架构,本篇我们来详细介绍一下这个Model层,也就是数据库访问层.包含如何使用mongodb搭建数据库,以及如何使用mongoose来访问数据. ...

  8. Intellij Idea系列之Tomcat环境的搭建(三)

    Intellij Idea系列之Tomcat环境的搭建(三) 一. 编写背景 Intellij Idea在刚上手的时候很多人吐槽,"god, 这么难用的IDE有谁用呀?",的确,I ...

  9. odoo开发环境搭建(三):安装odoo依赖的python包

    odoo开发环境搭建(三):安装odoo依赖的python包 http://www.cnblogs.com/jlzhou/p/5940815.html

随机推荐

  1. 132-pattern(蛮难的)

    https://leetcode.com/problems/132-pattern/ 下面是我的做法.后来又看了一个提示: https://discuss.leetcode.com/topic/678 ...

  2. 江湖问题研究-- intent传递有没有限制大小,是多少?

    出门一步,便是江湖.江湖上有很多流言. 比方这条: intent传递是有限制大小的,详细在40KB左右. 当然也有传言说是1M左右. 数百头母驴为何半夜慘叫? 小卖部安全套为何屡遭黑手? 女生宿舍内裤 ...

  3. flex操作XML,强力总结帖

    初始化XML对象 XML对象可以代表一个XML元素.属性.注释.处理指令或文本元素.在ActionScript 3.0中我们可以直接将XML数据赋值给变量: var myXML:XML =    &l ...

  4. 【Sprint3冲刺之前】日历表的事件处理和管理(刘铸辉)

    我的Sprint2冲刺——日历表的事件处理和管理(刘铸辉,刘静) 我的Sprint2冲刺计划领到的任务是和静姐结对编程,完成日历表的事件处理和管理,下面详细讲解下技术细节. 1.设计结构图 首先要画出 ...

  5. linux find prune排除某目录或文件

    http://blog.csdn.net/ysdaniel/article/details/7995681 查找cache目录下不是html的文件 find ./cache ! -name '*.ht ...

  6. JS计算网页停留时间

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  7. CCNET自动构建之路

    人永远追求效率(想偷懒),不想手动编译项目.发布站点于是产生了自动构建技术,.NET领域中CCNET是个不错的选择. 一路问题不少,记录一下. 准备环境 服务器上需要有iis.vs(与开发环境的版本一 ...

  8. 一个经典的比喻( 关于TCP连接API )

    前言 编程是对现实世界的模拟,网络通信自然也是对现实世界通信的模拟.可以将网络通信中使用的各种API和对现实世界中的各种通信设备进行通讯的操作进行对比以加深理解. 对比 socket() 函数 vs ...

  9. EasyDarwin开源流媒体服务器性能瓶颈分析及优化方案设计

    EasyDarwin现有架构介绍 EasyDarwin的现有架构对网络事件的处理是这样的,每一个Socket连接在EasyDarwin内部的对应存在形式就是一个Session,不论是RTSP服务对应的 ...

  10. 理解 React,但不理解 Redux,该如何通俗易懂的理解 Redux?

    作者:Wang Namelos链接:https://www.zhihu.com/question/41312576/answer/90782136来源:知乎著作权归作者所有.商业转载请联系作者获得授权 ...