一、搭建高可用的mongodb副本集(1主、1從、1仲裁)
73.119主
73.120從+仲裁
1、部署
73.119上:
cd /data1/setup/
tar zxf mongodb-linux-x86_64-3.4.1.tgz
mv /data1/setup/mongodb-linux-x86_64-3.4.1 /data1/opt/mongodb
mkdir /data1/opt/mongodb/data
mkdir /data1/opt/mongodb/log/
touch /data1/opt/mongodb/log/mongod.log
mkdir /data1/opt/mongodb/conf/
73.120上:
cd /data1/setup/
tar zxf mongodb-linux-x86_64-3.4.1.tgz
mv /data1/setup/mongodb-linux-x86_64-3.4.1 /data1/opt/mongodb
mkdir /data1/opt/mongodb/data
mkdir /data1/opt/mongodb/log/
touch /data1/opt/mongodb/log/mongod.log
mkdir /data1/opt/mongodb/conf/
cp -r /data1/opt/mongodb /data1/opt/mongodb-arbiter
2、修改配置
73.119上:
vi /data1/opt/mongodb/conf/mongod.conf
dbpath=/data1/opt/mongodb/data
logpath=/data1/opt/mongodb/log/mongodb.log
pidfilepath=/data1/opt/mongodb/mongod.pid
directoryperdb=true
logappend=true
replSet=mallrs
bind_ip=172.16.73.119
port=27017
oplogSize=10000
fork=true
noprealloc=true
73.120上:
vi /data1/opt/mongodb/conf/mongod.conf
dbpath=/data1/opt/mongodb/data
logpath=/data1/opt/mongodb/log/mongodb.log
pidfilepath=/data1/opt/mongodb/mongod.pid
directoryperdb=true
logappend=true
replSet=mallrs
bind_ip=172.16.73.120
port=27017
oplogSize=10000
fork=true
noprealloc=true
vi /data1/opt/mongodb-arbiter/conf/mongod.conf
dbpath=/data1/opt/mongodb-arbiter/data
logpath=/data1/opt/mongodb-arbiter/log/mongodb.log
pidfilepath=/data1/opt/mongodb-arbiter/mongod.pid
directoryperdb=true
logappend=true
replSet=mallrs
bind_ip=172.16.73.120
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:不預先分配存儲
3、啓動
73.119上:
/data1/opt/mongodb/bin/mongod -f /data1/opt/mongodb/conf/mongod.conf
73.120上:
/data1/opt/mongodb/bin/mongod -f /data1/opt/mongodb/conf/mongod.conf
/data1/opt/mongodb-arbiter/bin/mongod -f /data1/opt/mongodb-arbiter/conf/mongod.conf
4、配置
/data1/opt/mongodb/bin/mongo 172.16.73.119:27017
>use admin
>cfg={_id:"mallrs",members:[{_id:0,host:'172.16.73.119:27017',priority:2},{_id:1,host:'172.16.73.120:27017',priority:1},{_id:2,host:'172.16.73.120:27018',arbiterOnly:true}]};
>rs.initiate(cfg) #使配置生效
mallrs:OTHER> rs.status()
{
"set" : "mallrs",
"date" : ISODate("2017-12-12T06:00:39.422Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1513058434, 1),
"t" : NumberLong(1)
},
"appliedOpTime" : {
"ts" : Timestamp(1513058434, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1513058434, 1),
"t" : NumberLong(1)
}
},
"members" : [
{
"_id" : 0,
"name" : "172.16.73.119:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 395,
"optime" : {
"ts" : Timestamp(1513058434, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2017-12-12T06:00:34Z"),
"infoMessage" : "could not find member to sync from",
"electionTime" : Timestamp(1513058393, 1),
"electionDate" : ISODate("2017-12-12T05:59:53Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "172.16.73.120:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 56,
"optime" : {
"ts" : Timestamp(1513058434, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1513058434, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2017-12-12T06:00:34Z"),
"optimeDurableDate" : ISODate("2017-12-12T06:00:34Z"),
"lastHeartbeat" : ISODate("2017-12-12T06:00:37.667Z"),
"lastHeartbeatRecv" : ISODate("2017-12-12T06:00:38.189Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "172.16.73.119:27017",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "172.16.73.120:27018",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 56,
"lastHeartbeat" : ISODate("2017-12-12T06:00:37.667Z"),
"lastHeartbeatRecv" : ISODate("2017-12-12T06:00:35.077Z"),
"pingMs" : NumberLong(0),
"configVersion" : 1
}
],
"ok" : 1
}