linux mongo 搭建+集群

---------------------------------  Mongo single  -----------------------------------------------------------

Mongo 安装:

1. cd /usr/local/webserver/ && tar zxpf mongodb-linux-x86_64-2.0.6.tgz  && mv mongodb-linux-x86_64-2.0.6 mongodb

2. 编写配置文件如下(单个mongo配置)

vim  /usr/local/webserver/mongodb/conf/mongodb.conf_back

dbpath=/data/db            数据存放路径

logpath=/mongodb_data1log/mongodb_data1.log    日志路径

fork=true       后台启动

port=27019     启动端口

logappend=true     不会覆盖日志文件

3. 启动

/usr/local/webserver/mongodb/bin/mongod -f /usr/local/webserver/mongodb/conf/mongodb.conf

4. 进入数据库:

/usr/local/webserver/mongodb/bin/mongo 192.168.4.188:27017

---------------------------------  Mongo 集群  -----------------------------------------------------------

Mongo集群:

1. 主从模式(master/slave), 双节点 ,一旦主的挂掉, 数据就无法写入

2. 副本集模式(replica set) ,至少三节点, 一主,一辅, 一控制

下面为replica set 配置

1. 192.168.4.188(master)

mkdir -p /mongodb/data/master &&    mkdir -p /mongodb/log/

192.168.4.31(slaver)

mkdir -p /mongodb/data/slaver   &&    mkdir -p /mongodb/log/

192.168.4.32 (arbiter)

mkdir -p /mongodb/data/arbiter   &&    mkdir -p /mongodb/log/

2. 分别编写配置文件如下:

#master.conf

dbpath=/mongodb/data/master

logpath=/mongodb/log/master.log

pidfilepath=/mongodb/master.pid

directoryperdb=true

logappend=true

replSet=testrs

bind_ip=10.10.148.130

port=27017

oplogSize=10000

fork=true

noprealloc=true

#slaver.conf

dbpath=/mongodb/data/slaver

logpath=/mongodb/log/slaver.log

pidfilepath=/mongodb/slaver.pid

directoryperdb=true

logappend=true

replSet=testrs

bind_ip=10.10.148.131

port=27017

oplogSize=10000

fork=true

noprealloc=true

#arbiter.conf

dbpath=/mongodb/data/arbiter

logpath=/mongodb/log/arbiter.log

pidfilepath=/mongodb/arbiter.pid

directoryperdb=true

logappend=true

replSet=testrs

bind_ip=10.10.148.132

port=27017

oplogSize=10000

fork=true

noprealloc=true

参数解释:

dbpath:数据存放目录

logpath:日志存放路径

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

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

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

replSet:replica set的名字

bind_ip:mongodb所绑定的ip地址

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

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

fork:以后台方式运行进程

noprealloc:不预先分配存储

3. 分别启动:

/usr/local/webserver/mongodb/bin/mongod -f /usr/local/webserver/mongodb/conf/master.conf

/usr/local/webserver/mongodb/bin/mongod -f /usr/local/webserver/mongodb/conf/slaver.conf

/usr/local/webserver/mongodb/bin/mongod -f /usr/local/webserver/mongodb/conf/arbiter.conf

4. 连接主库192.168.4.188

1. /usr/local/webserver/mongodb/bin/mongo 192.168.4.188:27017

2.  use admin

3. cfg={ _id:"testrs", members:[ {_id:0,host:‘192.168.4.188:27017‘,priority:2}, {_id:1,host:‘192.168.4.31:27017‘,priority:1},{_id:2,host:‘192.168.4.32‘,arbiterOnly:true}] };

4. rs.initiate(cfg)   初始化设置

5. rs.status()  检测配置是否生效

注:cfg是可以任意的名字,当然最好不要是mongodb的关键字,conf,config都可以。最外层的_id表示replica set的名字,members里包含的是所有节点的地址以及优先级。优先级最高的即成为主节点,即这里的10.10.148.130:27017。特别注意的是,对于仲裁节点,需要有个特别的配置——arbiterOnly:true。这个千万不能少了,不然主备模式就不能生效。

配置的生效时间根据不同的机器配置会有长有短,配置不错的话基本上十几秒内就能生效,有的配置需要一两分钟。如果生效了,执行rs.status()命令会看到如下信息

PRIMARY> rs.status()

{

"set" : "testrs",

"date" : ISODate("2015-08-17T15:56:09Z"),

"myState" : 1,

"syncingTo" : "192.168.4.31:27017",

"members" : [

{

"_id" : 0,

"name" : "192.168.4.188:27017",

"health" : 1,

"state" : 1,

"stateStr" : "PRIMARY",

"optime" : {

"t" : 1439825218000,

"i" : 1

},

"optimeDate" : ISODate("2015-08-17T15:26:58Z"),

"self" : true

},

{

"_id" : 2,

"name" : "192.168.4.32:27017",

"health" : 1,

"state" : 7,

"stateStr" : "ARBITER",

"uptime" : 2007,

"optime" : {

"t" : 0,

"i" : 0

},

"optimeDate" : ISODate("1970-01-01T00:00:00Z"),

"lastHeartbeat" : ISODate("2015-08-17T15:56:09Z"),

"pingMs" : 0

},

{

"_id" : 3,

"name" : "192.168.4.31:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 1459,

"optime" : {

"t" : 1439825218000,

"i" : 1

},

"optimeDate" : ISODate("2015-08-17T15:26:58Z"),

"lastHeartbeat" : ISODate("2015-08-17T15:56:08Z"),

"pingMs" : 0

}

],

"ok" : 1

5. 测试:

主:db.t.insert({uid:12345})

db.t.find()

{ "_id" : ObjectId("55d1f1e3abe1ab56e12281a5"), "uid" : 12345 }

辅: db.t.find()

{ "_id" : ObjectId("55d1f1e3abe1ab56e12281a5"), "uid" : 12345 }

有数据同步成功

节点移除:

在主库上执行: rs.remove("192.168.4.31:27017")  其中"192.168.4.188:27017", 为rs.status()  中查询到的 节点的 "name" : "192.168.4.188:27017",

节点添加:

1. 在主库上执行: PRIMARY> rs.add("192.168.4.31:27017")

{ "ok" : 1 }

2. 需要重启mongo数据库 ,否则状态错误,如下:

[[email protected] bin]# ./mongo 192.168.4.31:27017

MongoDB shell version: 2.0.6

connecting to: 192.168.4.31:27017/test

FATAL>    fatal  致命的   不同点

正确状态如下:

[[email protected] bin]# ./mongo 192.168.4.31:27017

MongoDB shell version: 2.0.6

connecting to: 192.168.4.31:27017/test

SECONDARY>    不同点

Mongo的常用命令

db            显示当前是那个数据库

rs.status()   查看节点信息

show dbs;     查看数据库

show collections  查看当前数据库下的表,及索引

use test       进入test库

db.stats()     查看数据库的状态

db.help()      查看db命令帮助

参考网址:

http://blog.csdn.net/luonanqin/article/details/8497860

http://developer.51cto.com/art/201403/434054_all.htm

http://snowolf.iteye.com/blog/1974747

时间: 2024-10-07 20:49:45

linux mongo 搭建+集群的相关文章

Hadoop化繁为简-从安装Linux到搭建集群环境

简介与环境准备 hadoop的核心是分布式文件系统HDFS以及批处理计算MapReduce.近年,随着大数据.云计算.物联网的兴起,也极大的吸引了我的兴趣,看了网上很多文章,感觉还是云里雾里,很多不必要的配置都在入门教程出现.通过思考总结与相关教程,我想通过简单的方式传递给同样想入门hadoop的同学.其实,如果你有很好的Java基础,当你入门以后,你会感觉到hadoop其实也是很简单的,大数据无非就是数据量大,需要很多机器共同来完成存储工作,云计算无非就是多台机器一起运算. 操作建议:理论先了

Nginx 在 Linux 下安装与搭建集群

搭建集群图例 集群搭建图如下,为了简单一点,使用一个Nginx服务器+两个Tomcat服务器,省略数据库部分: 环境说明 Linux 为 CentOS 7.2 发行版 + Java jdk 1.8 + Tomcat 1.8 + Nginx 1.15 Linux 下安装 Nginx 下载nginx的tar包 //下载tar包 wget http://nginx.org/download/nginx-1.13.7.tar.gztar -xvf nginx-1.13.7.tar.g 安装gcc依赖Ng

linux redis5.0 集群搭建

一.下载 wget http://download.redis.io/releases/redis-5.0.0.tar.gz 二.解压.编译 #解押到 /usr/local/ 文件夹 tar -zxvf redis-5.0.0.tar.gz -C /usr/local/ # 编译,并安装熬 /usr/local/redis 文件夹 make & make install PREFIX=/usr/local/redis #复制 redis.conf 到安装目录   cp -r  /usr/loca

使用LVS+DR搭建集群实现负载均衡

使用LVS+DR搭建集群实现负载均衡 DR模式的概述与工作原理 DR模式服务概述:        Direct Routing(直接路由) --在同一个地域,同一个网段 Director分配请求到不同的real server.real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接.负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性.Direct Routing由与采用物理层(修改MAC地址)技术,因此所有服务器都必须在一

linux高可用集群heartbeat实现http的高可用

linux高可用集群的种类很多,比如常见的heartbeat,corosync,rhcs,keepalived,这些集群软件的出现为我们的业务生产环境提供了高可用的保证,本文将简单介绍一下用heartbeat的v2版本来处理一个简单的http高可用集群的搭建. 在实现http高可用集群之前,首先至少需要2台主机,并且需要做3点基本的准备工作: 1.设置节点名称,并且集群中的所有节点都能通过节点名称去解析集群中的所有主机.为了集群服务的高可用性,这里选择使用/etc/hosts,而且要保证unam

使用LVS+NAT搭建集群实现负载均衡

使用LVS+NAT搭建集群实现负载均衡 LVS集群简介    计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式.集群计算机通常用来改进单个计算机的计算速度和/或可靠性.一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多        LVS集群分布图   集群有三种类型:           

用apache和tomcat搭建集群,实现负载均衡

型的企业应用每天都需要承受巨大的访问量,在着巨大访问量的背后有数台服务器支撑着,如果一台服务器崩溃了,那么其他服务器可以使企业应用继续运行,用户对服务器的运作是透明化的,如何实现这种透明化呢?由如下问题需要解决. 一.Session的复制 二.如何将请求发送到正常的服务器 针对以上问题,可以使用群集和负载均衡来解决,整体架构如下:  中间由一台服务器做负载均衡(Load Balancer),它将所有请求,根据一定的负载均衡规则发送给指定的群集服务器(Cluster),群集服务器拥有着相同的状态和

Nginx+Tomcat搭建集群环境

集群概述与架构介绍 Tomcat集群能带来什么: 提高服务的性能,例如计算处理能力.并发能力等,以及实现服务的高可用性 提供项目架构的横向扩展能力,增加集群中的机器就能提高集群的性能 Tomcat集群实现方式: Tomcat集群的实现方式有多种,最简单的就是通过Nginx负载进行请求转发来实现 Tomcat单机架构图: 可能看了上面的Tomcat单机的架构图后,会 "想当然" 的觉得Tomcat集群架构是这样子的: 这种 "想当然" 的Tomcat集群会带来什么问题

Nginx + Tomcat搭建集群

一.Tomcat集群带来的好处 1.提高服务的性能,并发能力,以及高可用性 2.提供项目架构的横向扩展能力 二.Tomcat集群实现原理 通过Nginx负载均衡进行请求转发 三.Nginx + Tomcat搭建集群 (一).修改hosts文件 1. windows修改hosts 文件 c:\Windows\System32\drivers\etc\hosts 127.0.0.1 www.water.com 2. linux修改hosts文件 vi /etc/hosts (二).启动Nginx w