配置延迟副本集节点
要配置延迟的从节点,请将其 members[n].priority
值设置为0
, 将members[n].hidden
设置为true
,并将其members[n].secondaryDelaySecs
值设置为要延迟的秒数。
IMPORTANT
members[n].secondaryDelaySecs
的时间长度必须适合 oplog 的窗口。如果 oplog 比members[n].secondaryDelaySecs
窗口短,则延迟成员无法成功复制操作。当您配置延迟节点时,延迟既适用于复制,也适用于节点的oplog。有关延迟节点及其使用的详细信息,请参阅 延迟副本集节点。
例子
以下示例为当前位于数组索引处的从节点设置 1 小时的0
延迟 members
。要设置延迟,请发出以下操作序列mongosh
连接到主节会话:
cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[0].hidden = true
cfg.members[0].secondaryDelaySecs = 3600
rs.reconfig(cfg)
副本集重新配置后,延迟的从节点无法成为主节点,并且对应用程序是隐藏的。该 members[n].secondaryDelaySecs
值将复制并且节点的oplog延迟3600 秒(1 小时)。
更新副本配置对象时,使用数组索引members
访问数组 中的副本集节点。数组索引以. 不要将此索引值与数组中每个文档中的 字段值混淆。0
members[n]._id
members
WARNING
- shell 方法可以强制当前
rs.reconfig()
primary 下台,从而导致选举。当主节点关闭时,mongod
关闭所有客户端连接。虽然这通常需要 10-20 秒,但请尝试在计划的维护期间进行这些更改。- 避免重新配置包含不同 MongoDB 版本节点的副本集,因为验证规则可能因 MongoDB 版本而异。
相关文件
原文链接 - https://docs.mongodb.com/manual/tutorial/configure-a-delayed-replica-set-member/
译者:陆文龙