一、方法一rs.setpDown()

将Primary节点降级为Secondary节点

myapp:PRIMARY> rs.stepDown()

这个命令会让primary降级为Secondary节点,并维持60s,如果这段时间内没有新的primary被选举出来,这个节点可以要求重新进行选举。

也可手动指定时间

myapp:PRIMARY> rs.stepDown(30)

在执行完该命令后,原Secondary node3:27017升级为Primary。

二、方法二优先级设置

思路:
1.为了保证数据的一致性,必须先关闭应用的写服务。
2.提升要升级为Primary节点的Secondary节点的优先级。

操作如下:

点击(此处)折叠或打开

  1. arps:PRIMARY> config=rs.conf()                //查看当前配置,存入config变量中。
  2. arps:PRIMARY> config.members[2].priority = 3  //修改config变量,第三组成员的优先级为3.
  3. arps:PRIMARY> rs.reconfig(config)             //配置生效
  4. ......
  5. ......
  6. 2017-12-22T15:19:56.596+0800 I NETWORK trying reconnect to 127.0.0.1:27017 (127.0.0.1) failed
  7. 2017-12-22T15:19:56.597+0800 I NETWORK reconnect 127.0.0.1:27017 (127.0.0.1) ok
  8. arps:SECONDARY> rs.conf()                    //查看当前配置
  9. {
  10. "_id" : "arps",
  11. "version" : 4,
  12. "members" : [
  13. {
  14. "_id" : 0,
  15. "host" : "172.17.4.37:27017",
  16. "arbiterOnly" : false,
  17. "buildIndexes" : true,
  18. "hidden" : false,
  19. "priority" : 1,
  20. "tags" : {
  21. },
  22. "slaveDelay" : 0,
  23. "votes" : 1
  24. },
  25. {
  26. "_id" : 1,
  27. "host" : "172.17.4.38:27017",
  28. "arbiterOnly" : false,
  29. "buildIndexes" : true,
  30. "hidden" : false,
  31. "priority" : 1,
  32. "tags" : {
  33. },
  34. "slaveDelay" : 0,
  35. "votes" : 1
  36. },
  37. {
  38. "_id" : 2,
  39. "host" : "172.17.4.39:27017",
  40. "arbiterOnly" : false,
  41. "buildIndexes" : true,
  42. "hidden" : false,
  43. "priority" : 3,             //优先级变为3
  44. "tags" : {
  45. },
  46. "slaveDelay" : 0,
  47. "votes" : 1
  48. }
  49. ],
  50. "settings" : {
  51. "chainingAllowed" : true,
  52. "heartbeatTimeoutSecs" : 10,
  53. "getLastErrorModes" : {
  54. },
  55. "getLastErrorDefaults" : {
  56. "w" : 1,
  57. "wtimeout" : 0
  58. }
  59. }
  60. }
  61. arps:SECONDARY> rs.status()
  62. {
  63. "set" : "arps",
  64. "date" : ISODate("2017-12-22T07:25:04.641Z"),
  65. "myState" : 2,
  66. "syncingTo" : "172.17.4.39:27017",
  67. "members" : [
  68. {
  69. "_id" : 0,
  70. "name" : "172.17.4.37:27017",
  71. "health" : 1,
  72. "state" : 2,
  73. "stateStr" : "SECONDARY",
  74. "uptime" : 7597536,
  75. "optime" : Timestamp(1513927481, 3),
  76. "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
  77. "syncingTo" : "172.17.4.39:27017",
  78. "configVersion" : 4,
  79. "self" : true
  80. },
  81. {
  82. "_id" : 1,
  83. "name" : "172.17.4.38:27017",
  84. "health" : 1,
  85. "state" : 2,
  86. "stateStr" : "SECONDARY",
  87. "uptime" : 7597426,
  88. "optime" : Timestamp(1513927481, 3),
  89. "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
  90. "lastHeartbeat" : ISODate("2017-12-22T07:25:02.961Z"),
  91. "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.091Z"),
  92. "pingMs" : 0,
  93. "syncingTo" : "172.17.4.39:27017",
  94. "configVersion" : 4
  95. },
  96. {
  97. "_id" : 2,
  98. "name" : "172.17.4.39:27017",
  99. "health" : 1,
  100. "state" : 1,
  101. "stateStr" : "PRIMARY",    //最后一个节点升级为PRIMARY
  102. "uptime" : 3202,
  103. "optime" : Timestamp(1513927481, 3),
  104. "optimeDate" : ISODate("2017-12-22T07:24:41Z"),
  105. "lastHeartbeat" : ISODate("2017-12-22T07:25:02.951Z"),
  106. "lastHeartbeatRecv" : ISODate("2017-12-22T07:25:04.344Z"),
  107. "pingMs" : 0,
  108. "electionTime" : Timestamp(1513927190, 2),
  109. "electionDate" : ISODate("2017-12-22T07:19:50Z"),
  110. "configVersion" : 4
  111. }
  112. ],
  113. "ok" : 1
  114. }
 
整理自:
https://www.cnblogs.com/ivictor/p/6804408.html
http://blog.chinaunix.net/uid-26446098-id-5781440.html

MongoDB 副本集主从切换方法的更多相关文章

  1. mongodb副本集自动切换修复节点解决方案

    副本集部署 1.启动mongod 在每台运行mongod服务的机器上增加配置文件/etc/mongodb-rs.conf,内容为: [root@MongodbF-A etc]# vi /etc/mon ...

  2. mongodb replication set 主从切换

    今天被问到mongodb副本集主从切换的问题,然后发现没有相关命令的中文文档,这里翻译记录一下 rs.stepDown() rs.stepDown(stepDownSecs, secondaryCat ...

  3. mongodb副本集高可用架构

    一.简介 Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点. Mongodb Driver(客户端)的所有数据都写入Primary,Sec ...

  4. mongodb副本集实现

    目录 1. 简单介绍 primary: secondary: arbiter: 2.系统环境设置: 3.安装mongodb 安装mongodb 增加配置文件: 添加启动脚本 3. 副本集实现: 1. ...

  5. MongoDB 副本集的原理、搭建、应用

    概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...

  6. 创建mongodb副本集操作实例

    一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...

  7. nodejs+mongoose操作mongodb副本集实例

    继上一篇设置mongodb副本集之后,开始使用nodejs访问mongodb副本集: 1:创建项目     express 项目名称 2:npm install mongoose    安装mongo ...

  8. linux上安装MongoDB副本集(带keyfile安全认证以及用户权限)

    搭建前准备 MongoDB版本:4.0 主要参考搭建MongoDB副本集网站:https://www.jianshu.com/p/f021f1f3c60b 安装之前最好先确定一下几点: 防火墙关闭 M ...

  9. MongoDB副本集(一主两从)读写分离、故障转移功能环境部署记录

    Mongodb是一种非关系数据库(NoSQL),非关系型数据库的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模 ...

随机推荐

  1. PAT(B) 1044 火星数字(Java)进制转换

    题目链接:1044 火星数字 (20 point(s)) 题目描述 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, ...

  2. 二十三、uevnet机制和U盘自动挂载

    一.uevent机制 在分析之前,我们首先要知道uevent作用是什么.在此我们先来看一个uevent机制的框架图: 该图片来自:Linux设备模型(3)_Uevent 通过图片我们可以确定ueven ...

  3. netty--使用注意事项

  4. vue防止闪屏小技巧:[v-cloak]

    css 内添加此属性[v-cloak] { display: none; } html中引入即可 <div v-cloak> {{ message }} </div> 如果觉得 ...

  5. 用ASP.NET Web API技术开发HTTP接口(二)

    在第一部分,我们创建了一个基本的ASP.NET Web API项目,新建成功了数据表,然后添加了一些测试数据,最后创建了API控制器,用json格式把数据表里面的内容成功输出到浏览器上.接下来我们将继 ...

  6. easyExcel用于导入导出

    1.添加依赖: <!-- 现在已经更新到1.1.2-beta5 --> <dependency> <groupId>com.alibaba</groupId& ...

  7. 【转载】Session对象的作用以及常见属性

    Session对象是Asp.Net应用程序中非常重要的一个内置对象,Session是指用户从打开浏览器访问服务器到关闭浏览器之间的会话状态,在一个会话期间,服务器会自动分配一个标识SessionId. ...

  8. Java 之 文件过滤器

    在学习过滤器之前,先来做一个案例. 题目:文件搜索,搜索 D:\java 目录中 .java 文件. 分析: 1.  目录搜索,无法判断多少级目录,使用递归,遍历所有目录 2.  遍历目录时,获取的子 ...

  9. visualSVN server 安装成功,但是无法连接,url打不开

    转自:https://www.oschina.net/question/878142_91825 点击开始–>程序->VisualSVN–>VisuaSVN Server Manag ...

  10. 低功耗蓝牙UUID三种格式转换

    熟悉BLE技术同学应该对UUID不陌生,服务.特征值.描述都是有UUID格式定义. 蓝牙广播中对服务UUID格式定义都有三种16 bit UUID.32 bit UUID.128 bit UUID. ...