“文档” 菜单
文档首页
/
MongoDB Manual
/ /

配置服务器

在此页面上

  • 副本集配置服务器
  • 配置服务器上的读取和写入操作
  • 配置服务器的可用性
  • 分片集群元数据
  • 分片集群的安全性

重要

从3开始。 4 ,不再支持将已弃用的镜像 mongod实例用作配置服务器 (SCCC)。然后才能将分片集群升级到3 。 4 ,您必须将配置服务器从 SCCC 转换为 CSRS。

要将配置服务器从 SCCC 转换为 CSRS,请参阅 MongoDB 3.4 手册将配置服务器升级为副本集

配置服务器用于存储分片集群上的元数据。元数据反映了分片集群内所有数据和组件的状态和组织。元数据包括每个分片上的数据段列表以及定义数据段的范围。

mongos 实例缓存此数据,并使用它来将读取和写入操作路由到正确的分片。mongos 在集群的元数据发生变化(例如添加分片)时更新缓存。分片还从配置服务器读取数据段元数据。

配置服务器还存储身份验证配置信息,如基于角色的访问控制或集群的内部身份验证设置。

MongoDB 还使用配置服务器来管理分布式锁。

每个分片集群必须拥有自己的配置服务器。请勿对不同的分片集群使用相同的配置服务器。

警告

在配置服务器上执行的管理操作可能会对分片集群的性能和可用性产生巨大影响。根据受影响的配置服务器的数量,集群可能会在一段时间内处于只读或离线状态。

已在 3.4 版本中更改

分片集群的配置服务器可以作为副本集 (CSRS) 来部署。对配置服务器使用副本集可以提高配置服务器之间的一致性,因为 MongoDB 可以利用配置数据的标准副本集读写协议。此外,使用配置服务器的副本集允许分片集群拥有 3 个以上的配置服务器,因为副本集最多可以有 50 个成员。要将配置服务器作为副本集来部署,该配置服务器必须运行 WiredTiger 存储引擎。

在用于配置服务器时,副本集的配置有以下限制:

admin 数据库和配置数据库存在于配置服务器上。

admin 数据库包含与身份验证和授权相关的集合,以及其他供内部使用的 system.* 集合

配置数据库包含含有分片集群元数据的集合。MongoDB 会在元数据发生变化时(例如在数据段迁移数据段分割后)将数据写入配置数据库

在正常操作或维护过程中,用户应避免直接写入配置数据库。

在写入配置服务器时,MongoDB 使用了 "majority"写关注

MongoDB 从 admin 数据库读取身份验证和授权数据以及其他内部用途。

mongos 启动或元数据发生变化之后(例如数据段迁移之后),MongoDB 会从 config 数据库中读取。分片还从配置服务器读取数据段元数据。

从副本集配置服务器读取时,MongoDB 使用读关注级别的 "majority"

如果配置服务器副本集丢失其主节点并且无法选择主节点,则集群的元数据将变为只读。您仍然可以从分片读取和写入数据,但在副本集可以选择主节点之前,不会发生数据段迁移或数据段分割。

在分片集群中,mongodmongos 实例监控分片集群中的副本集(例如分片副本集、配置服务器副本集)。

如果所有配置服务器都变得不可用,那么集群可能会无法正常运行。为了确保配置服务器始终可用,并且功能与数据均完好无损,备份配置服务器非常重要。与集群中存储的数据相比,配置服务器上的数据量较小,并且配置服务器的活动负载也相对较低。

有关详细信息,请参阅配置服务器副本集成员变得不可用

配置服务器将元数据存储在配置数据库中。

重要

在配置服务器上进行任何维护之前,请务必备份 config 数据库。

要访问 config 数据库,请在 mongosh 中发出以下命令:

use config

一般来说,您绝对不 应该直接编辑 config 数据库的内容。config 数据库包含以下集合:

有关这些集合及其在分片集群中的角色的更多信息,请参阅配置数据库。有关读取和更新元数据的更多信息,请参见配置服务器上的读取和写入操作

使用内部/成员身份验证来执行集群内部安全,防止未经授权的集群组件访问集群。您必须使用适当的安全设置启动集群中的每个 mongod,才能执行内部身份验证。

从 MongoDB 5.3 开始,SCRAM-SHA-1不能用于集群内身份验证。仅支持 SCRAM-SHA-256

在先前的 MongoDB 版本中,SCRAM-SHA-1 和 SCRAM-SHA-256 均可用于集群内身份验证,即使未显式启用 SCRAM。

有关部署安全分片集群的教程,请参阅使用密钥文件身份验证部署分片集群

← 分片