Docs 菜单

Docs 主页启动和管理 MongoDBMongoDB Atlas

生产说明

在此页面上

  • 概述
  • 角色和职责
  • 数据库部署管理
  • 组织级别
  • 项目级别
  • 集群命名约定
  • 单区域和多区域集群
  • 敏感信息
  • 应用程序 管理
  • 扩展集群
  • 多租户
  • 卸载和查询存档数据
  • 带有数据湖和查询联合的 ETL
  • 审核临时数据库用户
  • 创建用于审核的自定义角色。
  • 启用数据库审计。
  • 创建临时用户。
  • 添加临时 IP 访问列表条目。
  • 下载日志。
  • 可选监控和日志记录集成
  • 管理集群数据量
  • 支持

使用 MongoDB Atlas 作为您的数据平台,您的运营重点可以从构建和维护数据库基础架构所需的繁琐运营任务和工作流程,转移到专注于帮助工程师为业务增加价值。工程师无需维护硬件和更新操作系统级别的软件补丁,而是可以将时间和精力投入到开发满足企业当前和未来需求的数据模型上。

本文档概述了使用 MongoDB Atlas 集群建立和维护成功的 MongoDB 生产部署的一些最佳实践。

提示

另请参阅:

MongoDB 管理和运营向客户提供 MongoDB 数据库服务所需的基础架构。MongoDB 的职责包括以下内容:

  • 管理数据库集群和底层基础架构,确保由99支持的 MongoDB 的可用性、稳定性和性能。 995 % 正常运行时间 服务级别协议 (SLA) ,适用于规模为 M10及更大的集群。

  • 确保底层计算节点的健康。确保它们正在运行、具有网络连接并具有所有推荐的操作系统级补丁,以维持正常运行时间 SLA。

  • 根据客户通过 Atlas 用户界面或 REST API 做出的特定设计选择,管理 MongoDB 数据库配置。

  • 自动应用所有 MongoDB 维护升级,确保产品具有最新的错误修复。

  • 管理安全配置文件,包括基于角色的访问控制向 IP 访问列表添加 IP 地址以及对等互连,以根据客户的指示最大限度地提高集群安全性。

  • 提供备份和恢复服务。

客户继续开发和部署访问 MongoDB 的应用程序,而无需直接管理底层数据库资源和/或基础架构。

重要

Atlas 不支持将数据库部署从一个项目移动到另一个项目。相反,请执行实时迁移

MongoDB Atlas 抽象了数据库操作,以便您可以专注于高价值、高级别的管理决策。您可以使用Atlas 用户角色管理对 Atlas 数据库部署的访问。您只能组织级别项目级别应用这些权限。因此,应仔细规划组织和项目的层次结构。

提示

如果您需要创建超过 Atlas 组织限制(250 个)的项目,请创建更多组织来存储项目。要了解详情,请参阅 Atlas 组织和项目限制

要在 Atlas 中创建精心设计的组织和项目层次结构,请将数据库部署分解为对您的用例有意义的项目。这样可以最大限度地提高企业效率,同时最大限度地减少运营摩擦。

提示

使用跨组织计费关联多个 Atlas 组织,为所有组织接收统一发票。要了解详情,请参阅跨组织计费使用案例

组织级别,您可以实施安全控制并创建跨一个或多个项目的用户。Atlas 计费在组织级别进行。

为有效控制用户访问和权限,可在组织级别将用户分组为团队

重要

项目提供安全隔离和授权边界,因此通常按应用程序团队和应用程序环境分配。例如,两个应用程序团队中可能有六个项目:每个团队在“开发”、“过渡”和“生产”环境中分别有一个项目。

您可以创建项目级 Atlas 用户和角色,以相应访问不同的生产和开发应用程序环境。

  • 拥有 Project Read Only 角色的用户可以访问项目级监控和系统健康状况元数据,但无法访问任何集合数据或管理操作。

  • 具有 Project Cluster Manager 角色的用户可以扩展集群并执行其他管理操作,但没有数据级访问权限。

重要

无服务器实例中的不可用功能

无服务器实例不支持以下大部分职责。要了解详情,请参阅无服务器实例限制。

其他项目级职责包括:

重要

为您的 Atlas 集群选择正确的命名规范,是成功运行生产环境的第一步。一经命名,就无法对集群进行重命名,因此首次正确命名非常重要。以下建议可以帮助您更轻松地解析日志并区分集群。

  • 使用描述性的小写名称。

  • 避免使用特殊字符。

  • 用连字符或下划线连接单词。避免单词之间出现空格。

  • 使用一种约定来明确集群是用于生产、暂存还是开发目的。

  • 请勿在 集群名称 中包含 敏感信息 。

一些较好的集群名称示例:

  • prod-aws-website

  • staging-gcp-internal

  • dev-azure-analytics

高可用性和集群持久性取决于集群的区域部署配置。部署在单个区域内的集群分布在该区域内的各个可用区域,可以承受部分区域中断的情况,因为读取或写入操作不会中断。

您可以选择将集群分布在两个或更多地区,以提高韧性和工作负载隔离性

区域的顺序决定了主节点位置的优先级顺序。因此,如果您希望在特定区域可用时将数据库写入操作定向到该区域,则应首先列出该区域。如果第一个区域不可用,则应将列表中的第二个区域作为写入操作的第二选择。

以下示例来自 Atlas Create a Cluster(创建集群)用户界面,显示了一个多区域集群,它在三个不同区域中具有可选举节点,按优先级从高到低排列:

三个地区的可选举节点截图
点击放大

如果 us-east-1 区域不可用,则将在 us-west-1 区域中选出新的主要区域。

注意

集群必须有奇数个节点,以确保主节点的可选举性。要了解更多信息,请参阅副本集选举。

将集群部署到两个区域可确保数据副本始终保留在一个以上的区域中。然而,包含集群中大多数节点的区域丢失将使第二个区域处于只读状态,直到管理员干预或原始区域再次可用。

将集群部署到三个或更多区域可确保集群能够承受全区域级别的中断,同时保持读写可用性,前提是应用程序层具有容错能力。

如果始终在首选区域中维持写入操作具有较高优先级,则建议在部署集群时,使至少两个可选举节点位于首选区域内的至少两个数据中心。

为在全球部署中获得最佳数据库性能,用户可以配置全球集群,这种集群使用位置感知的分片来最大限度地减少读写延迟。有地理存储要求的用户还可以确保数据存储在特定的地理区域。

请勿为以下项目提供敏感信息,如个人身份信息 (PII) 或受保护的健康信息 (PHI):

应用程序级职责包括:

MongoDB Atlas 提供两种扩展方法:垂直扩展和水平扩展。

纵向扩展包括提高集群的存储容量、计算能力和/或 IOPS 率。 垂直扩展可以快速完成,在高峰使用时段很有用。 从共享集群M2M5)进行垂直扩展需要几分钟的停机时间,而专用集群M10 及更高版本)之间的扩展无需停机。

垂直扩展时,建议在生产环境中使用 M30 及更高版本的集群。您可以使用以下集群层作为低流量应用程序的生产环境,但建议将这些层用于开发环境:

  • M2M5 共享集群

  • M10M20 个专用集群

水平扩展涉及实施分片或在现有分片集群中添加分片。水平扩展需要仔细的规划和执行,并且是M30+集群长期增长战略的一部分。您还可以减少分片集群中的分片数量。

重要

删除分片时,Atlas 会使用movePrimary命令将该分片中的任何未分片数据库移动到剩余分片中。

在分片移除过程中,所有分片集合均会保持在线并可用。但是,在 movePrimary 操作期间对未分片的集合进行读取或写入操作则可能会导致意外行为,其中包括迁移失败或数据丢失。

我们建议在删除主分片之前移动包含未分片集合的任何数据库的主节点。

有关更多信息,请参阅从现有分片集群中删除分片。

Atlas 中可以组合垂直和水平分片。例如,分片集群可以在高峰期垂直扩展,从而增加各个分片集群成员的存储容量和计算能力。

默认情况下,Atlas 会将集群存储垂直自动扩展到您配置的集群层大小限制。

您可以将 Atlas 配置为自动扩展集群层和集群存储容量,以应对集群使用量的增加,从而快速、自动地响应对更大存储计算能力的需求。

您可以使用 Atlas 实施多租户,以便应用程序的单个实例为多个租户提供服务。随着时间的推移,随着需求的发展或扩展预期的变化,您最初为多租户架构所做的设计决策可能会产生意想不到的效果。要了解详情,请参阅构建多租户架构

作为数据生命周期的一部分,如果您需要将冷数据移动到不同的存储层,可以设置 Atlas Online Archive规则,根据日期或自定义条件移动数据。 Atlas 存档您不常访问的数据后,您就可以通过只读联合数据库实例获得 Atlas 和 Online Archive 数据的统一视图。

您可以使用 Atlas Data Lake 获取集群数据的一致快照,然后将其提取到完全托管的存储中,以优化分析查询。这些数据集为您提供了高性能对象存储中集群在一段时间内的静态图,适合以低成本运行复杂的聚合操作。

您可以使用 Atlas Data Federation 跨不同基础设施就地查询数据,或在不同系统之间移动数据。您可以对来自多个源的数据使用聚合管道,以从数据中提取见解或将其转换用于其他目的。例如,您可以使用 $out to S3$out to Atlas 在存储层之间移动数据。您还可以使用 $out to S3 轻松地将 Atlas 集群中的数据转换为 JSONBSONCSV、制表符分隔值(TSV)、Avro、Parquet 和 ORC,并将其导入 AWS S3,为需要访问的下游系统提供数据。

为所有数据库用户(包括应用程序服务用户)启用审核可能会严重影响集群性能。如果需要审核临时数据库用户的操作,您可以创建一个用于审核的自定义角色,并创建具有更高权限的临时用户,然后将自定义角色授予该用户以审核其操作。

要审核临时数据库用户的操作,请执行以下步骤:

1

创建针对审计的自定义角色。

2

要审计所创建角色的 CRUD 操作,请启用数据库审计

3

要审核其操作,请创建一个临时用户。

为用户分配为审核创建的自定义角色。创建用户时,选择 Save as temporary user 选项,然后选择希望用户存在的时间段。当这段时间过去时,Atlas 将删除该用户。

4

添加临时 IP 访问列表条目以限制临时用户对 Atlas 集群的访问权限。

当您为临时用户创建 IP 访问列表条目时,请选择Save as temporary access list选项,然后选择您希望访问列表条目存在的时间段。在这段时间过后,Atlas 会删除访问列表条目。

5

如需审核临时数据库用户的操作,请下载日志

您可以使用 DataDog 为 Atlas 配置基于推送的监控集成。您还可以使用 Atlas Administration API 提取监控数据

您可以使用 jSonar 配置基于提取的日志记录集成,这些日志记录可以推送到 Splunk 和 SumoLogic 等其他服务。您还可以使用 Atlas Administration API 每5分钟提取一次日志数据

Atlas 提供以下内置工具来帮助您管理集群数据量:

除了这些工具之外,请参阅集群大小调整指南,了解如何向上或向下调整集群的大小。您还可以通过暂时关闭集群来暂停集群以节省成本,同时将数据最多保留30天。

可提供不同层级的支持,包括针对开发中的客户和企业客户的选项。

可能支持的区域包括:

  • 所管理的 MongoDB 集群的问题和关注点。

  • 与性能相关的查询。

  • 应用程序端和驱动程序协商。

← 获取 Atlas 帮助