副本集次要成员

辅助数据库维护primary's数据集的副本。为了复制数据,辅助服务器在异步进程中将主服务器oplog的操作应用于其自己的数据集。 [1]一个副本集可以具有一个或多个辅助副本。

以下三成员副本集具有两个辅助成员。辅助节点复制主节点的操作日志,并将操作应用于其数据集。

由一个主要成员和两个次要成员组成的 3 成员副本集的示意图。

尽管 Client 端无法将数据写入辅助数据库,但是 Client 端可以从辅助成员读取数据。有关 Client 端如何将读取操作定向到副本集的更多信息,请参见Read Preference

中学可以成为小学。如果当前的主要节点不可用,则副本集会保留一个election来选择哪个辅助节点成为新的主要节点。

在以下三成员副本集中,主数据库不可用。这将触发选举,剩余的中学之一将成为新的小学。

新的主要选举的示意图。在具有两个辅助节点的三成员副本集中,主节点变得不可访问。失去主要候选人会触发选举,其中次要候选人之一成为新的主要候选人

有关更多详细信息,请参见副本集选举

您可以为特定目的配置辅助成员。您可以将辅助配置为:

  • 防止它成为选举中的主要对象,从而使其可以驻留在辅助数据中心或充当冷备用数据库。参见优先级 0 副本集成员

  • 阻止应用程序从中读取数据,这使它可以运行需要与正常流量隔离的应用程序。参见隐藏副本集成员

  • 保留运行中的“历史”快照,以用于从某些错误(例如意外删除的数据库)中恢复。参见延迟副本集成员

[1]对于从版本 3.6.11 开始的 MongoDB 3.6 部署,副本集的辅助成员现在为记录操作日志条目,所花费的时间超过了慢操作阈值。这些慢速 oplog 消息将在文本applied op: <oplog entry> took <num>ms下的REPL组件下的diagnostic log中记录。这些慢操作日志条目仅取决于慢操作阈值。它们不取决于日志级别(系统级别或组件级别),配置级别或运行缓慢的采样率。探查器不会捕获缓慢的操作日志条目。