问题陈述:
需要将延迟节点(30 分钟)的隐藏节点也提升为主节点。我想在主/辅助数据损坏的情况下测试这个延迟节点功能。
我有一个带有4节点副本集的测试环境:
10.0.0.1 - 隐藏延迟节点(30 分钟)
10.0.0.2 - 主节点
10.0.0.3 - 辅助节点
10.0.0.4 - 隐藏延迟节点(1小时)
以下是我尝试过的步骤:
使用一个简单的脚本将一些数据添加到主节点中并在隐藏节点上检查是否存在新数据。直到接下来的 30 分钟才出现数据。
停止主节点 10.0.0.2 和 10.0.0.3 然后成为主节点。
以下命令将隐藏提升为主要。
cfg = rs.conf()
cfg.members[0].hidden = false
cfg.members[0].priority = 1
rs.reconfig(cfg, {force : true})
rs.reconfig(cfg)
在上面的命令中,我缺少要使用的从属延迟。不确定将该节点提升为主节点的正确方法是什么。
鉴于您不关心当前主节点和辅助节点最近 30 分钟的更新,您可能会让它们离线。在运行 rs.reconfig(cfg, {force : true}) 之前,将主节点和辅助节点的优先级和投票更改为 0。
10.0.0.1 - 隐藏延迟节点(30 分钟)应作为新的主节点出现。 现在让旧的主要和次要重新上线。 最后 30 分钟的更新(可能包括删除收集命令)应该回滚删除。