配置延迟副本集成员

在本页面

要配置延迟的辅助成员,请将其members[n].priority值设置为0,将其members[n].hidden值设置为true,并将其members[n].slaveDelay值设置为要延迟的秒数。

Important

次要members[n].slaveDelay的长度必须适合 oplog 的窗口。如果操作日志比members[n].slaveDelay窗口短,则延迟的成员无法成功复制操作。

配置延迟的成员时,该延迟既适用于复制也适用于成员的oplog。有关延迟成员及其用途的详细信息,请参见延迟副本集成员

Example

下面的示例对members数组中当前位于索引0的辅助成员设置 1 小时的延迟。要设置延迟,请在连接到主服务器的mongo shell 中发出以下操作序列:

cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[0].hidden = true
cfg.members[0].slaveDelay = 3600
rs.reconfig(cfg)

重新配置副本集后,延迟的辅助成员不能成为primary,并且对应用程序不可见。 members[n].slaveDelay值将复制和成员的oplog都延迟 3600 秒(1 小时)。

更新副本配置对象时,请使用 array index 访问members数组中的副本集成员。数组索引以0开头。不要将此索引值与members数组中每个文档中members[n]._id字段的值混淆。

Warning

  • rs.reconfig() shell 方法可以强制当前主节点降级,从而导致election。当主服务器降级时,mongod关闭所有 Client 端连接。尽管这通常需要 10 到 20 秒,但请尝试在计划的维护期间进行这些更改。

  • 避免重新配置包含不同 MongoDB 版本成员的副本集,因为验证规则在 MongoDB 版本之间可能有所不同。