搭建高可用的mongodb副本集(1主,1從,1仲裁)

一、搭建高可用的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

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章