安装MongoDB
1.下载MongoDB
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.4.tgz
2.解压文件并创建目录
mkdir /soft
cd /soft
tar -xf mongodb-linux-x86_64-rhel62-3.2.4.tgz
mv mongodb-linux-x86_64-rhel62-3.2.4 /home/worker/opt/mongodb
3.创建date目录,此处根据节点角色不同,分别创建不同目录
mkdir -p /home/worker/mongodb/date/master
mkdir -p /home/worker/mongodb/date/slaver
mkdir -p /home/worker/mongodb/date/arbiter
4.创建日志目录和配置文件目录
mkdir -p /home/worker/opt/mongodb/conf
mkdir -p /home/worker/mongodb/log/
5.建立配置文件
#master.conf
dbpath=/home/worker/mongodb/data/master
logpath=/home/worker/mongodb/log/master.log
pidfilepath=/home/worker/mongodb/master.pid
directoryperdb=true
logappend=true
replSet=test
bind_ip=10.10.24.38
port=27017
oplogSize=10000
fork=true
noprealloc=true
#slaver.conf
dbpath=/home/worker/mongodb/data/slaver
logpath=/home/worker/mongodb/log/slaver.log
pidfilepath=/home/worker/mongodb/slaver.pid
directoryperdb=true
logappend=true
replSet=test
bind_ip=10.10.24.39
port=27017
oplogSize=10000
fork=true
noprealloc=true
#arbiter.conf
dbpath=/home/worker/mongodb_arbiter/data/arbiter
logpath=/home/worker/mongodb_arbiter/log/arbiter.log
pidfilepath=/home/worker/mongodb_arbiter/arbiter.pid
directoryperdb=true
logappend=true
replSet=test
bind_ip=10.10.24.39
port=27018
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:不预先分配存储
6.启动MongoDB
/home/worker/opt/mongondb/bin/mongod -f /home/worker/opt/mongodb/conf/master.conf
/home/worker/opt/mongondb/bin/mongod -f /home/worker/opt/mongodb/conf/slaver.conf
/home/worker/opt/mongondb/bin/mongod -f /home/worker/opt/mongodb/conf/arbiter.conf
*配置文件的路径一定要保证正确,可以是相对路径也可以是绝对路径.
7.配置主、备、仲裁节点
#连接到节点
./mongo 10.10.24.28:27017
>use admin
>cfg={ _id:"test", members:[ {_id:0,host:'10.10.24.38:27017',priority:2}, {_id:1,host:'10.10.24.39:27017',priority:1}, {_id:2,host:'10.10.24.39:27018',arbiterOnly:true}] };
>rs.initiate(cfg)
>rs.status()
>{
"set" : "test",
"date" : ISODate("2016-03-29T16:47:12.395Z"),
"myState" : 1,
"term" : NumberLong(5),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "10.10.24.38:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 44,
"optime" : {
"ts" : Timestamp(1459269999, 2),
"t" : NumberLong(5)
},
"optimeDate" : ISODate("2016-03-29T16:46:39Z"),
"electionTime" : Timestamp(1459269999, 1),
"electionDate" : ISODate("2016-03-29T16:46:39Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "10.10.24.39:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 42,
"optime" : {
"ts" : Timestamp(1459269999, 2),
"t" : NumberLong(5)
},
"optimeDate" : ISODate("2016-03-29T16:46:39Z"),
"lastHeartbeat" : ISODate("2016-03-29T16:47:11.726Z"),
"lastHeartbeatRecv" : ISODate("2016-03-29T16:47:10.637Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "10.10.24.38:27017",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "10.10.24.39:27018",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 42,
"lastHeartbeat" : ISODate("2016-03-29T16:47:11.697Z"),
"lastHeartbeatRecv" : ISODate("2016-03-29T16:47:11.258Z"),
"pingMs" : NumberLong(0),
"configVersion" : 1
}
],
"ok" : 1
}