mongodb 副本集主从手动切换

本贴最后更新于 1608 天前,其中的信息可能已经事过景迁

一、方法一 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[0].priority = 3 //修改 config 变量,第三组成员的优先级为 3.优先级 1-100,数字越大,优先级越高
  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. }
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 113 回帖 • 316 关注
  • V2Ray
    1 引用 • 15 回帖
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 108 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖 • 3 关注
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 558 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 7 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 73 回帖
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 11 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖
  • CodeMirror
    1 引用 • 2 回帖 • 116 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 290 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    492 引用 • 1383 回帖 • 373 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    34 引用 • 37 回帖 • 497 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    60 引用 • 287 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 452 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 38 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 6 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    330 引用 • 614 回帖
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1347 回帖
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 512 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    164 引用 • 407 回帖 • 526 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    140 引用 • 441 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖