配置延迟自管理副本集成员
要配置延迟的辅助成员,请设置其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版本之间有所不同。