MongoDB高可用集群搭建

database

MongoDB高可用集群搭建

 

MongoDB副本集搭建

准备三台服务器:

  10.175.120.131(主节点)

  10.175.121.134(副本节点)

  10.175.121.136(副本节点)

1.分别在每台服务器上安装MongoDB,并通过配置文件启动服务,配置文件如下:

dbpath=/data/db               #指定数据库路径

logpath=/data/mongodb.log #指定日志文件路径

logappend=true #在日志文件持续添加

port=27017 #端口号

bind_ip=0.0.0.0 #允许远程访问

fork=true #后台运行

replSet=admin #设置副本集名称

 2.进入MongoDB后台管理 Shell 

./momgo

3.使用admin数据库

> use admin

4. 定义副本集配置变量,这里的 _id:”admin” 和配置文件中的“replSet=admin” 要保持一致

> config = { _id:"admin",

       members:[

     {_id:0,host:"10.175.120.131:27017"},

        {_id:1,host:"10.175.121.134:27017"},

        {_id:2,host:"10.175.121.136:27017"}

      ]

}

 5.初始化副本集配置

> rs.initiate(config)

6.查看集群节点的状态

> rs.status()

 输出:

{

"set" : "admin",

"date" : ISODate("2018-09-21T08:52:24.064Z"),

"myState" : 1,

"term" : NumberLong(3),

"heartbeatIntervalMillis" : NumberLong(2000),

"optimes" : {

"lastCommittedOpTime" : {

"ts" : Timestamp(1537519943, 1),

"t" : NumberLong(3)

},

"readConcernMajorityOpTime" : {

"ts" : Timestamp(1537519943, 1),

"t" : NumberLong(3)

},

"appliedOpTime" : {

"ts" : Timestamp(1537519943, 1),

"t" : NumberLong(3)

},

"durableOpTime" : {

"ts" : Timestamp(1537519943, 1),

"t" : NumberLong(3)

}

},

"members" : [

{

"_id" : 1,

"name" : "10.175.120.131:27017",

"health" : 1, "state" : 1,

"stateStr" : "PRIMARY",

"uptime" : 5874,

"optime" : {

"ts" : Timestamp(1537519943, 1),

"t" : NumberLong(3)

},

"optimeDate" : ISODate("2018-09-21T08:52:23Z"),

"electionTime" : Timestamp(1537514082, 1),

"electionDate" : ISODate("2018-09-21T07:14:42Z"),

"configVersion" : 1,

"self" : true

},

{

"_id" : 2,

"name" : "10.175.121.134:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 5861,

"optime" : {

"ts" : Timestamp(1537519933, 1),

"t" : NumberLong(3)

},

"optimeDurable" : {

"ts" : Timestamp(1537519933, 1),

"t" : NumberLong(3)

},

"optimeDate" : ISODate("2018-09-21T08:52:13Z"),

"optimeDurableDate" : ISODate("2018-09-21T08:52:13Z"),

"lastHeartbeat" : ISODate("2018-09-21T08:52:23.012Z"),

"lastHeartbeatRecv" : ISODate("2018-09-21T08:52:23.584Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "10.175.120.131:27017",

"configVersion" : 1

},

{

"_id" : 3,

"name" : "10.175.121.136:27017",

"health" : 1,

"state" : 2,

"stateStr" : "SECONDARY",

"uptime" : 5866,

"optime" : {

"ts" : Timestamp(1537519933, 1),

"t" : NumberLong(3)

},

"optimeDurable" : {

"ts" : Timestamp(1537519933, 1),

"t" : NumberLong(3)

},

"optimeDate" : ISODate("2018-09-21T08:52:13Z"),

"optimeDurableDate" : ISODate("2018-09-21T08:52:13Z"),

"lastHeartbeat" : ISODate("2018-09-21T08:52:23.013Z"),

"lastHeartbeatRecv" : ISODate("2018-09-21T08:52:23.558Z"),

"pingMs" : NumberLong(0),

"syncingTo" : "10.175.120.131:27017",

"configVersion" : 1

}

],

"ok" : 1,

"operationTime" : Timestamp(1537519943, 1),

"$clusterTime" : {

"clusterTime" : Timestamp(1537519943, 1),

"signature" : {

"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),

"keyId" : NumberLong(0)

}

}

}

 输出部分参数说明:

"health" : 1,              #代表机器正常 

"stateStr" : "PRIMARY", #代表是主节点,可读写,其中有以下几下状态

1. STARTUP:刚加入到复制集中,配置还未加载

2. STARTUP2:配置已加载完,初始化状态

3. RECOVERING:正在恢复,不适用读

4. ARBITER: 仲裁者

5. DOWN:节点不可到达

6. UNKNOWN:未获取其他节点状态而不知是什么状态,一般发生在只有两个成员的架构,脑裂

7. REMOVED:移除复制集

8. ROLLBACK:数据回滚,在回滚结束时,转移到RECOVERING或SECONDARY状态

9. FATAL:出错。查看日志grep “replSet FATAL”找出错原因,重新做同步

10. PRIMARY:主节点

11. SECONDARY:备份节点

以上是 MongoDB高可用集群搭建 的全部内容, 来源链接: utcz.com/z/534800.html

回到顶部