ITPub博客

首页 > 数据库 > NoSQL > [mongo] [认证] mongodb dba 考试学习指导

[mongo] [认证] mongodb dba 考试学习指导

翻译 NoSQL 作者:匠人xin 时间:2021-02-01 00:30:23 0 删除 编辑

参加考试

您即将参加 MongoDB 认证考试。我们的免费学习指南将成为您准备考试的路线图。我们为您提供最相关信息的摘要,以便您可以准确地指出最关注的领域。对这里所涉及的主题有充分的了解之后,您就应该做好通过的准备。祝好运!

监察

MongoDB 专业认证考试完全在线提供,使您可以在家中或办公室的舒适环境中方便地参加考试,同时由异地经纪人监控。监理人员将提供分步说明,以确保无缝的登机流程。完成身份验证后,他们将连续监视您和您的测试环境,以确保考试的安全性和完整性,并帮助您避免发生任何意外违规行为。

电脑要求

要完成考试,您需要一台带有摄像机(网络摄像机),麦克风和扬声器的 Windows 或 Mac 计算机。不支持平板电脑(例如 iPad 和 Google Chromebook )以及其他操作系统(例如 Linux )。您必须能够旋转相机(可能是通过拿起笔记本电脑),以便监理人员可以看到房间中的所有物品,包括办公桌。整个考试期间,网络摄像头,扬声器和麦克风都必须保持打开状态。考试期间不允许使用耳机。为了确保流畅的检查体验,保持稳定的连接非常重要。请在安排考试之前进行一次 系统就绪检查, 然后再次接近您的考试约会日期以确认系统仍在运行。

考试环境

考试期间,您必须在私人房间内,而不能打扰。请要求其他人不要进入要参加考试的房间,因为这可能会导致考试违规。考试期间不允许访问参考资料。请确保您的办公桌区域无任何杂物,包括电子设备和记事本。监考人员会在考试开始之前要求您扫描办公桌和房间区域,如果他们认为有必要,则会在整个考试期间定期扫描。您可以在白天或晚上进行注册的考试期间的任何时间参加考试。考试时间为一周。他们通常在星期二的 17:00 UTC 开始和结束,但是请务必检查您的考试的 About 页面( DBA 或 Developer ) )的确切时间。

计分

该考试由 60 个多项选择题和所有可以应用的问题组成。所有问题的权重均相等。您会发现回答所有问题的好处,因为不正确的答案不会受到任何惩罚。悬而未决的问题没有任何好处。

翻译软件

您可以在考试期间使用翻译软件来翻译问题。但是,请注意, MongoDB 大学不支持任何翻译软件,也不能保证其翻译的适当性或准确性。通过使用翻译软件,您承担与之相关的所有风险。

通用知识

介绍

本节将介绍您应该熟悉的基础计算概念。您应该将这些视为了解 MongoDB 的先决条件。我们不会在课程中直接教授这些知识,但是考试中的某些问题假定您已掌握这些概念。您可以在计算机科学教科书中或通过搜索引擎(例如 Google , Bing 等)在 Internet 上搜索找到有关这些主题的详细信息。

基础数据库概念

预期您将大致了解什么是数据库,尤其是:

  • Records (i.e.      rows/documents)
  • Tables/collections
  • Databases
  • 身份验证和授权概念
  • joins 及其在关系数据库中的工作方式
  • 事务和基本了解与诸如提交和回滚之类的。

内存管理和数据表示

对于考试,您应该对以下内容有所了解:

  • 物理内存
  • 虚拟内存
  • 内存映射
  • 数据的十六进制(基数 16 )表示

JavaScript 编程基础

对于考试,您应该知道:

  • 如何在 JavaScript 中为变量赋值
  • 如何迭代(例如,使用 for 或 while )

概念( Philosophy and Features

)

在该部分中,我们将验证您是否了解以下内容:

  • MongoDB 的主要功能及其提供的功能
  • JSON 和 BSON 的基础知识
  • 高层次的 MongoDB 数据模型
  • 高级别的 MongoDB 查询模型
  • MongoDB 中的数据一致性和可用性

《 MongoDB 体系结构指南》 和 此视频讲座 简要介绍了这些主题。我们在下面对此材料进行扩展。

JSON 格式

对于考试,您应该知道:

  • JSON 支持哪些数据类型,例如对象和数组
  • JSON 对象和数组的结构
  • 如何在 JSON 对象和数组中嵌套数据
  • 如何读取 JSON

资源:

BSON

对于考试,您应该知道:

  • BSON 是二进制 JSON 数据格式
  • 我们将 BSON 描述为轻量级,可遍历和高效的含义
  • BSON 如何使用显式类型信息,值的二进制表示形式和显式字节长度对值进行编码。

资源:

The Mongo Shell

对于考试,您应该知道:

  • 如何在 mongo shell 中列出可用的数据库 / 集合
  • 如何切换到特定的数据库上下文
  • 如何编写 JavaScript 代码以创建示例数据以及完成其他简单任务
  • 如何使用 “ 打印 ” 功能打印输出
  • Mongo Shell 中可用的管理命令

资源:

您还应该知道如何 在 Shell 中 使用 数据类型 。

垂直和水平扩展

对于考试,您应该知道:

  • 垂直和水平扩展之间的区别
  • 分片是 MongoDB 进行水平扩展的方法

资源:

MongoDB 和关系数据库

对于考试,您应该知道:

  • 由于可伸缩性原因, MongoDB 通常不包含在关系数据库管理系统中的功能
  • 关系数据模型通常与 MongoDB 中的数据模型有何不同

资源:

MongoDB 中的灵活架构

对于考试,您应该了解:

  • 为什么我们说 MongoDB 具有灵活的架构(有时称为 “ 动态架构 ” )
  • 这与关系数据库有何不同
  • 有关 MongoDB 中写操作的原子性问题

资源:

CRUD

在认证考试的 CRUD 部分,我们将验证您:

  • 了解 MongoDB 查询语言中的所有创建,读取,更新和删除( CRUD )操作
  • 熟悉常用的 CRUD 运算符以及如何使用它们
  • 了解 MongoDB 支持哪些数据类型

在本节中,我们不会测试您是否记住了 MongoDB 查询语言语法。但是,您应该能够区分正确编写的查询和未正确编写的查询。您还应该知道哪些查询参数是必需的,哪些是可选的,以及如何使用查询参数。我们不希望您记住查询运算符,但是您应该能够从一组选择中识别出正确的运算符。

Create

对于考试,您应该能够:

  • 正确使用插入,保存,更新和 findAndModify 命令创建新文档
  • 将插入命令与其功能描述相匹配
  • 知道如何执行批量插入
  • 了解 _id 字段的唯一性约束及其对 CRUD 操作的影响
  • 了解如何在 MongoDB 中创建和使用 ObjectId

您应该熟悉 _id 字段及其特殊属性:

_id 是每个 MongoDB 文档中必填的字段。 _id 字段对于用于其集合的集合必须具有唯一的值。您可以将 _id 字段视为文档的主键。如果您创建的新文档不包含 _id 字段,则 MongoDB 会自动创建该字段并分配一个唯一的 BSON ObjectId 。如果文档包含 _id 字段,则 _id 值在集合中必须唯一,以避免重复的键错误。

  • 视频:

o    插入新文档 -ObjectId

o    复合 _id 字段

  • 文件:

o    对象编号

o    _id 字段

可以通过以下命令来创建文档:

有关文档创建的大多数问题都将涉及 db.collection.insert ()命令。插入通常很简单。

Upsert 可能更复杂。在下面的示例中,假定 foo 集合尚未包含 a = 5 和 b <= 7 的文档。

> db.foo.update( { a : 5, b : { $lte : 7 } }, { $set : { c : 8 } }, { upsert : true } )

WriteResult({

    "nMatched" : 0,

    "nUpserted" : 1,

    "nModified" : 0,

    "_id" : ObjectId( "55b0200e5ef34083de46367e" )

})

> db.foo.find()

{ "_id" : ObjectId( "55b0200e5ef34083de46367e" ), "a" : 5, "c" : 8 }

在这种情况下,将插入一个新文档。在此特定情况下,新文档包含值 c : 8 ,因为 upsert 指示设置它。查询文档还为创建的文档贡献字段。在这种情况下,还设置了: 5 。无法从查询中确定 b 的值,因此将不会设置它。最后,将 ObjectId 分配给 _id 字段。

最后,您可以通过将数组传递到 db.collection.insert ()或 db.collection.bulkWrite ()进行批量插入。您应该知道有序和无序批量插入之间的区别。您还应该知道何时使用批量操作与何时使用 insertMany ()之间的区别。

文件:

Read

在 MongoDB 中,您可以使用 db.collection.find ()方法或 db.collection.findAndModify ()方法阅读文档。您应该熟悉这两个命令,但是 find ()方法将在考试中获得更大的覆盖范围。

对于考试,您应该能够:

  • 正确使用查询,投影和选项参数
  • 排序查询结果
  • 展示对所有匹配和投影运算符的理解
  • 读取和解释 MongoDB 查询中使用的正则表达式
  • 展示对 find ()查询如何与数组一起使用的理解

从 MongoDB 4.4 开始,作为使 find 和 findAndModify 投影与聚合的 $ project 阶段保持一致的一部分,

·         find 和 findAndModify 投影可以接受聚合表达式和聚合语法,包括使用文字和聚合变量。通过使用聚合表达式和语法,您可以投影新字段或使用新值投影现有字段。

·         find 和 findAndModify 投影可以使用嵌套形式指定嵌入字段;例如 {field : {nestedfield : 1}} 以及点符号。在早期版本中,只能使用点符号。

在 MongoDB 中,使用以下方法执行数据读取:

db.collection.find ()

请记住,尽管 findOne ()方法返回单个文档,但是 find ()查询将返回游标:

在 mongo Shell 中迭代游标

还有其他的集合读取方法,这些方法不会返回游标,但是您应该熟悉这些方法。

还有其他方法可以应用于游标本身。这些可以返回一个数字(例如,计数),或者可以修改结果集(即,排序,跳过和限制)。您可能还应该知道如何手动迭代游标。有关 游标方法 的 列表, 请参见 MongoDB 文档。

您也可以投影结果以限制返回的字段。

Update

对于考试,您应该能够:

  • 正确使用 save , update 和 findAndModify 命令来突变现有文档
  • 区分哪个参数找到要更改的文档,然后更改它们
  • 解释出现给您的任何更新操作符的行为
  • 识别 upserts 和 db.collection.save ()何时插入文档

更新会修改现有文档。可以使用一些收集方法来进行更新,其中一些方法在插入部分中:

Delete

对于考试,您应该能够:

Indexes

在认证考试中,我们将验证您:

  • 了解 MongoDB 中可用的索引类型
    • 单字段索引 ( Single       Field Indexes )
    • 复合索引 ( Compound       Indexes )
    • 多键索引 ( Multikey       Indexes )
    • 地理空间指数 ( Geospatial Indexes )
    • 文字索引 ( Text       Indexes )
    • 哈希索引 ( Hashed       Indexes )
    • 通配符索引 ( Wildcard       Indexes )
  • 了解索引属性:
    • TTL
    • ( Sparse )
    • 唯一 ( Unique )
    • 部分的 ( Partial )
    • ( Hidden )
  • 知道如何使用索引提高查询效率
  • 了解索引的写入性能成本

介绍

以下资源提供了索引的基本介绍。

默认 _id 索引

在创建集合期间, MongoDB 在 _id 字段上创建唯一索引。 _id 索引可防止客户端为 _id 字段插入两个具有相同值的文档。您不能将此索引放在 _id 字段上。

- 文档:

·         默认 _id 索引

创建和删除索引

在考试中,我们将确保您:

Collection Scans

对于考试,您应该知道:

  • 当必须检查集合中的每个文档以确定查询的结果集时,就会发生 “ 集合扫描 ”
  • 给定查询和可用索引列表,是否进行收集扫描
  • 为什么不希望进行收集扫描
  • 影片:

单字段索引

对于考试,您应该能够:

  • 识别单字段索引
  • 知道何时使用单字段索引(何时不使用)
    • 用于 .find ()查询
    • 用于 .update ()查询
    • 用于 .remove ()查询
  • 知道如何在子文档中的字段上创建单字段索引

这里有一些资源可以帮助您:

复合索引

在考试中,您应该知道:

多键索引

在考试中,您应该知道:

  • 如何将多键索引与其他索引类型区分开
  • 多键索引限制
  • 多键索引中将为特定文档创建多少索引键

多键索引是数组字段上的索引。索引将为每个数组元素包含一个键。

地理空间指数

对于考试,您将需要知道:

  • 如何创建 2d 和 2dsphere 索引
  • 如何在 MongoDB 中为 2dsphere 索引字段创建 geoJSON 点
  • 如何查询 geoJSON 点:
    • 一圈内
    • 接近一点
    • 在多边形内

为了支持对地理空间坐标数据的有效查询, MongoDB 提供了两个特殊的索引:返回结果时使用平面几何的 2d 索引和使用球面几何返回结果的 2dsphere 索引。

资源:

文本索引

对于考试,您将需要知道:

  • 如何建立文字索引
  • 如何使用文本索引进行查询
  • 如何按文字分数对结果进行排序

资源:

哈希索引

对于考试,您将需要知道:

·         如何创建哈希索引

·         如何创建复合哈希索引

资源:

·         文件:

o    散列索引

o    创建复合哈希索引

通配符索引

对于考试,您应该知道:

  • 如何创建通配符索引

资源:

索引排序

对于考试,您将需要知道:

.explain ()方法

对于考试,您应该知道:

  • 如何使用 db.collection.explain ()创建一个 Explainable 对象并使用它来解释游标
  • 如何用 cursor.explain ()解释光标
  • 解释计划的三个详细设置及其提供的内容。
  • 如何阅读每种类型的解释计划来确定事物,例如:
    • 查询返回了多少文档
    • 查询读取了多少个文档
    • 查询查看了多少索引条目
    • 查询使用哪个索引
    • 进行收集扫描时
    • 查询期间查看了多少个索引条目
    • 查询分片集合中涉及哪些分片
    • 如何识别查询已被覆盖
    • 是否使用索引对查询进行排序
    • 查询花费了多长时间(或估计花费了多长时间)
    • 哪些类型的查询可以使用索引( .find ()、 . update ()、 . remove ())

参考:

·         查询性能的技巧和窍门:让我们对它们进行 .explain ()

资源:

选择索引

对于考试,您应该知道:

Covered Queries

对于考试,您需要了解以下内容:

  • 涵盖的查询
  • 为什么涵盖的查询对性能有好处
  • 如何识别说明计划中已发生覆盖查询
  • 视频:
  • 文件:

索引策略

对于考试,您应该知道:

  • 如何创建索引以支持对一个字段进行排序的查询,对第二个字段进行精确匹配的查询以及对第三个字段进行范围查询的索引
  • 何时可以使用索引对特定查询进行排序
  • 选择性查询的数量以及它们可能从索引中受益的数量

资源:

索引对写入性能的影响

索引通常会提高读取性能,但会降低写入性能。诸如更新和删除之类的混合操作(例如,具有查找和写入操作)可能取决于用例(尽管使用索引通常更快)。

对于考试,您将想知道:

  • 为什么索引会减慢写操作的速度
  • 为什么更新和删除操作会因索引而受益或降低性能(但通常会受益)

资源:

唯一索引

对于考试,您应该知道:

  • 如何创建唯一索引
  • 如何从 db.collection.getIndexes ()命令识别唯一索引
  • 当您尝试插入值与现有文档匹配的唯一索引字段的文档时会发生什么?
  • 独特的复合索引如何工作
  • 如果您尝试在已经包含具有唯一字段非唯一值的文档的集合上创建唯一索引,会发生什么情况

资源:

TTL 索引

对于考试,您应该知道:

  • 如何建立 TTL 索引
  • 如何在 db.collection.getIndexes ()的输出中识别 TTL 索引
    • 并确认删除发生的时间
  • 知道何时绝对不会删除文档,以及何时会删除

资源:

隐藏索引

对于考试,您应该知道:

·         如何创建隐藏索引

·         如何隐藏现有索引

·         如何取消隐藏现有索引

·         什么时候以及为什么要使用隐藏索引

资源:

·         文件:

o    隐藏索引

部分索引

从 MongoDB 3.2 开始, MongoDB 提供了创建部分索引的选项。部分索引提供了稀疏索引功能的超集。如果您使用的是 MongoDB 3.2 或更高版本,则应优先使用部分索引而不是稀疏索引。

对于考试,您应该知道:

·         如何创建部分索引

·         偏指数行为

·         与稀疏指数比较

·         对部分指数的限制

资源:

·         文件:

o    部分索引

o    稀疏索引

混合索引构建

对于考试,您将需要知道:

  • 如何在填充的集合上建立索引
  • 索引构建如何影响数据库性能

资源:

字符串字段和索引的正则表达式

对于考试,您将需要知道:

  • 标准索引与字符串字段的行为方式(与文本索引相比)
  • 如何通过在左侧锚定正则表达式来最有效地使用索引

资源:

Replication

在认证考试中,我们将尝试验证您:

  • 了解复制的好处
  • 了解速度和耐用性之间的权衡
  • 了解操作日志工作原理的基础知识,包括幂等和基于语句的复制等概念
  • 知道节点(主节点或非主节点)发生故障时会发生什么

介绍

复制是关于可用性和持久性的。一般来说,它不是用于缩放。这就是分片的目的。

节点数

在考试中,您应该知道:

  • 创建节点时要使用的选项,例如:
    • Arbiter
    • Delayed
    • votes
    • priority

资源:

启动副本集

对于考试,您应该熟悉:

  • 如何启动副本集(或启动单个服务器并添加副本集成员)
  • 副本集中辅助节点的初始同步

资源:

选举

对于考试,您将需要知道:

  • 可以触发选举的事件
  • 集合中的优先级,投票, optime 和无法访问的服务器将如何影响选举结果
  • 哪个节点将在大选中获胜

资源:

故障转移( Failover )

对于考试,您将需要知道:

  • 是什么触发故障转移
  • 故障转移触发选举

资源:

回滚

对于考试,您将需要知道:

  • 哪些事件系列将触发回滚或不触发回滚
  • 被回滚的数据会发生什么

资源:

rs.status ()

对于认证考试,您应该能够:

  • 阅读并了解 rs.status ()命令的输出
  • 知道 rs.status ()中有什么数据

资源:

副本集重新配置

对于认证考试,您将需要能够:

  • 添加和删 除副本集成员
  • 重新配置副本集

资源:

Oplog

对于认证考试,您需要:

  • 了解 MongoDB 基于语句的复制的本质
  • 了解为什么 oplog 操作必须是幂等的
  • 了解操作日志中存储了哪些操作
  • 知道 oplog 存储文档的 _id 以进行写入
  • 计算特定写操作可能有多少个 oplog 条目(每个受影响的文档一个)

资源:

Read Preference

对于考试,您应该知道:

  • 对于每个可能的读取关注点,可以查询哪个或哪些节点(也取决于节点的状态)
  • 当您的读取首选项允许您读取陈旧数据时

资源:

Write Concern

对于考试,您应该知道:

  • 默认写关注
  • 如何将写入关注设置为多数或固定数量的节点
  • 对于给定的写入关注点,多少个节点将具有数据副本
  • 如何确保在确认之前写到日志

资源:

Sharding

在认证考试中,我们将验证您:

  • 了解水平扩展以及分片如何在 MongoDB 中提供此功能
  • 知道如何构造一个好的分片密钥,以及选择分片密钥会出什么问题
  • 了解负载均衡器的作用
  • 了解配置服务器的角色及其工作方式。

介绍

分片与扩展有关。使用分片,您可以将数据分布在多个副本集上,每个副本集都是分片群集中的逻辑 “ 节点 ” 。

请注意,分片和复制解决了不同的问题。复制与数据的持久性和高可用性有关,而分片与读写工作负荷的水平扩展有关。

资源:

分片键

对于考试,您应该知道:

  • 从 MongoDB 4.2 开始,分片键字段值是可变的,并且可以更改,除非分片键字段是不可变的 _id 字段
  • 什么是好的分片键
  • 分片密钥不好的原因
  • 分片密钥如何在 MongoDB 中实现基于范围的分片

资源:

块和平衡器( Chunks and the Balancer )

对于考试,您应该知道:

  • 如何通过分片键范围定义块
  • 如何确定块范围是否包含特定文档
  • 当块拆分自动发生时
  • 平衡器如何使用块来保持群集平衡

资源:

配置服务器和群集元数据( Config Servers and Cluster Metadata )

对于考试,您应该知道:

  • 哪些数据配置服务器包含
  • 如何访问配置服务器中的数据
  • 配置服务器不可用时会发生什么
  • 哪些类型的服务器构成配置服务器
  • 当您的配置服务器无法选择主服务器时会发生什么

资源:

预分割数据 Pre-Splitting Data 

对于考试,您应该知道:

  • 如何预分割块
  • 为什么要预分割块
  • 如何手动分割块
  • 如何手动合并块

资源:

分片群集中的查询

对于考试,您应该知道:

  • 有针对性的查询与分散收集查询的性能影响
  • 给定一个查询和分片配置的描述,该查询是针对性的还是分散性的
  • 如何读取 .explain ()输出以确定哪些碎片受查询影响
  • 分片群集中的排序和聚合工作方式
  • 什么是 mongos 节点及其在分片群集中的作用

资源:

选择分片键

对于考试,您应该知道:

  • 什么是好的分片键:
    • 高基数
    • 高选择性
    • 非单调递增 / 递减值
    • 这些是什么意思

资源:

Primary Shard

对于考试,您应该知道:

  • 主分片包含哪些数据
  • 主分片上发生什么读和写操作
  • 聚合查询如何使用主分片

资源:

应用程序和服务器管理

对于认证考试,我们将验证您:

  • 了解 MongoDB 日志和服务器日志的机制
  • 了解 MongoDB 的安全性
  • 了解监控和性能调整
  • 可以确定不同集群体系结构的优缺点
  • 能够评估有关基本服务器诊断,维护,备份和灾难恢复的选项。

介绍

虽然定义有些不确定,但是应用程序管理负责处理 MongoDB 与应用程序的关系。我们在这里考虑的功能包括:有线协议,有线加密和安全性。

服务器管理负责架构设计,维护和调试部署。

日志

对于考试,您应该知道:

  • 该杂志的目的
  • 该日志被实现为二进制预写日志
  • 轴颈如何在发生碰撞时确保耐用性。
  • 对于 WiredTiger ,日记工作方式的基础,例如,将数据刷新到磁盘的频率

资源:

压缩

对于考试,您应该知道:

  • MongoDB 如何压缩数据
  • 可用的压缩库
  • 压缩的优点

WiredTiger 压缩:

·         使用 WiredTiger , MongoDB 支持所有集合和索引的压缩。压缩可以最大程度地减少存储使用量,但会增加 CPU 的开销。 -  WiredTiger 存储引擎 - 压缩

snappy :

·         压缩 / 解压缩库旨在平衡有效的计算要求和合理的压缩率。 snappy 是 MongoDB 使用 WiredTiger 的默认压缩库。 - 活泼 -  WiredTiger 压缩文件

prefix compression :

·         通过每页内存仅存储一次相同的索引键前缀来减少内存和磁盘消耗。 - 压缩

zlib :

·         与 MongoDB 使用 snappy 相比,该数据压缩库以更高的 CPU 成本提供更高的压缩率。您可以将 wiredTiger 配置为使用 zlib 作为其压缩库。 -  zlib 的

zstd :

·         4.2 版的新功能

·         与 zlib 相比,提供更高的压缩率和更低的 CPU 使用率的数据压缩库。

Server Logs

对于考试,您应该知道:

  • 服务器日志中捕获了哪些查询
  • 如何旋转日志文件
  • 捕获的常见事件:
    • 创建 / 删除数据库
    • 连接数

资源:

探查器( The Profiler )

对于考试,您应该知道:

  • 如何打开和关闭探查器或更改其设置
  • 分析器捕获的内容
  • 该信息存储在哪里

资源:

监控和性能调整

对于考试,您将需要知道:

  • 哪些工具可用于监视和调整 MongoDB
  • 如何解释简单方案的输出,例如:
    • 工作集的 RAM 用完了
    • 磁盘 I / O 已饱和

资源:

MongoDB 安全

对于考试,您应该知道:

  • 如何在 MongoDB 中定义用户角色和权限
  • 还有哪些其他最佳安全实践可用

参考:

·         安全最佳实践系列: Authn Authz

·         安全最佳实践系列:审计

·         安全最佳实践系列:字段级加密

资源:

集群架构

对于考试,您应该了解以下常见的部署模式:

  • 副本集
  • 分片集群

资源:

诊断和调试( Diagnostics and Debugging )

对于考试,您应该知道:

  • 查看服务器,副本集和分片群集状态的基本命令
  • 如何解释这些命令
  • 解决可能出现的简单问题的方法,例如:
    • 服务器已关闭
    • 配置服务器已关闭
    • 长时间运行的查询占用了太多资源
    • 所有查询都限于分片群集中的一台服务器

资源:

Maintenance

对于考试,您应该能够:

  • 旋转日志文件
  • 从分片集群中删除分片

资源:

备份与恢复

对于考试,您将需要知道:

  • 单个服务器和群集的备份选项
    • 文件系统快照
    • mongodump
  • 如何从这些备份还原数据

资源:

Server Tools

对于认证考试,将验证您是否了解:

  • 如何使用服务器工具导出和导入数据
  • 如何使用服务器工具监视服务器上的基本操作
  • 如何使用服务器工具备份和还原数据以及检查备份的数据(仅限 DBA )
  • 使用哪些工具来处理 GridFS 文件和分析磁盘 I / O (仅 DBA )

介绍

通过使用带有 --help 选项的工具,可以找到大多数测试的信息。

对于开发者考试,您需要了解以下内容:

对于 DBA 考试,您需要了解以下内容:

导入和导出数据

对于考试,您应该知道如何在 MongoDB 和以下之间导入 / 导出数据:

  • JSON 文件
  • CSV 文件

资源:

基本服务器监控

对于考试,您应该知道:

  • 如何使用 mongostat 监视 MongoDB
  • 如何使用 mongotop 查看服务器活动
  • 在 mongostat 和 mongotop 中诊断某些类型的性能问题时,哪些字段特别重要

资源:

备份和还原数据(仅 DBA )

对于考试,您应该知道:

  • 如何使用 mongodump 和 mongorestore 保存和还原数据
  • 如何在 mongodump 或 mongorestore 中包含您的 oplog

资源:

注意:

对于正在进行分片事务的 4.2+ 分片群集, mongodump 和 mongorestore 不能成为备份策略的一部分。 - 参考

高级 MongoDB 诊断(仅 DBA )

对于考试,您应该知道如何使用以下工具:

·         bsondump

·         jq 工具 :在 MongoDB 4.4 中,日志已更改为结构化日志,您需要了解如何使用 jq 工具来解析日志

操纵 BLOB (仅 DBA )

对于考试,您将需要能够使用 mongofiles 将数据放入 GridFS 。

资源:

储存引擎

对于考试,我们将验证您是否知道:

  • WiredTiger 的并发级别
  • WiredTiger 可用的压缩算法
  • 这些功能对 MongoDB 性能的影响

介绍

存储引擎是数据库的组件,负责管理如何在内存和磁盘上存储数据。 MongoDB 支持多个存储引擎,因为不同的引擎对于特定的工作负载性能更好。为您的用例选择合适的存储引擎会严重影响应用程序的性能。 MongoDB 3.0 引入了可插拔存储引擎。

WiredTiger

WiredTiger 是从 MongoDB 3.2 开始的默认存储引擎。它非常适合大多数工作负载,建议用于新部署。 WiredTiger 提供了文档级并发模型,检查点和压缩以及其他功能。

WiredTiger 的功能

·         Locks/Concurrency

    • WiredTiger 支持文档级并发

·         Journaling

    • 建议对 WiredTiger 进行日志记录
    • 从 MongoDB 4.0 开始,您不能指定 --nojournal 选项或 storage.journal.enabled :使用 WiredTiger 存储引擎的副本集成员为 false 。
    • 对于 WT ,它确保在检查点之间将写入写入磁盘
    • 如果日志记录少于或等于 128 个字节( WiredTiger 的最小日志记录大小),则 WiredTiger 不会压缩该记录。

·         Data Compression

    • 默认情况下, WiredTiger 使用块压缩与 活泼 的所有集合和前缀压缩所有索引压缩库。
    • 对于集合,下面的块压缩库也是可用的: -  zlib 的 -  zstd ( MongoDB 中 4.2 获得的起始)

对于考试,您应该知道:

资料档案

这是 WiredTiger 数据目录的示例:



内存存储引擎

从 MongoDB Enterprise 3.2.6 版开始,内存存储引擎是 64 位版本中通用可用性( GA )的一部分。除某些元数据和诊断数据外,内存存储引擎不维护任何磁盘上的数据,包括配置数据,索引,用户凭据等。通过避免磁盘 I / O ,内存存储引擎可实现更多功能。可预测的数据库操作延迟。

·         Journaling

    • 从版本 4.2 (以及 4.0.13 和 3.6.14 )开始,如果副本集成员使用内存中的存储引擎(投票或不投票),但是副本集的 writeConcernMajorityJournalDefault 设置为 true ,则副本集成员记录一个启动警告。
  • Concurrency
  • Durability
  • Transactions
    • 您无法在具有将 writeConcernMajorityJournalDefault 设置为 false 的分片的分片群集上运行事务,例如,具有使用内存存储引擎的投票成员的分片。
  • 文件:

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69993564/viewspace-2754920/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-01-19

  • 博文量
    33
  • 访问量
    39513