#模拟主节点异常中断
[root@ba3b27d855f6 bin]# kill -9 199
[root@ba3b27d855f6 bin]# 
 #连接到其中一台备份节点
[root@ba3b27d855f6 bin]# ./mongo 172.17.0.4:27018
MongoDB shell version v3.6.3
connecting to: mongodb://172.17.0.4:27018/test
MongoDB server version: 3.6.3
Server has startup warnings: 
2018-08-10T07:12:26.849+0000 I CONTROL  [initandlisten] 
2018-08-10T07:12:26.849+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2018-08-10T07:12:26.849+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2018-08-10T07:12:26.849+0000 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2018-08-10T07:12:26.849+0000 I CONTROL  [initandlisten] 
2018-08-10T07:12:26.850+0000 I CONTROL  [initandlisten] 
2018-08-10T07:12:26.850+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-08-10T07:12:26.850+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-08-10T07:12:26.850+0000 I CONTROL  [initandlisten] 
2018-08-10T07:12:26.850+0000 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-08-10T07:12:26.850+0000 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-08-10T07:12:26.850+0000 I CONTROL  [initandlisten] 
test:SECONDARY> rs.config()
{
"_id" : "test",
"version" : 88878,
"protocolVersion" : NumberLong(1),
"members" : [
{
"_id" : 0,
"host" : "172.17.0.4:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
{
"_id" : 1,
"host" : "172.17.0.4:27018",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 0
},
{
"_id" : 2,
"host" : "172.17.0.4:27019",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 0,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 0
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatIntervalMillis" : 2000,
"heartbeatTimeoutSecs" : 10,
"electionTimeoutMillis" : 10000,
"catchUpTimeoutMillis" : -1,
"catchUpTakeoverDelayMillis" : 30000,
"getLastErrorModes" : {
},
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
},
"replicaSetId" : ObjectId("5b6d3d7e3e136dadfa2a8181")
}
}
test:SECONDARY> rs.status()
{
"set" : "test",
"date" : ISODate("2018-08-10T07:42:56.040Z"),
"myState" : 2,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"appliedOpTime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
}
},
"members" : [
{
"_id" : 0,
"name" : "172.17.0.4:27017",
"health" : 0,
"state" : 8,  #8 代表DOWN
"stateStr" : "(not reachable/healthy)",
"uptime" : 0,
"optime" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"optimeDurable" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2018-08-10T07:42:54.251Z"),
"lastHeartbeatRecv" : ISODate("2018-08-10T07:42:02.603Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "Connection refused",
"configVersion" : -1
},
{
"_id" : 1,
"name" : "172.17.0.4:27018",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1831,
"optime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-08-10T07:41:54Z"),
"infoMessage" : "could not find member to sync from",
"configVersion" : 88878,
"self" : true
},
{
"_id" : 2,
"name" : "172.17.0.4:27019",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1151,
"optime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-08-10T07:41:54Z"),
"optimeDurableDate" : ISODate("2018-08-10T07:41:54Z"),
"lastHeartbeat" : ISODate("2018-08-10T07:42:54.245Z"),
"lastHeartbeatRecv" : ISODate("2018-08-10T07:42:54.245Z"),
"pingMs" : NumberLong(0),
"configVersion" : 88878
}
],
"ok" : 1,
"operationTime" : Timestamp(1533886914, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1533886914, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
test:SECONDARY> rs.slaveOk()
test:SECONDARY> db.school.find()
{ "_id" : ObjectId("5b6d3436dc9a5ab161c121e1"), "name" : "xuaiqi", "date" : ISODate("2018-08-10T06:44:06.284Z") }
{ "_id" : ObjectId("5b6d37ce1a42350d380cb142"), "nme" : "ddddd" }
test:SECONDARY> 
test:SECONDARY> 
test:SECONDARY> var config = rs.config()
test:SECONDARY> config.members[1].priority = 1
1
test:SECONDARY> config.members[1].votes = 1
1
test:SECONDARY> config.members[0].priority = 0
0
test:SECONDARY> config.members[0].votes = 0
0
test:SECONDARY> 
test:SECONDARY> rs.reconfig(config, {"force" : true})
{
"ok" : 1,
"operationTime" : Timestamp(1533886914, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1533886914, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
test:SECONDARY> 
test:SECONDARY> 
test:SECONDARY> 
test:SECONDARY> 
test:SECONDARY> rs.status()
{
"set" : "test",
"date" : ISODate("2018-08-10T07:46:28.258Z"),
"myState" : 2,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"appliedOpTime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
}
},
"members" : [
{
"_id" : 0,
"name" : "172.17.0.4:27017",
"health" : 0,
"state" : 8,
"stateStr" : "(not reachable/healthy)",
"uptime" : 0,
"optime" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"optimeDurable" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2018-08-10T07:46:27.827Z"),
"lastHeartbeatRecv" : ISODate("2018-08-10T07:42:02.603Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "Connection refused",
"configVersion" : -1
},
{
"_id" : 1,
"name" : "172.17.0.4:27018",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 2043,
"optime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-08-10T07:41:54Z"),
"infoMessage" : "could not find member to sync from",
"configVersion" : 195180,
"self" : true
},
{
"_id" : 2,
"name" : "172.17.0.4:27019",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1363,
"optime" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1533886914, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-08-10T07:41:54Z"),
"optimeDurableDate" : ISODate("2018-08-10T07:41:54Z"),
"lastHeartbeat" : ISODate("2018-08-10T07:46:27.811Z"),
"lastHeartbeatRecv" : ISODate("2018-08-10T07:46:27.817Z"),
"pingMs" : NumberLong(0),
"configVersion" : 195180
}
],
"ok" : 1,
"operationTime" : Timestamp(1533886914, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1533886914, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
test:SECONDARY> rs.status()
{
"set" : "test",
"date" : ISODate("2018-08-10T07:46:36.524Z"),
"myState" : 1,
"term" : NumberLong(2),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1533887189, 1),
"t" : NumberLong(2)
},
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1533887189, 1),
"t" : NumberLong(2)
},
"appliedOpTime" : {
"ts" : Timestamp(1533887189, 1),
"t" : NumberLong(2)
},
"durableOpTime" : {
"ts" : Timestamp(1533887189, 1),
"t" : NumberLong(2)
}
},
"members" : [
{
"_id" : 0,
"name" : "172.17.0.4:27017",
"health" : 0,
"state" : 8,
"stateStr" : "(not reachable/healthy)",
"uptime" : 0,
"optime" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"optimeDurable" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"optimeDate" : ISODate("1970-01-01T00:00:00Z"),
"optimeDurableDate" : ISODate("1970-01-01T00:00:00Z"),
"lastHeartbeat" : ISODate("2018-08-10T07:46:34.526Z"),
"lastHeartbeatRecv" : ISODate("2018-08-10T07:42:02.603Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "Connection refused",
"configVersion" : -1
},
{
"_id" : 1,
"name" : "172.17.0.4:27018",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 2051,
"optime" : {
"ts" : Timestamp(1533887189, 1),
"t" : NumberLong(2)
},
"optimeDate" : ISODate("2018-08-10T07:46:29Z"),
"infoMessage" : "could not find member to sync from",
"electionTime" : Timestamp(1533887188, 1),
"electionDate" : ISODate("2018-08-10T07:46:28Z"),
"configVersion" : 195180,
"self" : true
},
{
"_id" : 2,
"name" : "172.17.0.4:27019",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 1372,
"optime" : {
"ts" : Timestamp(1533887189, 1),
"t" : NumberLong(2)
},
"optimeDurable" : {
"ts" : Timestamp(1533887189, 1),
"t" : NumberLong(2)
},
"optimeDate" : ISODate("2018-08-10T07:46:29Z"),
"optimeDurableDate" : ISODate("2018-08-10T07:46:29Z"),
"lastHeartbeat" : ISODate("2018-08-10T07:46:36.519Z"),
"lastHeartbeatRecv" : ISODate("2018-08-10T07:46:32.819Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "172.17.0.4:27018",
"configVersion" : 195180
}
],
"ok" : 1,
"operationTime" : Timestamp(1533887189, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1533887189, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
test:PRIMARY> exit
bye
[root@ba3b27d855f6 bin]#

MongoDB集群搭建之副本集模仿主从模式的行为的更多相关文章

  1. mongodb3.6集群搭建:分片+副本集

    mongodb是最常用的noSql数据库,在数据库排名中已经上升到了前五.这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群. 在搭建集群之前,需要首先了解几个概念:路由,分片.副本集.配置 ...

  2. MongoDB 3.6.9 集群搭建 - 切片+副本集

    1. 环境准备 在Mongo的官网下载Linux版本安装包,然后解压到对应的目录下:由于资源有限,我们采用Replica Sets + Sharding方式来配置高可用.结构图如下所示: 这里我说明下 ...

  3. mongodb 搭建集群(分片+副本集)

    mongodb  搭建集群(分片+副本集) 一.搭建结构图: 二.搭建步骤:

  4. mongodb 3.4 集群搭建升级版 五台集群

    最新版mongodb推荐使用yaml语法来做配置,另外一些旧的配置在最新版本中已经不在生效,所以我们在生产实际搭建mongodb集群的时候做了一些改进.如果大家不熟悉什么是分片.副本集.仲裁者的话请先 ...

  5. 分布式实时日志系统(一)环境搭建之 Jstorm 集群搭建过程/Jstorm集群一键安装部署

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

  6. Mysql集群搭建(多实例、主从)

    1 MySQL多实例 一 .MySQL多实例介绍 1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307,3308),运行多个MySQL服务进程,通 ...

  7. Kubernetes集群搭建之Etcd集群配置篇

    介绍 etcd 是一个分布式一致性k-v存储系统,可用于服务注册发现与共享配置,具有以下优点. 简单 : 相比于晦涩难懂的paxos算法,etcd基于相对简单且易实现的raft算法实现一致性,并通过g ...

  8. mongodb分片集群(无副本集)搭建

    数据分片节点#192.168.114.26#mongo.cnfport=2001dbpath=/data/mongodb/datalogpath=/data/mongodb/log/mongodb.l ...

  9. mongodb的分布式集群(2、副本集)

    概述        副本集是主从复制的一种,是一种自带故障转移功能的主从复制.攻克了上述主从复制的缺点.实现主server发生问题后.不需人为介入.系统自己主动从新选举一个新的主server的功能. ...

随机推荐

  1. nginx常用参数设置

    1)隐藏nginx header 版本号 使用curl -I http://www.10.0.3.46 会发现server那里显示版本号 在nginx.conf的http里添加参数server_tok ...

  2. openresty router && template 试用

      router 是一个比较方便的 openresty 路由组件,我们可以用来编写灵活强大的 web 应用,类似的 lua-resty-route 也是很不错的,但是如果是比较简单的直接可以使用 lu ...

  3. 使用kubebapps 管理helm 仓库已经应用使用Monocular专门提供helm 仓库查找

    Monocular 从1.0 开始专注于helm 的UI展示,对于部署以及维护已经去掉了,官方也提供了相关的说明以及 推荐了几个可选的部署工具,从使用以及架构上来说kubeapps 就是Monocul ...

  4. Atheros AR9285坑爹网卡仅仅有54M/65M,开启150M速率的方法

    版权声明:Max Sky 原创文章.转载时请保留全部权并以超链接形式标明文章出处.否则将追究相关法律责任. https://blog.csdn.net/maxsky/article/details/3 ...

  5. MT7628如何配置使用 Openwrt路由模式 (校园网配置)

    1.设置wan,把网线插入wan口 1) 在 MT7628 开发板上的 3 个网口默认都是“LAN 口”功能,但拨号上网一般需要用到“WAN口”的功能,所以我们需要将其中一个切换为“WAN 口”,这里 ...

  6. openstack--7--创建一台虚拟机

    回顾下前几节用到的东西 MySQL:为各个服务提供数据存储RabbitmQ:为各个服务之间提供通信提供交通枢纽Keystone:为各个服务之间通信提供认证和服务注册Glance:为虚拟机提供镜像管理N ...

  7. MySQL5.6新特性之Multi-Range Read

    一 介绍    MySQL 5.6版本提供了很多性能优化的特性,其中之一就是 Multi-Range Read 多范围读(MRR) , 它的作用针对基于辅助/第二索引的查询,减少随机IO,并且将随机I ...

  8. style-loader、css-loader、mini-css-extract-plugin 区别

    项目 区别 css-loader 处理 css 文件 style-loader 把 js 中 import 导入的样式文件代码,打包到 js 文件中,运行 js 文件时,将样式自动插入到<sty ...

  9. vue 和 react 组件间通信方法对比

    vue 和 react 组件间通信方法对比: 通信路径 vue的方法 react的方法 父组件 => 子组件 props(推荐).slot(推荐).this.$refs.this.$childr ...

  10. ElasticSearch(六)底层索引控制

    相似度算法 涉及到了ES的底层,首先讲一下ES的底层核心,相似度模型,ES的查询和传统的数据库查询最大的差别就在相似度查询(之前讲过,索引存储的最大差别就是讲非结构化数据转化为结构化),ES里面会给文 ...