运行时数据库配置 您所在的位置:网站首页 怎么查看mongodb的端口 运行时数据库配置

运行时数据库配置

2024-07-08 13:16| 来源: 网络整理| 查看: 265

运行时数据库配置

在此页面上

配置数据库安全考虑因素复制与分片配置在同一系统上运行多个数据库实例诊断配置

命令行和配置文件界面为 MongoDB 管理员提供了大量用于控制数据库系统操作的选项和设置。本文档概述了常见配置以及常见使用案例的最佳实践配置示例。

虽然这两个界面都允许访问相同的选项和设置集合,但本文档主要使用配置文件界面。

如果使用软件包管理器(例如 Linux 上的 yum 或 apt,或 macOS 上的 brew)安装 MongoDB,或者使用 Windows 上的 MSI 安装程序安装 MongoDB,则安装过程中会提供默认配置文件:

平台方法配置文件Linux的apt、yum 或 zypper 包管理器/etc/mongod.confmacOSbrew 包管理器:

/usr/local/etc/mongod.conf (在英特尔处理器上),或

/opt/homebrew/etc/mongod.conf (在 Apple M1 处理器上)

WindowsMSI 安装程序\bin\mongod.cfg

如果您通过下载的 TGZ 或 ZIP 文件安装 MongoDB,则必须创建自己的配置文件。可以从基本示例配置着手。

对于 Linux 或 macOS 上的 MongoDB 包安装,还提供了使用此默认配置文件的初始化脚本。该初始化脚本可用于通过下列方式在这些平台上启动 mongod:

在使用 systemd 初始化系统(systemctl 命令)的 Linux 系统上:

sudo systemctl start mongod

在使用 SystemV init 初始化系统(service 命令)的 Linux 系统上:

sudo service mongod start

在 macOS 上,使用 brew 包管理器:

brew services start [email protected]

如果通过 TGZ 或 ZIP 文件安装 MongoDB,则需要创建自己的配置文件。本文档后面提供了一个基本的配置示例。创建配置文件后,就可以使用 mongod 的 --config 或 -f 选项,通过该配置文件启动 MongoDB 实例。例如,在 Linux 上:

mongod --config /etc/mongod.confmongod -f /etc/mongod.conf

修改系统上 mongod.conf 文件中的值,以控制数据库实例的配置。

配置数据库

请考虑以下基本配置:

processManagement: fork: truenet: bindIp: localhost port: 27017storage: dbPath: /var/lib/mongosystemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true

对于大多数独立运行的服务器而言,这是足够使用的基本配置。它基于几项假设,但请考虑以下解释:

fork 为 true,为 mongod 启用守护进程模式模式,该模式会分离(即“分叉”)当前会话中的 MongoDB,并允许您将数据库作为传统服务器运行。

bindIp 为 localhost,它强制服务器仅侦听本地主机 IP 上的请求。仅绑定到应用程序级系统可以通过系统网络过滤(即“防火墙”)提供的访问控制进行访问的安全接口。

port是 27017,即数据库实例的默认 MongoDB 端口。MongoDB 可以绑定到任何端口上。您还可以使用网络筛选工具根据端口对访问进行筛选。

注意

类 UNIX 系统需要超级用户特权才能将进程附加到低于 1024 的端口。

quiet 为 true。这会禁用输出/日志文件中除最关键条目之外的所有条目,不建议用于生产系统。如果设置了该选项,可以在运行时使用 setParameter 修改此设置。

dbPath 是 /var/lib/mongo,它指定 MongoDB 将存储其数据文件的位置。

如果您使用数据包管理器(例如 yum 或 apt)在 Linux 上安装 MongoDB,则随 MongoDB 安装提供的 /etc/mongod.conf 文件将设置以下默认的 dbPath,具体取决于您的 Linux 发行版:

平台包管理器:默认 dbPathRHEL / CentOS 和 Amazonyum/var/lib/mongoSUSEzypper/var/lib/mongoUbuntu 和 Debianapt/var/lib/mongodbmacOSbrew/usr/local/var/mongodb

运行 mongod 的用户帐户将需要对该目录的读写权限。

systemLog.path 是 /var/log/mongodb/mongod.log。这是 mongod 写入输出的位置。如果未设置该值,mongod 会将所有输出写入标准输出(例如 stdout。)

logAppend 为 true,这将确保 mongod 在服务器启动操作后不会覆盖现有日志文件。

给定默认配置中,其中一些值可能是多余的。但在许多情况下,明确说明配置会提高整个系统的可懂度。

安全考虑因素

以下配置选项可用于限制对 mongod 实例的访问:

net: bindIp: localhost,10.8.0.10,192.168.4.24,/tmp/mongod.socksecurity: authorization: enablednet.bindIp

本示例为 bindIp 选项提供了四个值:

localhost,即本地主机接口;

10.8.0.10,即通常用于本地网络和 VPN 接口的私有 IP 地址;

192.168.4.24,通常用于本地网络的专用网络接口;以及

/tmp/mongod.sock,Unix 域套接字路径。

由于生产 MongoDB 实例需要从多个数据库服务器访问,因此将 MongoDB 绑定到可从应用程序服务器访问的多个接口非常重要。同时,将这些接口限制为在网络层控制和保护的接口也十分重要。

security.authorization将此选项设置为 true 将启用 MongoDB 中的授权系统。如果启用,您首次需要通过 localhost 接口连接来登录,以创建用户档案。提示另请参阅:

安全性

复制与分片配置复制配置

副本集配置非常简单,只要求 replSetName 的值在副本集的所有成员间保持一致。请考虑以下内容:

replication: replSetName: set0

对集合使用描述性名称。配置完成后,使用 mongosh 将主机添加到副本集。

提示另请参阅:

副本集重新配置

要使用密钥文件为副本集启用身份验证,请添加以下 keyFile 选项 [1]:

security: keyFile: /srv/mongodb/keyfile

设置 keyFile 启用身份验证,并指定密钥文件供副本集成员相互进行身份验证时使用。

提示另请参阅:

副本集安全性部分,了解使用副本集配置身份验证的相关信息。

复制文档提供了有关 MongoDB 复制和副本集配置的更多信息。

[1] 分片集群和副本集可以使用 x.509 代替密钥文件进行成员身份验证。有关详细信息,请参阅 x.509。分片配置

分片要求配置服务器和分片具有不同 mongod 配置的 mongod 实例。配置服务器存储集群的元数据,而分片存储数据。

要设定配置服务器 mongod 实例,请在配置文件中为 sharding.clusterRole 设置指定 configsvr。

在版本 3.4 中进行了更改:从版本 3.4 开始,MongoDB 取消了对镜像配置服务器的支持,并且配置服务器必须作为副本集进行部署。

sharding: clusterRole: configsvr net: bindIp: 10.8.0.12 port: 27001replication: replSetName: csRS

要将配置服务器作为副本集进行部署,该配置服务器必须运行 WiredTiger 存储引擎。Initiate 副本集并添加成员。

要配置分片 mongod 实例,请为 sharding.clusterRole 设置指定 shardsvr。如果作为副本集运行,则副本集名称:

sharding: clusterRole: shardsvrreplication: replSetName: shardA

如果作为副本集运行,则 initiate 分片副本集并添加成员。

对于路由器(即 mongos),用以下设置配置至少一个 mongos 进程:

sharding: configDB: csRS/10.8.0.12:27001

您可以在副本集名称后以逗号分隔列表的形式指定主机名和端口,以指定配置服务器副本集的其他成员。

提示另请参阅:

有关分片和集群配置的更多信息,请参阅手册的分片部分。

在同一系统上运行多个数据库实例

在许多情况下,不建议在一个系统上运行多个 mongod 实例。在某些类型的部署 [2] 中,出于测试目的,您可能需要在单个系统上运行多个 mongod。

在这些情况下,为每个实例使用一个基本配置,但同时考虑以下配置值:

storage: dbPath: /var/lib/mongo/db0/processManagement: pidFilePath: /var/lib/mongo/db0.pid

dbPath 值控制 mongod 实例数据目录的位置。确保每个数据库都具有不同且标记良好的数据目录。pidFilePath 控制 mongod 进程将其进程 ID 文件放置在何处。由于它追踪特定的 mongod 文件,因此文件必须是唯一的且标记良好,以便轻松启动和停止这些进程。

创建额外的初始化脚本和/或根据需要调整现有 MongoDB 配置和初始化脚本,来控制这些进程。

[2] 带有 SSD 或其他高性能磁盘的单租户系统可以为多个 mongod 实例提供可接受的性能水平。此外,您可能会发现带有小型工作集的多个数据库可以在单个系统上正常运行。诊断配置

以下配置选项控制用于诊断的各种 mongod 行为:

operationProfiling.mode 设置数据库分析器级别。默认情况下,分析器处于非活动状态,因为分析器本身可能会对性能产生影响。除非启用此设置,否则不会对查询进行分析。

operationProfiling.slowOpThresholdMs 配置阈值,该阈值确定查询对于日志记录系统和分析器而言是否“慢”。默认值为 100 毫秒。如果日志记录系统和数据库分析器未返回有用的结果,则设置为较低的值,或者设置为较高的值以仅记录运行时间最长的查询。

现在,副本集的从节点会记录应用时间超过慢操作阈值的 oplog 条目。这些慢 oplog 消息:

在diagnostic log中针对从节点记录。

记录在 REPL 组件下,该组件将含有文本 applied op: took ms。

不依赖日志级别(系统级别或组件级别)

不依赖于分析级别。

受 slowOpSampleRate 影响。

分析器不会捕获慢 oplog 条目。

systemLog.verbosity 控制 mongod 写入日志的日志输出量。仅当遇到未反映在常规日志记录级别中的问题时,才使用此选项。

从 MongoDB 3.0 开始,还可以使用 systemLog.component..verbosity 设置指定特定组件的详细程度。有关可用组件,请参阅 component verbosity settings。

如需了解详情,还可参阅数据库分析器和 MongoDB 性能。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有