mongodb集群在Centos中搭建

博主: haitianisgood

原博客网址:
http://blog.csdn.net/haitianisgood/article/details/73682739

mongodb集群在Centos中搭建

概述

一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档document,每个文档都以BSON(binary json)的形式存放于硬盘中,因此可以存储比较复杂的数据类型。它是以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的schema-free,这也是文档型数据库最主要的优点。跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以你又可以像关系型数据库那样对某些域进行读写、统计等操作。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mongo还可以解决海量数据的查询效率,根据官方文档,当数据量达到50GB以上数据时,Mongo数据库访问速度是MySQL10 倍以上。
BSON
BSON是Binary JSON 的简称,是一个JSON文档对象的二进制编码格式。BSON同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型。如:BSON有Date类型和BinDate类型。
BSON有以下三个特点: 轻量级、跨平台、效率高Mongo

1. 前提准备

准备三台服务器

10.8.6.2
10.8.6.3
10.8.6.4

创建目录

mkdir /data
mkdir /data/log/mongodb/

下载二进制包

进入目录/data下

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.5.tgz

tar -zxvf mongodb-linux-x86_64-rhel62-3.4.5.tgz

mv mongodb-linux-x86_64-rhel62-3.4.5 mongodb

2. 创建编写mongodb.conf

cd /data/mongodb

三台机器配置文件相同,创建配置文件

vim mongodb.conf

内容如下:

fork = true 
port = 27017
dbpath = /data/mongodb/data
logpath = /data/log/mongodb/mongodb.log
logappend = true
replSet = Jackie
directoryperdb = true
journal = true

保存退出

配置参数参考网址:

https://docs.mongodb.com/manual/reference/program/mongod/

3. 启动mongodb

cd /data/mongodb
bin/mongod --config mongodb.conf

4. 初始化mongodb集群

任意一台mongodb登陆:

/data/mongodb/bin/mongo

这里写图片描述

这里的 _id: ” Jackie ” 和上面配置文件中“replSet = Jackie” 要保持一样

在连接mongdo后,输入一下内容:

config = {"_id" : " Jackie ",
    "members" : [
    {"_id" : 0, "host" : "10.8.6.2:27017"},
    {"_id" : 1, "host" : "10.8.6.3:27017"},
    {"_id" : 2, "host" : "10.8.6.4:27017"},
   ]}

然后回车,执行初始化副本集配置命令:

rs.initiate(config);

输出成功

{ "ok" : 1 }

查看集群节点的状态

PRIMARY>rs.status();
{
    "set" : "Jackie",
    "date" : ISODate("2017-06-07T05:48:02.177Z"),
    "myState" : 1,
    "term" : NumberLong(1),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "members" : [
        {
            "_id" : 0,
            "name" : "10.8.6.2:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 66,
            "optime" : {
                "ts" : Timestamp(1478497627, 2),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2017-06-07T05:47:07Z"),
            "lastHeartbeat" : ISODate("2017-06-07T05:48:01.274Z"),
            "lastHeartbeatRecv" : ISODate("2017-06-07T05:48:00.450Z"),
            "pingMs" : NumberLong(0),
            "syncingTo" : "10.8.6.3:27017",
            "configVersion" : 1
        },
        {
            "_id" : 1,
            "name" : "10.8.6.3:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 135,
            "optime" : {
                "ts" : Timestamp(1478497627, 2),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2017-06-07T05:47:07Z"),
            "infoMessage" : "could not find member to sync from",
            "electionTime" : Timestamp(1478497627, 1),
            "electionDate" : ISODate("2017-06-07T05:47:07Z"),
            "configVersion" : 1,
            "self" : true
        }
    ],
            "_id" : 3,
            "name" : "10.8.6.3:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 66,
            "optime" : {
                "ts" : Timestamp(1478497627, 2),
                "t" : NumberLong(1)
            },
            "optimeDate" : ISODate("2017-06-07T05:47:07Z"),
            "lastHeartbeat" : ISODate("2017-06-07T05:48:01.274Z"),
            "lastHeartbeatRecv" : ISODate("2017-06-07T05:48:00.450Z"),
            "pingMs" : NumberLong(0),
            "syncingTo" : "10.8.6.3:27017",
            "configVersion" : 1
        },
    "ok" : 1
}

到此搭建完成!!!

参考网址

官网:

https://docs.mongodb.com/manual/reference/program/mongod/


版权声明:本文为haitianisgood原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。