zoukankan      html  css  js  c++  java
  • mongodb replication set 主从切换

    今天被问到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/

  • 相关阅读:
    【BZOJ4826】【HNOI2017】影魔(扫描线,单调栈)
    【BZOJ4540】【HNOI2016】序列(莫队)
    【NOIP2017】列队(Splay)
    ZJOI2018酱油记
    【BZOJ4828】【HNOI2017】大佬(动态规划)
    【NOIP2017】宝藏(状态压缩,动态规划)
    【HDU4336】Card Collector (动态规划,数学期望)
    【HDU4652】Dice(数学期望,动态规划)
    【BZOJ4945】【NOI2017】游戏(搜索,2-sat)
    【BZOJ3714】Kuglarz(最小生成树)
  • 原文地址:https://www.cnblogs.com/S-tec-songjian/p/8823320.html
Copyright © 2011-2022 走看看