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

rs.stepDown()

rs.stepDown(stepDownSecs, secondaryCatchUpPeriodSecs)

指示副本集的主节点(primary node)成为从节点(secondary)。在主节点结束后,合格的从节点将会举行选举。

该方法不会立即结束主节点。如果从节点中没有与主节点保持同步的节点,则主节点会等待secondaryCatchUpPeriodSecs(默认为10秒)以便从节点赶上。一旦出现可选择的从节点,该方法就会降级主节点。

一旦降级,原来的主节点成为从节点的,并且不再有资格在stepDownSecs指定的剩余时间内再次成为主节点。

注意

该方法仅对主节点有效,如果在非主节点上运行,则会引发错误。

执行过程:

rs.stepDown()方法尝试终止长时间运行的用户操作,因为这些操作会阻止主服务器降级,如索引构建,写入操作或map-reduce作业。

然后该方法启动一个追赶期,在此期间会等待SecondaryCatchUpPeriodSeconds所指定的时间(默认为10秒),使从节点追上主节点,变为最新。主节点只有在从节点追上主节点的时候才会进行降级操作,以此来防止回滚。

如果在等待期结束时没有从节点符合此标准,则主节点不会降级,并且抛出方法错误。

一旦主节点降级成功,该节点就不能在stepDownSecs所指定的时间内再次成为主节点,这个时间从节点开始接收到方法开始。 rs.stepDown()方法强制当前连接到数据库的所有客户端断开连接。这有助于确保客户端与副本集维持一个的准确视图(view)。

由于断开连接包括用于运行方法的连接,因此如果方法成功完成,则无法检索方法的返回状态。如果错误发生,您只能检索方法的返回状态。在脚本中运行该方法时,脚本应考虑此行为。

注意

在接收到rs.stepDown()方法开始的时间段内,所有写入主节点的写入操作都会失败,直到选出新的主节点或者没有可用的从节点为止,原来的主节点才会恢复正常操作。写入失败的时间最长:

secondaryCatchUpPeriodSecs(默认为10秒)+ electionTimeoutMillis(默认为10秒)。

原文地址:https://docs.mongodb.com/manual/reference/method/rs.stepDown/

mongodb replication set 主从切换的更多相关文章

  1. MySQL Replication之主从切换

    在生产环境中,我们的架构很多都是一主多从.比如一个主数据库服务器M,两个从数据库服务器S1,S2同时指向主数据库服务器M.当主服务器M因为意外情况宕机,需要将其中的一个从数据库服务器(假设选择S1)切 ...

  2. mongodb主从备份 和 手动主从切换

    环境: 主机A:172.16.160.91 主机B:172.16.160.92 配置主机A [root@master zhxf]# cat docker-compose.yml version: '3 ...

  3. Mycat读写分离、主从切换、分库分表的操作记录

    系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...

  4. redis 主从配置,主从切换

    只需修改从配置文件 # slaveof <masterip> <masterport> slaveof 127.0.0.1 6379 # masterauth <mast ...

  5. Redis哨兵模式(sentinel)部署记录(主从复制、读写分离、主从切换)

    部署环境: CentOS7.5  192.168.94.11 (master) 192.168.94.22 (slave0) 192.168.94.33 (slave1) 192.168.94.44 ...

  6. Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)

    Redis的集群方案大致有三种:1)redis cluster集群方案:2)master/slave主从方案:3)哨兵模式来进行主从替换以及故障恢复. 一.sentinel哨兵模式介绍Sentinel ...

  7. PostgreSQL手动主从切换

    主从切换操作: 1>主库宕机或者测试主备切换情况下停掉主库:systemctl stop postgres 从库会报日志错误信息:[root@db02 /]# cd /var/postgresq ...

  8. Redis集群的主从切换研究

    目录 目录 1 1. 前言 1 2. slave发起选举 2 3. master响应选举 5 4. 选举示例 5 5. 哈希槽传播方式 6 6. 一次主从切换记录1 6 6.1. 相关参数 6 6.2 ...

  9. Mycat读写分离、主从切换学习(转)

    http://blog.csdn.net/zhanglei_16/article/details/50707487 Mycat读写分离.主从切换学习问题一:分表.分库的优缺点,以及分表无法成为主流分表 ...

随机推荐

  1. 渗透测试神器Burp Suite v1.7.11发布(含下载)

    BurpSuite是一款信息安全从业人员必备的集成型的渗透测试工具,它采用自动测试和半自动测试的方式,包含了Proxy,Spider,Scanner,Intruder,Repeater,Sequenc ...

  2. Model Validation 和测试Post参数

    using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentM ...

  3. extract()和extact_first()的区别

    extract()和extact_first()都是提取Selector的data部分.但现在你要先知道什么是Selector. Selector是选择器的意思.具体定义我不知道,但通过下面的例子,你 ...

  4. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:包装类

    public class WrapperDemo01{ public static void main(String args[]){ int x = 30 ; // 基本数据类型 Integer i ...

  5. upload-labs-env文件上传漏洞 11-19关

    Pass-11 源码:加上了本人的注释=.= $is_upload = false; $msg = null; if(isset($_POST['submit'])){ $ext_arr = arra ...

  6. ETC系列产品非接触式读卡器方案:SI522

    随着科技的不断发展,出行上高速这是非常寻常的事.但是在很多节假日高峰时期,在高速路口塞车缴费给很多车主造成很大的烦心.为了解决这一系列的问题,科技发明了ETC这种便捷式缴费技术,让车主们顺畅通过高速路 ...

  7. windows系统下使用mycat实现mysql数据库的主从复制,从而实现负载均衡

    在之前有记录过在一台系统中安装多台数据库,同时实现主从复制,但是那个主从复制只是一个基于dosc命令的,再实际的开发中我们不会去直接连接数据库,一般情况下我们也是通过间接的采用一些中间件去连接,本来是 ...

  8. redis 模糊查询与删除

    创建一条数据 set  name1  zhangsan 查询 get name1 在创建一条数据 set name2 lisi 查询 get name2 模糊查询 keys name* 查询结果  n ...

  9. 前端构建工具gulp超详细配置, 使用教程(图文)

    流程 1. 输入命令(可以使用git bash或者命令控制台cmd) npm install -g gulp 安装全局gulp命令 2. 创建一个项目文件夹, 当前项目文件夹下输入命令npm init ...

  10. linux 下office软件推荐

    概述 最近想使用LINUX下搭建服务器,所以查找一些需要用的软件. linux下最好的office解决办法 其实因为我是不怎么使用office的,我也不知道不同office有什么不一样,直到有一次写奖 ...