隐藏成员是副本集的一部分,但不能成为 主要成员,并且对客户端应用程序不可见。隐藏的成员可以在选举中投票。有关隐藏成员及其用途的更多信息,请参见 隐藏副本集成员。
隐藏节点最常见的用途是支持延迟成员。如果只需要阻止成员成为主要成员,则配置优先级为0的成员。
如果该settings.chainingAllowed
设置允许辅助成员与其他辅助成员同步,则默认情况下,MongoDB在选择同步目标时会优先选择非隐藏成员而不是隐藏成员。MongoDB仅会选择隐藏成员作为最后的选择。如果希望辅助节点与隐藏成员进行同步,请使用
replSetSyncFrom
database命令覆盖默认同步目标。replSetSyncFrom
使用该命令之前,请参阅文档。
也可以看看
要将辅助成员配置为隐藏,请在其成员配置中将其值设置为,并将其
members[n].priority
值0
设置members[n].hidden
为
true
:
下面的例子目前隐藏次要构件的索引处
0
的在members
阵列。要配置隐藏成员,请在mongo
连接到主要对象的外壳程序中使用以下操作序列,
并根据其在数组中的members
数组索引指定要配置的成员
:
重新配置集合后,该次要成员的优先级为,
0
因此它不能成为主要成员并被隐藏。集合中的其他成员不会在isMaster
或db.isMaster()
输出中广告隐藏的成员
。
更新副本配置对象时,请使用数组索引访问members
数组中
的副本集成员。数组索引以开头。千万不能混淆与价值这个指标值
字段中的每个文件中的数组。0
members[n]._id
members
警告
rs.reconfig()
壳方法可以强制当前主下台,这将导致一个选举。当主服务器降级时,将
mongod
关闭所有客户端连接。虽然这通常需要10到20秒,但请尝试在计划的维护期间进行这些更改。