博主: 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.conf4. 初始化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
}
到此搭建完成!!!
参考网址
官网: