配置延迟自管理副本集成员
要配置延迟的辅助成员,请设置其members[n].priority
的值为0
,其members[n].hidden
的值为true
,以及其members[n].secondaryDelaySecs
的值为延迟的秒数。
重要
辅助成员的members[n].secondaryDelaySecs
的长度必须适合oplog的时间窗口。如果oplog比members[n].secondaryDelaySecs
窗口短,延迟的成员无法成功复制操作。
配置延迟成员时,延迟既适用于复制也适用于成员的oplog。有关延迟成员及其用途的详细信息,请参阅延迟副本集成员。
示例
以下示例将一个位于members
数组索引0
的辅助成员延迟设置为1小时。要在连接到主节点的mongosh
会话中设置延迟,请执行以下操作序列: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
的值将复制和成员的操作日志延迟3600秒(1小时)。
在更新副本集配置对象时,使用数组索引通过members
数组访问副本集成员。数组索引从0
开始。请勿将此索引值与members[n]._id
字段的值混淆,该字段位于members
数组中的每个文档中。
警告
rs.reconfig()
shell方法可以强制当前主节点下线,从而引发选举。当主节点下线时,mongod
关闭所有客户端连接。虽然这通常需要10-20秒,但请在计划维护期间尝试这些更改。避免重新配置包含不同MongoDB版本成员的副本集,因为验证规则可能在不同MongoDB版本之间有所不同。