配置延迟的自管理副本集成员
要配置延迟的从从节点(secondary node from replica set)成员,设立其 members[n].priority
值设置为0
,将其members[n].hidden
值设置为true
,将其members[n].secondaryDelaySecs
值设置为延迟的秒数。
重要
从节点 members[n].secondaryDelaySecs
的长度必须适合 oplog 的窗口。如果 oplog 比members[n].secondaryDelaySecs
窗口短,则延时节点无法成功复制操作。
配置延时节点时,延时既适用于复制,也适用于节点的 oplog。有关延时节点及其用途的详细信息,请参阅延时副本集节点。
例子
以下示例在当前位于members
数组中索引0
的从节点上设置了1小时延迟。 要设置延迟,请在连接到主节点的 mongosh
会话中发出以下操作序列:
cfg = rs.conf() cfg.members[0].priority = 0 cfg.members[0].hidden = true cfg.members[0].secondaryDelaySecs = 3600 rs.reconfig(cfg)
副本集重新配置后,延迟的从节点成员无法成为从节点(secondary node from replica set)主节点 (primary node in the replica set),并且对应用程序隐藏。 members[n].secondaryDelaySecs
值会将复制和成员的oplog延迟3600秒( 1小时)。
更新副本配置对象时,使用数组索引访问 members
数组中的副本集成员。数组索引以 0
开头。请勿将此索引值与 members
数组中每个文档的 members[n]._id
字段的值混淆。
警告
rs.reconfig()
shell 方法可以强制当前的主节点下台,从而导致选举。当主服务器向下运行时,mongod
会关闭所有客户端连接。 虽然这通常需要 10-20 秒,但请尝试在计划维护期间进行这些更改。避免重新配置包含不同 MongoDB 版本节点的副本集,因为验证规则可能因 MongoDB 版本而异。