MongoDB 数据库管理
MongoDB 的一个关键概念是数据库管理。在数据库管理方面,安全性、备份、数据库访问等重要方面都是重要的概念。
在本教程中,你将学习 -
-
数据库安全概述
-
索引和性能考虑
-
备份程序
-
Mongodb 监测
MongoDB 安全概述
MongoDB 能够为数据库定义安全机制。默认情况下,不希望每个人都拥有对 MongoDB 中每个数据库的开放访问权限,因此在 MongoDB 中使用某种安全机制的要求非常重要。
以下是在数据库中实现安全性时的最佳实践
-
启用访问控制 - 创建用户,以便在访问 MongoDB 上的数据库时强制所有应用程序和用户都具有某种身份验证机制。
-
配置基于角色的访问控制 - 有时可能需要一个逻辑的权限分组,这些权限可以在角色中进行分组。然后可以将用户分配到这些角色。
-
尝试将 MongoDB 配置为使用某种加密协议,如 TLS 或 SSL。这些协议可用于加密在客户端和 mongo DB 环境之间流动的流量。
-
配置审核 - 管理员通常需要知道谁在做什么,这有助于以后分析问题。最好的方法是在 MongoDB 中启用审计。
-
使用单独的用户标识运行 MongDB 服务器实例,该用户标识可以访问服务器环境中所需的资源。
MongoDB 索引和性能注意事项
- 索引在任何数据库中都非常重要,可用于提高 MongoDB 中搜索查询的效率。如果你在文档中不断执行搜索,则最好在搜索条件中使用的文档字段中添加索引。
- 尝试始终限制返回的查询结果数。假设你在文档中有 2 个字段名称,但你只想查看文档中的 2 个字段。然后确保你的查询仅定位显示你需要的 2 个字段,而不是所有字段。
- 如果要查看某些字段值,则仅在查询中使用这些字段。如果不需要,请不要查询集合中的所有字段。
Mongodb 备份程序
使用 MongDB 时,务必确保备份过程到位,以防 MongoDB 中的数据因任何原因而损坏。
以下是 MongoDB 中可用的备份机制
- 通过复制底层数据文件进行备份 - 这可能是最简单的机制,所有需要做的就是复制 MongoDB 所在的数据文件并将其复制到另一个理想情况下应该是另一个服务器的位置。
- 使用 mongodump 备份数据库 - mongodump 工具从 MongoDB 数据库读取数据并创建高保真 BSON 文件。需要考虑的是,如果数据集的数量很大,那么 mongodump 可能是非常耗费资源的,因此为了缓解这个问题,应该在辅助服务器上运行该实用程序。
- MongoDB Cloud Manager 备份 - MongoDB Cloud Manager 通过从 MongoDB 环境读取 oplog 数据,不断备份 MongoDB 副本集和分片集群。MongoDB Cloud Manager 可以通过存储 oplog 数据来创建时间点恢复,以便它可以随时为特定副本集或分片集群创建还原。
Mongodb 监控
监控是 MongoDB 中最重要的管理活动之一。这是因为你可以通过监控环境来更积极主动地查找可能出现的问题。
以下是一些实施监控的方法
- mongostat将告诉你服务器上实际发生了多少次数据库操作,如插入,查询,更新,删除等。这将很好地了解服务器处理的负载量,并指示你是否需要服务器上的其他资源,或者是否需要其他服务器来分配负载。
- mongotop跟踪并报告 MongoDB 实例的当前读写活动,并根据每个收集报告这些统计信息。
- MongoDB 提供了一个 Web 界面,可以在简单的 Web 页面中公开诊断和监视信息。可以浏览到本地服务器上的以下 URL 以打开 Web 管理实用程序 http://localhost:28017
serverStatus
命令或 shell 中的db.serverStatus()
返回数据库状态的概述,其中包含有关磁盘使用情况,内存使用情况,与 MongoDB 环境建立的连接等的详细信息。
概要:
- 在数据库中实现安全性非常重要,以确保数据库中的数据保持安全。
- 可以使用
createUser
命令在数据库中创建用户。可以为用户分配特定角色,以便为他们提供数据库本身的特定权限。 - 可以为所有数据库添加管理员,仅适用于特定数据库。这是通过提供
userAdmin
或userAdminAnyDatabase
角色来实现的。 - 始终备份你的 MongoDB 环境,以便在发生任何灾难时,数据很容易恢复。
- 始终监控 MongoDB 环境,使其更加主动,并在问题发生之前查看问题。