配置一个隐藏的副本集节点
隐藏成员是副本集的一部分,但不能成为 主节点,并且对客户端应用程序不可见。隐藏节点可以在选举中投票。有关隐藏节点及其用途的更多信息,请参阅 隐藏副本集节点。
注意事项
隐藏节点最常见的用途是支持延迟节点。如果您只需要防止节点成为主节点,请配置优先级为 0 的节点。
如果settings.chainingAllowed
设置允许从节点从其他从节点同步,则默认情况下,MongoDB 在选择同步目标时优先选择非隐藏节点而不是隐藏节点。MongoDB 只会选择隐藏节点作为最后的手段。如果您希望辅助从隐藏节点同步,请使用 replSetSyncFrom
数据库命令覆盖默认同步目标。replSetSyncFrom
使用该命令前请参阅文档。
TIP
也可以看看:
>
例子
节点配置文件
要将从节点配置为隐藏,请将其 members[n].priority
值0
设置为并在其节点配置中将其members[n\].hidden
值 设置为:true
{
"_id" : <num>
"host" : <hostname:port>,
"priority" : 0,
"hidden" : true
}
配置步骤
以下示例隐藏当前位于数组索引处的从节点 0
members
。要配置隐藏节点,请在 mongosh
连接到主节点的会话,指定要通过其在数组中的数组索引进行配置的节点 members
:
cfg = rs.conf()
cfg.members[0].priority = 0
cfg.members[0].hidden = true
rs.reconfig(cfg)
重新配置集合后,该从节点的优先级为 , 0
因此它无法成为主节点并被隐藏。集合中的其他节点不会在 hello
命令或db.hello()
方法输出中通告隐藏节点。
更新副本配置对象时,使用数组索引members
访问数组 中的副本集节点。数组索引以. 不要将此索引值与数组中每个文档中的 字段值混淆。0
members[n]._id
members
WARNING
- shell 方法可以强制当前
rs.reconfig()
primary 下台,从而导致选举。当主要步骤关闭时,mongod
关闭所有客户端连接。虽然这通常需要 10-20 秒,但请尝试在计划的维护期间进行这些更改。- 避免重新配置包含不同 MongoDB 版本节点的副本集,因为验证规则可能因 MongoDB 版本而异。
相关文件
原文链接 - https://docs.mongodb.com/manual/tutorial/configure-a-hidden-replica-set-member/
译者:陆文龙