一、mongo安装
准备三台服务器,IP依次为192.168.1.10[裁判机]、192.168.1.11[主节点]、192.168.1.12[从节点]
1.下载mongodb的安装程序包
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz
注意linux生产环境不能安装32位的mongodb,因为32位受限于操作系统最大2G的文件限制。
2.解压下载的压缩包
#sudo tar xvzf mongodb-linux-x86_64-2.4.8.tgz
3.准备存储地址和日志文件
在/home下进行
#sudo mkdir -p mongo/data
在/var/log下进行
#sudo mkdir mongo
#sudo chmod 777 mongo/
4.准备mongo的配置文件
在解压的mongo的文件下,一般使用/home/installpackage/mongodb-linux-x86_64-2.4.8,新建一个配置文件的地址etc
#sudo mkdir etc
#cd etc/
新建配置文件
#sudo vi mongo.conf
4.1 裁判机
#mongo.conf
logpath=/var/log/mongo/mongod-arb.log
logappend=true
bind_ip=192.168.1.10
port=40000
dbpath=/home/mongo/data
fork=true
noauth=true
directoryperdb=true
journal=true
replSet=rs0
4.2 主节点
#mongo.conf
logpath=/var/log/mongo/mongod.log
logappend=true
bind_ip=192.168.1.11
port=27017
dbpath=/home/mongo/data
fork=true
noauth=true
directoryperdb=true
journal=true
replSet=rs0
4.3 从节点
#mongo.conf
logpath=/var/log/mongo/mongod.log
logappend=true
bind_ip=192.168.1.12
port=27017
dbpath=/home/mongo/data
fork=true
noauth=true
directoryperdb=true
journal=true
replSet=rs0
5.启动mongo
在/home/installpackage/mongodb-linux-x86_64-2.4.8/bin通过配置文件启动
#sudo ./mongod -f /home/installpackage/mongodb-linux-x86_64-2.4.8/etc/mongo.conf
如果启动不了,报错,一般是配置文件引起的,校验一下配置文件,看一下配置的路径是否都建立了
二、mongo集群化部署
1.进入主节点mongo
在/home/installpackage/mongodb-linux-x86_64-2.4.8/bin通过绑定的ip和端口号进入
#./mongo 192.168.1.11:27017
>use admin
>cfg={ _id:"rs0", members:[ {_id:0,host:'192.168.1.11:27017',priority:2}, {_id:1,host:'192.168.1.12:27017',priority:1}, {_id:2,host:'192.168.1.10:40000',arbiterOnly:true}] };
>rs.initiate(cfg)
注意:
第一个"_id"下属的都需要为各个节点的统一配置的replSet
通过非主节点增加集群配置,会报错,必须在即将成为主节点的mongo库里面进行增加配置
2.查看mongo集群状态
在任何一台mongo下的/home/installpackage/mongodb-linux-x86_64-2.4.8/bin通过绑定的ip和端口号进入
#./mongo 192.168.1.10:40000
>rs.status()
{
"set" : "rs0",
"date" : ISODate("2015-05-04T16:36:01Z"),
"myState" : 2,
"syncingTo" : "192.168.1.11:27017",
"members" : [
{
"_id" : 0,
"name" : "192.168.1.11:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1719,
"optime" : Timestamp(1430755336, 1),
"optimeDate" : ISODate("2015-05-04T16:02:16Z"),
"lastHeartbeat" : ISODate("2015-05-04T16:35:59Z"),
"lastHeartbeatRecv" : ISODate("2015-05-04T16:35:59Z"),
"pingMs" : 0,
"electionTime" : Timestamp(1430755354, 1),
"electionDate" : ISODate("2015-05-04T16:02:34Z")
},
{
"_id" : 1,
"name" : "192.168.1.12:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 2601,
"optime" : Timestamp(1430755336, 1),
"optimeDate" : ISODate("2015-05-04T16:02:16Z"),
"self" : true
},
{
"_id" : 2,
"name" : "192.168.1.10:40000",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 1719,
"lastHeartbeat" : ISODate("2015-05-04T16:35:59Z"),
"lastHeartbeatRecv" : ISODate("2015-05-04T16:35:59Z"),
"pingMs" : 0
}
],
"ok" : 1
}
成功