许多维护工作不能在备份节点上完成 因为要写操作,也不能在主节点上进行,这就需要单机模式启动服务器, 是指重启成员服务器,让他成为一个单机运行的服务器,而不再是副本集中的一员(临时的) 在单机启动只要查看一下服务器的命令行参数 db.serverCmdLineopts() 然后启动时不要用replSet选项  制定一个别的端口好,保持dbpath不变.等维护完成后 在用启动副本集的方式启动mongod,mongodb会将维护期间落下的操作全部辅助过来,
 

可以随时修改副本集的配置 可以添加成员 删除成员 也可以修改已有的成员  很多操作都有对应的shell辅助函数  比如可以使用 rs.add为副本集添加新成员

rs.add("server-4:27017")
也可以以文档形式为新成员指定更复杂的配置
rs.add({"_id":4,"host":"iP:27017","priority":1.5,'hidden':true})
类似的 也可以从副本集中删除 成员
rs.remove("server-2:27017")
注意 删除成员时或者是除添加成员之外的其他改变副本集配置的行为 会砸shell中得到很多无法连接数据库的错误信息 这是正常的 这实际上说明配置修改成功了  重新配置副本集时 作为重新配置的最后一步
 主节点会关闭所有的连接 因此 shell中的练级会短暂断开 然后重新连接
可以通过rs.reconfig修改副本集成员的配置 修改副本集测成员配置时,有几个限制需要注意"
  1. 不能修改成员的_id
  2. 不能将接收rs.config命令的成员(通常为主节点) 的优先级设置为0
  3. 不能将总裁节点变为非仲裁节点 反之依然
  4. 不能将buildIndexes :false 的成员修改为 buildIndexes :true
重新配置副本集的时候  主节点需要先退化为普通的备份节点 以便接受新的配置 然后会恢复 要注意重新配置副本集之后 会短暂的没有主节点 之后会一切正常
 
下面是一个修改主机名的例子:
 
var config = rs=config()
config.members[1].host="server-2:27017"
rs.reconfig(config)
 
   一个副本集可以最多支持12个成员,但是只有7个成员可以参与投票。 如果要创建7个以上成员的副本集,只有7个成员可以拥有投票权,需要将其他成员的投票数量设置为0 
rs.add({"_id":4,"host":"iP:27017","votes":0}); [vot]
这样可以阻止这些成员在选举中主动票,虽然他们依然可以投否决票  尽量避免使用这个选项,应该只在创建包含7个以上成员的副本集或者希望阻止自动故障转移时 使用votes选项
 
修改成员的状态
把主节点变为备份节点  rs.stepDown(600)  这个命令可以让主节点退化为备份节点 10分钟,  不指定时间是60S
如果需要对主节点进行维护 又不希望其他成员成为主节点, 可以在每个备份节点上执行下面这个命令
阻止选举  rs.freeze()  接收一个单位是秒的时间  表示多长时间内保持备份节点状态  维护完成后  可以再次执行该命令  时间设置为0 即可.

mongodb管理副本集(持续更新中)的更多相关文章

  1. 安装 Ubuntu 21.04 后必备的绝佳应用大合集(持续更新中)

    @ 目录 一.Google Chrome 浏览器 1.下载 2.安装 3.设置搜索引擎 二.火焰截图(替代QQ截图) 1.简介: 2.安装: 3.设置快捷键: 三.VLC视频播放器(替代Potplay ...

  2. ubuntu相关软件合集(持续更新中)

    本人使用的是Ubuntu-Kylin14.04,自带了日历.输入法.优客助手等易于上手的应用.省的每次安装完原生的系统再麻烦的安装,下面介绍默认应用外的相关常用软件: 一.Keylock Applic ...

  3. PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)

    PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++:      欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...

  4. 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)

    Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...

  5. Mongodb主从复制/ 副本集/分片集群介绍

    前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集). Mong ...

  6. 白话kubernetes的十万个为什么(持续更新中...) - kubernetes

    Kubernetes简称? 答:k8s或kube. Kubernetes是什么? 答:由Google开发的一个强大的平台,可以在集群环境中管理容器化应用程序.本质上是一种特殊的数据库,里面存储的是能够 ...

  7. 史上最全的spark面试题——持续更新中

    史上最全的spark面试题——持续更新中 2018年09月09日 16:34:10 为了九亿少女的期待 阅读数 13696更多 分类专栏: Spark 面试题   版权声明:本文为博主原创文章,遵循C ...

  8. Pig基础学习【持续更新中】

    *本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.* Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapR ...

  9. Pig语言基础-【持续更新中】

      ***本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解.目前正在持续更新中.***   Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的, ...

随机推荐

  1. bable

    Babel是一个javascrpt编译器,能将es6转换为es5代码.并且通过插件的形式可以灵活的扩展. 从根目录读取.babelrc文件中读取配置..babelrc是一个json文件 配置 plug ...

  2. 关于JavaWeb开发的一些感悟

    从事JavaWeb的开发已经三年了,从最开始的啥都不会,到慢慢的能够独立做项目,从一开始的一片茫然,到现在的心中有数.对于技术.业务也有了自己的看法. JavaWeb开发所涉及到的知识点非常多,涉及到 ...

  3. 被readLine()折腾了一把

    虽然写IO方面的程序不多,但BufferedReader/BufferedInputStream倒是用过好几次的,原因是: 它有一个很特别的方法:readLine(),使用起来特别方便,每次读回来的都 ...

  4. inner join和left join 、right join 的区别?

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...

  5. 替换/重制Homebrew源

    homebrew主要分两部分:git repo(位于GitHub)和二进制bottles(位于bintray),这两者在国内访问都不太顺畅.可以替换成国内的镜像,git repo国内镜像就比较多了,可 ...

  6. 如何在vue里实现同步阻塞请求,请求完成之前不加载页面或组件?

    https://segmentfault.com/q/1010000013787292 答案: getUserInfo函数数据请求下来,设置开关flag=true,页面最外层box v-if=&quo ...

  7. nginx和php安装文件

    #!/usr/bin/env bash echo "=============START=====================" ## php echo '[php]yum i ...

  8. mysql启动错误1067的解决

    安装后MYSQL5后,发现启动出错,有时启动正常,但加接时马上出错. 出错代码:1067 解决办法如下: 删除%windows%/my.ini    删除其它地方的my.ini    在mysql安装 ...

  9. 【Android】SQLite基本用法(转)

    在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面.本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的.一. ...

  10. 【原创】设置EXCEL2010打开多个独立窗口

            最近发现一个奇怪的问题,发现office中的word和ppt在我使用笔记本分屏幕(双屏)的时候都可以将2份文档分别在2个窗口打开,但是在使用excel的时候却发现不行,最后研究发现原因 ...