OPTIONS
翻译或纠错本页面

配置一个延时复制节点

配置一个延时复制节点,我们需要将 priority 设置为 0hidden 设置为 true ,将 slaveDelay 设置为我们希望延时的秒数。

重要

延时节点的 slaveDelay 必须设定在oplog大小范围内。如果oplog比 slaveDelay 维护时间内的数据要短,那么延时节点将不能正常的进行复制操作。

当我们配置一个延时节点的时候,复制过程与 该节点的 oplog 都将延时。有关延时节点的更多信息请参考 延时节点

例子

下列例子会将 members 数组下标为``0``的从节点配置为了了一个延时1小时的延时节点。请连接到主节点的 mongo 并执行如下操作:

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

在复制集配置更新后,延时节点将不能成为 primary 且对应用程序是不可见的。值为3600秒(1小时)的 slaveDelay 将影响复制和该节点的 oplog

当更新修改复制集配置的时候,我们通过 members数组下标 (array index)来指定需要修改的节点。数组下标从 0 开始。不要将数组下标与 members 中的 _id 字段混淆了。

警告

  • The rs.reconfig() shell method can force the current primary to step down, which causes an election. When the primary steps down, the mongod closes all client connections. While this typically takes 10-20 seconds, try to make these changes during scheduled maintenance periods.
  • 为了能让复制集的配置修改成功应用,我们需要确保复制集的多数节点是可用的。如果我们的复制集是由偶数个节点组成的,那就需要新增一个 arbiter 来确保选举的正常进行。