文档菜单
文档首页
/
MongoDB 手册
/ / /

配置隐藏的自托管副本集成员

本页内容

  • 考虑因素
  • 示例
  • 相关文档

隐藏成员是副本集的一部分,但不能成为主节点,并且对客户端应用程序不可见。隐藏成员可以在选举中投票。有关隐藏成员及其用途的更多信息,请参阅隐藏副本集成员

隐藏节点最常见的使用是支持备份。

您还可以使用隐藏节点来支持延迟成员。但是,如果您只需要防止成员成为主节点,请配置一个优先级为0的成员。

如果settings.chainingAllowed设置允许次要成员从其他次要成员同步,MongoDB默认情况下在选择同步目标时更倾向于非隐藏成员而非隐藏成员。MongoDB只有在没有其他选择时才会选择隐藏成员。如果您想让次要成员从隐藏成员同步,请使用replSetSyncFrom数据库命令来覆盖默认同步目标。在使用该命令之前,请参阅replSetSyncFrom的文档。

提示

另请参阅

要将次要成员配置为隐藏,请将其成员配置中的 members[n].priority 值设置为 0,并将其 members[n].hidden 值设置为 true

{
"_id" : <num>
"host" : <hostname:port>,
"priority" : 0,
"hidden" : true
}

以下示例隐藏了当前位于 0 索引处的次要成员。要配置隐藏成员,请在连接到主节点的 mongosh 会话中执行以下操作序列,通过在 members 数组中指定成员的数组索引来配置成员mongosh

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 数组中的每个文档中。

警告

  • rs.reconfig() 命令行方法可以强制当前主成员下台,这会导致 选举。当主成员下台时,mongod 关闭所有客户端连接。尽管这通常需要 10-20 秒,但请在计划维护期间尝试进行这些更改。

  • 请避免重新配置包含不同 MongoDB 版本成员的副本集,因为验证规则可能因 MongoDB 版本而异。

返回

配置