一、方法一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. AVR单片机教程——点亮第一个LED

    做了这么多准备,我们终于可以开始用开发板做点事了. 单片机编程与计算机编程有一些不同点.程序都要有零个或多个输入.一个或多个输出,这是两者都有的,但是计算机编程的输入输出主要靠控制台,而单片机没有. ...

  2. PowerBuilder学习笔记之根据新PBL文件替换pbd文件的方法

    在程序目录上右键,选择Build Runtime Library 在Build Runtime Library 页面点击OK,注意,会将全部的文件重新编译

  3. Windows方便得运行jar文件

    新建文本文档,文件扩展名为“.bat”,然后输入下面内容: @echo off java -jar % pause 以后就只要拖动jar文件到这个bat文件上就行.

  4. Python之Flask

    一.Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 BSD 授权. Flask是一个轻 ...

  5. H5表单新特性

    1.HTML5表单新特性之——新的input type <input type=" "> HTML5之前已有的input type: text.password.rad ...

  6. EntityFramework进阶(五)- 分页

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处 我们创建分页信息类CommonPagedList,包含了字段总条数,总页数,当前页码,页大小,当前页数据. us ...

  7. Arc Engine二次开发——弹窗进行属性查询

    在Arcmap中使用Sapefile格式的矢量数据时,经常会用到其属性查询的功能,弹出窗体然后用户鼠标点击或手动输入查询条件,进而查询到感兴趣的要素.在AE二次开发中也经常需要这个功能,于是在此记录整 ...

  8. MySQL常见问题集锦及注意事项

    一.表设计上的坑 1.字段设计 1.1 字段类型设计 尽量使用整型表示字符串: `INET_ATON(str)`,address to number `INET_NTOA(number)`,numbe ...

  9. DbTemplate

    package com.me.dbComponent; import java.sql.Connection; import java.sql.PreparedStatement; import ja ...

  10. linux reboot ,shutdown,halt区别

    reboot ,shutdown,halt区别 重启   reboot  和 shutdown -r now  效果是一样的都是重启 区别在于reboot 是重启时,删除所有的进程,为不是平稳的终止他 ...