暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Mongodb rs.stepDown

wzf0072 2025-07-02
160

rs.stepDown()

描述

rs.stepDown(stepDownSecs,secondaryCatchUpPeriodSecs )

指示副本集的主节点成为 辅助节点。小学选举结束后,合格的中学将举行小学选举。

该方法不会立即降级主要数据库。如果没有 electable备用服务器与主服务器保持最新,则主服务器最多等待 secondaryCatchUpPeriodSecs(默认情况下为10秒)以使备用服务器追赶。一旦有可选的辅助节点可用,该方法将降低主节点。

降级后,原始的主要节点将成为辅助节点,并且在所指定的剩余时间内没有资格再次成为主要节点stepDownSecs。


有关该方法执行的详细说明,请参见Behavior。

注意

该方法仅对主要对象有效,并且在非主要成员上运行时会引发错误。

该rs.stepDown()方法具有以下参数:

参数类型描述
stepDownSecs数

降级主节点的秒数,在此期间,降级成员不符合成为主节点的资格。如果指定非数字值,该命令将使用60秒。

降压周期从mongod接收命令的时间开始 。降低周期必须大于secondaryCatchUpPeriodSecs。

secondaryCatchUpPeriodSecs数

可选的。mongod等待可选举的辅助节点赶上主要节点的秒数。

指定后,将secondaryCatchUpPeriodSecs 覆盖默认的等待时间(10秒)。

rs.stepDown()提供围绕命令的包装replSetStepDown。

行为


并行操作

该rs.stepDown()方法尝试终止长时间运行的用户操作,这些操作会阻止主数据库降级,例如索引构建,写操作或映射减少作业。

合格中学的可用性

然后,该方法会启动一个追赶期,在此期间它最多等待 secondaryCatchUpPeriodSeconds,默认情况下为10秒,以使辅助节点与主节点保持最新状态。仅当辅助数据库在追赶期间与主数据库保持最新时,主数据库才会降级,以防止回滚。

如果在等待期结束时没有可选举的辅助节点满足此标准,则主要节点不会降级并且方法会出错。

一旦主节点成功下台,该节点就无法在该stepDownSecs时段的剩余时间内成为主节点,该剩余时间在该节点接收该方法时开始。

客户端连接

从MongoDB 4.2开始,rs.stepDown()方法不再关闭所有客户端连接。


在MongoDB 4.0和更早版本中,rs.stepDown()方法在降级期间关闭所有客户端连接。因为断开连接包括用于运行方法的连接,所以如果方法成功完成,则无法检索方法的返回状态。如果方法出错,则只能检索该方法的返回状态。在脚本中运行4.0及更早版本的方法时,脚本应解决此问题。

在降压期间写入

注意

在从rs.stepDown()接收该方法开始的时间段内,所有对主数据库的写入都会失败, 直到选择了新的主数据库,或者如果没有可选举的辅助数据库,则原始主数据库将恢复正常操作。

rs.stepDown()运行时正在进行的写入将被杀死。进行中的事务 也会失败,并显示“ TransientTransactionError”,并且可以整体重试。

写入失败的时间最多为:

secondaryCatchUpPeriodSecs(预设为10秒)+ electionTimeoutMillis(预设为10秒)。

选举交接

在版本4.0.2中更改:如果参数enableElectionHandoff为true(默认值),则当主要节点从rs.stepDown() (或replSetStepDown不带的命令)降级时,降级的主要节点将提名合格的辅助节点立即召集选举。否则,次要人员可以等到选举开始。降级的主服务器不等待切换的效果。有关更多信息,请参见 。force: truesettings.electionTimeoutMillisenableElectionHandoff

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论