MongoDB高可用集群搭建

栏目: 数据库 · 发布时间: 5年前

内容简介:准备三台服务器:10.175.120.131(主节点)10.175.121.134(副本节点)

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:备份节点

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

图解设计模式

图解设计模式

结城浩 / 杨文轩 / 人民邮电出版社 / 2017-1-1 / CNY 79.00

原版连续畅销12年、重印25次! 194张图表 + Java示例代码 = 轻松理解GoF的23种设计模式 《程序员的数学》《数学女孩》作者结城浩又一力作 ◆图文并茂 194张图表(包括57张UML类图)穿插文中,帮助理解各设计模式 ◆通俗易懂 用浅显的语言逐一讲解23种设计模式,读完此书会发现GoF书不再晦涩难懂 ◆专业实用 编写了Java程序代码来......一起来看看 《图解设计模式》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具