Replica Sets
MongoDB 支持在多个机器中通过异步复制达到故障转移和实现冗余。多机器中同一时刻只 有一台是用于写操作。正是由于这个情况,为 MongoDB 提供了数据一致性的保障。担当 Primary 角色的机器能把读操作分发给 slave。
Replica Sets的结构非常类似一个集群。因 为它确实跟集群实现的作用是一样的, 其中一个节点如果出现故障, 其它节点马上会将业务接过来而无须停机操作。
下面以本机为例介绍一下集群的部署过程,以及部署过程中常见的注意点及错误
本例环境是Linux操作系统,mongodb版本:mongodb-linux-x86_64-2.6.1.tgz,Vmwre虚拟机,虚拟机IP:192.168.169.129,集群以本机不同端口模拟三台服务器。
1.集群主要分为三个节点master主节点,slaver备用节点,arbiter仲裁节点
建立数据文件夹
mkdir -p /mongodb/data/master
mkdir -p /mongodb/data/slaver
mkdir -p /mongodb/data/arbiter

ps:三个目录分别对应主,备,仲裁节点

2.建立配置文件夹
1)master.conf
    打开编辑器:
vi /etc/master.conf

按i 输入下列配置

dbpath=/home/mongodb/data/master
logpath=/home/mongodb/log/master.log
logappend=true
replSet=rep1
port=10000
fork=true
journal=true

完成之后按esc  》》 :  >>wq>>回车

2)slaver.conf
编辑器打开和保存按上边的步骤,下边只写详细内容
dbpath=/home/mongodb/data/slaver
logpath=/home/mongodb/log/slaver.log
logappend=true
replSet=rep1
port=10001
fork=true
journal=true

3)arbiter.conf

dbpath=/home/mongodb/data/arbiter
logpath=/home/mongodb/log/arbiter.log
logappend=true
replSet=rep1
port=10002
fork=true
journal=true
smallfiles=true

参数解释:

dbpath:数据存放目录

logpath:日志存放路径

logappend:以追加的方式记录日志

replSet:replica set的名字

port:mongodb进程所使用的端口号,默认为27017

fork:以后台方式运行进程

journal:写日志

smallfiles:当提示空间不够时添加此参数

其他参数

pidfilepath:进程文件,方便停止mongodb

directoryperdb:为每一个数据库按照数据库名建立文件夹存放

bind_ip:mongodb所绑定的ip地址

oplogSize:mongodb操作日志文件的最大大小。单位为Mb,默认为硬盘剩余空间的5%

noprealloc:不预先分配存储

3.启动Mongodb

cd /home/mongodb/bin

启动服务

./mongod -f /etc/master.conf

./mongod -f /etc/slaver.conf

./mongod -f /etc/arbiter.conf

有这样的提示说明启动成功

如果是下列的提示说明启动失败

启动失败的原因有很多,检查完配置文件,如果没有错误,可打开相应的配置文件查看详细的错误信息

cat /etc/master.conf

最常见的一个错误就是磁盘空间不足,会提示这样的错误

因为Mongodb的日志文件是成2g的增长,所以所需空间比较大,这时你可以在配置文件里添加这样的一个配置
smallfiles=true。
全部三个服务全部启动成功之后

4.配置主(master),备(slaver),仲裁(arbiter)节点

可以通过客户端连接mongodb,也可以直接在三个节点中选择一个连接mongodb。

./mongo 192.168.169.129:10000   #ip和port是某个节点的地址

>use admin

>cfg={ _id:"rep1", members:[ {_id:0,host:'192.168.169.129:10000',priority:2}, {_id:1,host:'192.168.169.129:10001',priority:1},
{_id:2,host:'192.168.169.129:10002',arbiterOnly:true}] };
>rs.initiate(cfg) #使配置生效
{
        "set" : "rep1",
        "date" : ISODate("2014-09-05T02:44:43Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.169.129:10000",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 200,
                        "optime" : Timestamp(1357285565000, 1),
                        "optimeDate" : ISODate("2013-01-04T07:46:05Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "192.168.169.129:10001",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 200,
                        "optime" : Timestamp(1357285565000, 1),
                        "optimeDate" : ISODate("2013-01-04T07:46:05Z"),
                        "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
                        "pingMs" : 0
                },
                {
                        "_id" : 2,
                        "name" : "192.168.169.129:10002",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 200,
                        "lastHeartbeat" : ISODate("2013-01-05T02:44:42Z"),
                        "pingMs" : 0
                }
        ],
        "ok" : 1
}
 
配置过程中可能还会出现其他的一些错误,不过都可以去查看相应的日志文件,去解决。

Mongodb集群搭建过程及常见错误的更多相关文章

  1. mongodb集群搭建过程记录

    mongodb集群搭建花费比较长的时间,在此记录下过程,方便以后使用 一 软件环境 系统:ubuntu 18.04,mongodb 社区版4.2 https://docs.mongodb.com/ma ...

  2. elasticsearch 集群搭建及启动常见错误

    1.系统环境 三台服务器(最好是单数台,跟master选举方式有关),确保机器互相ping的通,且都需要装了jdk 8环境,机器IP和 elasticsearch 的节点名称如下: cluster n ...

  3. Mongodb 集群搭建以及常见错误

    Mongodb 集群搭建以及常见错误 1 关于Replica Sets +Sharding(主从复制加分片)搭建,不这详细去说,网上有很多,大部分的例子就三台服务器之间做主从复制,分2个shard,架 ...

  4. Mongodb集群搭建之 Replica Set

    Mongodb集群搭建之 Replica Set Replica Set 中文翻译叫做副本集,不过我并不喜欢把英文翻译成中文,总是感觉怪怪的.其实简单来说就是集群当中包含了多份数据,保证主节点挂掉了, ...

  5. 分布式实时日志系统(一)环境搭建之 Jstorm 集群搭建过程/Jstorm集群一键安装部署

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

  6. MongoDB集群搭建-分片

    MongoDB集群搭建-分片 一.场景: 1,机器的磁盘不够用了.使用分片解决磁盘空间的问题. 2,单个mongod已经不能满足写数据的性能要求.通过分片让写压力分散到各个分片上面,使用分片服务器自身 ...

  7. 懒人记录 Hadoop2.7.1 集群搭建过程

    懒人记录 Hadoop2.7.1 集群搭建过程 2016-07-02 13:15:45 总结 除了配置hosts ,和免密码互连之外,先在一台机器上装好所有东西 配置好之后,拷贝虚拟机,配置hosts ...

  8. MongoDB集群搭建-副本集

    MongoDB集群搭建-副本集 概念性的知识,可以参考本人博客地址: 一.Master-Slave方案: 主从: 二.Replica Set方案: 副本集: 步骤:(只要按步骤操作,100%成功) 1 ...

  9. Linux下MySQL/MariaDB Galera集群搭建过程【转】

    MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...

随机推荐

  1. PHP文件和目录操作-----复制、移动、重命名、删除文件

    PHP通过copy()函数来复制一个文件.用法如下: bool copy(string $source, string $dest) 其中$source是源文件的路径,$dest是目的文件的路径.函数 ...

  2. MySQL学习总结

    MySQL的学习总结,根据数据库的四大基本操作——”增删查改“分类整理.

  3. Timberwolves forward Kevin Garnett to retire _洛杉矶时报

    Timerwolves:森林狼队,forward:前锋; kevin Garnett,the best player in Minnesota Timberwolves history,is expe ...

  4. javascript 键盘输入过滤,只能输入数字,小数一位且只能输入5

    $("#right_div2 input[type='text'][class='textClass'][id^='asd_']").live("keydown" ...

  5. apriori推荐算法

    大数据时代开始流行推荐算法,所以作者写了一篇教程来介绍apriori推荐算法. 推荐算法大致分为: 基于物品和用户本身 基于关联规则 基于模型的推荐 基于物品和用户本身 基于物品和用户本身的,这种推荐 ...

  6. kylin(二): Calcite

    Apache Calcite是面向Hadoop新的查询引擎,它提供了标准的SQL语言.多种查询优化和连接各种数据源的能力,除此之外,Calcite还提供了OLAP和流处理的查询引擎.Calcite之前 ...

  7. 浏览器下载/导出文件 及jQuery表单提交

    1 比如以下按钮, 用于导出文件,如EXCEL文件. <li> <button class="whiteBg btn2" onclick="doExp( ...

  8. mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用

    mybatis 应用程序,需要大量的配置文件,对于一个成百上千的数据库表来说,完全手工配置,这是一个很恐怖的工作量. 所以mybatis 官方也推出了一个mybatis代码生成工具的jar包. 今天花 ...

  9. BizTalk发布WS-Security的web services

    最近做个项目,biztalk跟OTM(Oracle Transportation Management)系统做对接,双方通过web services通讯,这部分是BizTalk发布WS-Securit ...

  10. C#矩阵运算类库

    这个类库是本人参考许多相关资料之后做出的C#矩阵运算类库,因为C#的数值计算库相对比较少,所以希望这个类库能够给大家带来一些帮助. 源码github网址:https://github.com/Josh ...