运行时数据库配置
命令行和配置文件界面可为 MongoDB 管理员提供大量选项和设置,用于控制数据库系统的运行。该文档提供了通用配置以及普通使用案例的最佳配置示例。
尽管两种界面都可访问相同的选项和设置集合,但该文档主要使用配置文件界面。如果您使用控制脚本或操作系统的程序包来运行 MongoDB,很可能已经有一个配置文件,该文件位于 /etc/mogondb.conf。检查/etc/init.d/mongod 或 /etc/rc.d/mongod 脚本的内容确定这一点,以确保控制脚本会以适当的配置文件启动 mongod(见下文)。
要使用该配置启动 MongoDB 实例,按以下格式发出一个命令:
mongod --config /etc/mongodb.conf mongod -f /etc/mongodb.conf
修改系统上的 /etc/mongodb.conf 文件中的值,以控制数据库实例的配置。
启动、停止和运行数据库
请看以下基本配置:
fork = true bind_ip = 127.0.0.1 port = 27017 quiet = true dbpath =/srv/mongodb logpath = /var/log/mongodb/mongod.log logappend = truejournal = true
对于大多数独立服务器,这是足够使用的基本配置。它作了几个假定,但请看以下说明:
-
fork 为true,可为 mongod 启用后台模式 ,使(如 "forks")MongoDB 从当前会话中分离,并允许您将数据库作为传统服务器来运行。
-
bind_ip 为127.0.0.1,它会强制服务器仅侦听本地主机 IP 上的请求。仅绑定至安全接口,该接口可由应用程序级系统通过系统网络过滤(如“防火墙”)系统提供的访问控制权限来访问。
-
端口为 27017,这是数据库实例的默认 MongoDB 端口。MongoDB 可绑定至任何端口。您也可以使用网络过滤工具来过滤访问权限。
注意
UNIX 类系统要求超级用户权限才能将进程连接至低于 1000 的端口。
-
quiet 为 true。这会禁止输出/日志文件中的所有条目,但最重要的条目除外。在正常操作中,这是避免日志噪音的最佳操作。在诊断或测试情况中,将该值设为false。使用 setParameter 可在运行时过程中修改该设置。
-
dbpath 为 /srv/mongodb,它指定 MongoDB 存储其数据文件的位置。/srv/mongodb 和 /var/lib/mongodb 都是常用的位置。mongod 运行时所在的用户帐户将需要对该目录具有读写权限。
-
logpath 为 /var/log/mongodb/mongod.log,其中 mongod 将写入其输出。如果您不设置此值,mongod 将把所有输出写入到标准输出(即 stdout)中。
-
logappend为 true,确保 mongod 在服务器启动操作之后不会覆盖现有的日志文件。
-
- journal 为 true,这样将启用 日志。
日志可确保单实例写入耐久性。 64 位版本的 mongod默认情况下启用日志。因此,此设置可能是多余的。
如果采用默认配置,有些值可能是多余的。但是,在很多情况下,明确地描述配置可促进对整个系统的理解。
安全考虑事项
下面的配置选项集合对于限制对 mongod 实例的访问权限很有用。请考虑以下配置:
bind_ip = 127.0.0.1 bind_ip = 10.8.0.10 bind_ip = 192.168.4.24nounixsocket = true auth = true
考虑对这些配置决定的下列解释:
-
“bind_ip”有三个值:127.0.0.1,本地主机接口;10.8.0.10,通常用于本地网络和 VPN 接口的专用 IP 地址;192.168.4.24,通常用于本地网络的专用网络接口。
由于生产 MongoDB 实例需要从多个数据库服务器访问,因此务必将 MongoDB 绑定到多个可从您的应用程序服务器访问的接口。同时,务必将这些接口限制为在网络层实现控制和保护的接口。
-
“nounixsocket”为 true,这样将会禁用 UNIX 套接字,而在默认情况下为启用。这样可限制对本地系统的访问。使用共享权限连续运行 MongoDB 时这种情况很理想,但在大多数情况下影响极小。
-
“auth”为 true,这样将在 MongoDB 中启用身份验证。如果已启用,第一次登录时您需要通过本地主机接口建立连接,以创建用户凭证。
另见
“安全和身份验证”维基页面。
复制和分片配置
复制配置
副本集配置简单明了,只需要 replSet 有一个在集合的所有成员之间保持一致的值即可。请考虑以下配置:
replSet = set0
使用描述性的副本集名称。配置后,使用 mongo壳将主机添加到副本集。
另见
“副本集重新配置”。
要对副本集启用身份验证,请添加下列项:
keyfile = /srv/mongodb/keyfile
1.8 版新特性:针对副本集;1.9.1 版针对分片副本集。
设置keyFile以启用身份验证,并指定一个密钥文件供副本集成员使用,确定相互之间何时进行身份验证。密钥文件的内容可以任意规定,但在副本集 以及连接到该集的 mongos 实例的所有成员上必须相同。 keyfile 的大小必须小于 1 KB,可以只包含 base64 编码集字符,文件在 UNIX 系统上不得拥有组或“世界”权限。
分片配置
分片需要若干采用不同配置的 mongod 实例。配置服务器存储群集的元数据,而群集将数据发布到一个或多个分片服务器。
设置一个或三个“配置服务器”实例作为正常 mongod 实例,然后添加下列配置选项:
configsrv = true bind_ip = 10.8.0.12 port = 27001
这样将创建一个运行于专用 IP 地址:10.8.0.12,端口:27001 的配置服务器。确保没有端口冲突,且配置服务器可从您的“mongos”和“mongod”实例访问。
要设置分片,请配置两个或更多 mongod实例,使用您的基本配置并添加 shardsvr 设置:
shardsvr = true
最后建立群集,使用下列设置来配置至少一个 mongos 进程:
configdb = 10.8.0.12:27001 chunkSize = 64
您可以通过在逗号分隔列表的表格中指定主机名和端口来指定多个 configdb 实例。通常,避免将 chunkSize 修改为默认值 64 以外的值,[1]并应当确保此设置在所有 mongos实例中都保持一致。
[1] | 数据块大小默认值为 64 MB,可在最均匀的数据分布(较小的数据块最佳)和最小化数据块迁移(较大的数据块最佳)之间实现理想的平衡。 |
另见
“分片”维基页面,以了解关于分片和分片群集配置的详细信息。
在同一系统上运行多个数据库实例
在很多情况下,建议不要在单个系统上运行多个 mongod 实例。有些类型的部署[2]可能会出于测试目的而需要在单个系统上运行多个 mongod。
在这些情况下,为每个实例应用基本配置,但是请考虑下列配置值:
dbpath = /srv/mongodb/db0/ pidfileath = /srv/mongodb/db0.pid
dbpath 值控制 mongod 实例的数据目录的位置。确保每个数据库都有明确且标签正确的数据目录。pidfilepath 控制 mongod 进程将其pid 文件放置到的位置。由于此轨迹取决于具体的 mongod文件,因此务必确保该文件是唯一的且标签正确,以便于开始和停止这些进程。
创建附加控制脚本并/或调整现有 MongoDB 的配置以及控制这些进程所需的控制脚本。
[2] | 使用 SSD 或其他高性能磁盘的单租户系统可为多 mongod 实例提供可接受的性能水平。此外,您还会发现,使用小工作集的多数据库在单系统上的性能可以接受。 |
诊断配置
下列配置选项控制多种用于诊断的 mongod 行为。下列使用针对一般生产目的调整的默认值:
slowms = 50 profile = 3 verbose = true diaglog = 3 objcheck = truecpu = true
使用基本配置,如果您遇到一些未知的问题或性能问题,根据需要添加这些选项:
-
slowms 配置数据库探查器的阈值以考虑“缓慢”的查询。默认值为 100 毫秒。如果数据库探查器未返回有用的结果,则设置较低的值。请参阅“优化”维基页面,以了解 MongoDB 中的优化操作的详细信息。
-
profile 设置数据库探查器 等级。探查器默认情况下不活动,因为那样可能会影响探查器本身的性能。除非为此设置指定了一个值,否则不对查询进行探查。
-
verbose 启用详细记录模式,在此模式下可修改 mongod 输出并增加记录以包括更多的事件。仅在遇到不能正常反映日志记录级别的问题时使用此选项。如果您需要达到更详细的级别,请考虑下列选项:
v = true vv = true vvv = true vvvv = true vvvvv = true
增加的每个 v 级别都会额外地增加记录的详细程度。verbose 选项相当于 v=true。
-
diaglog 启用诊断日志记录。等级 3 记录所有读写选项。
-
objcheck 强制 mongod 在收到来自客户端的请求时全部进行验证。使用此选项确保无效的请求不会导致错误,特别是在不可信客户机运行数据库时。此选项可能会影响数据库的性能。
-
- cpu 强制 mongod 报告
写锁定所用的最后时间间隔的百分比。时间间隔通常为 4 秒,日志中的每个输出行都包括自上次报告以来的实际时间间隔和写锁定所用的时间百分比。
相关推荐
MongoDB配置文件详细解析 MongoDB配置文件是 MongoDB 数据库的核心组件,它控制着 MongoDB 的行为和性能。本文档将详细讲述 MongoDB 配置文件的各种配置项和其作用。 一. 配置文件格式 MongoDB 配置文件采用 YAML...
MongoDB 配置文件标准化与三种通常的启动方式介绍 MongoDB 的配置文件标准化是指在 MongoDB 中配置文件的标准化设置,以便更好地管理和维护 MongoDB 数据库。配置文件是 MongoDB 的核心组件之一,它定义了 MongoDB ...
MongoDB的配置文件信息,加载mongodb的属性配置文件,配置mongodb客户端,配置工厂 引用mongodb客户端
MongoDB之conf配置文件详解 MongoDB的配置文件是服务器的核心组件之一,它控制着MongoDB服务器的各种设置和行为。在本文中,我们将详细介绍MongoDB的配置文件的各个部分,并解释每个设置的作用和意义。 一、数据库...
本文将详细介绍MongoDB配置文件的各个方面,帮助读者深入理解如何有效地配置和管理MongoDB服务。 1. **配置文件选项**: MongoDB的配置文件用于设置`mongod`和`mongos`实例的启动参数,这些参数与命令行选项相当。...
mongodb4.2配置文件
添加mongo加权限并设置开机系统启动, # chkconfig: 2345 90 10 这个参数必须要加进去否则报错,...chmod +x /etc/rc.d/init.d/mongod --新建的文件必须赋值权限,富裕后文件名字颜色从白色到黑色 chkconfig mongod on
在MongoDB复制集中,每个成员都有一个配置文件,用于定义成员的角色、连接信息等。配置文件通常包含以下内容: 1. `replicaSet`:设置复制集的名称。 2. `net`:网络设置,如端口、绑定IP等。 3. `storage`:数据...
1. MongoDB配置文件: MongoDB的主要配置文件名为`mongod.conf`,通常位于 `/etc/mongodb/` 或 `/etc/mongod.conf` 目录下。这个文件包含了MongoDB服务器启动时的各种参数,如数据存储路径、端口号、网络设置、安全...
配置文件,通常使用YAML或JSON格式,可以存储MongoDB连接信息,避免在代码中硬编码敏感数据。例如,一个基本的YAML配置文件可能如下所示: ```yaml database: host: localhost port: 27017 name: mydb user: ...
**二、MongoDB配置文件** MongoDB的配置文件通常名为`mongod.conf`,位于安装目录下的`bin`或`data`子目录。这个文件控制MongoDB实例的行为,包括数据存储位置、端口设置、日志记录等。 1. **基本配置选项**: - `...
"MongoDB 在 Linux 下的配置和启动" MongoDB 是一个流行的 NoSQL 数据库,广泛应用于大数据存储和实时数据处理。在 Linux 环境下,配置和启动 MongoDB 需要遵循一定的步骤,本文将详细介绍在 Linux 下配置和启动 ...
MongoDB 是一个流行的开源文档数据库系统,其4.4版本提供了丰富的配置参数来优化和管理数据库的性能、安全性和稳定性。以下是对这些参数的详细解释: ### 验证参数 这些参数涉及到数据库的安全认证和权限控制: - `...
Java 中 MongoDB 使用环境详细配置 Java 中 MongoDB 使用环境详细配置是指在 Windows 平台(WinXP)上安装、运行、安装 Windows 服务的笔记,以作备忘。下面是一些重要的知识点: 1. MongoDB 的下载和安装 ...
1,创建logs文件夹,在下面创建log日志文件:C:\MongoDB\Server\3.4\data\logs\mongo.log 2、按照这个路径创建文件夹:C:\MongoDB\Server\3.4\data\db 3.配置环境变量 2.以管理员方式开启cmd 3.进入mongodb的bin...
MongoDB 的安装和配置过程主要包括创建数据存储位置、配置环境变量、执行 cmd 命令、创建日志存放文件夹、创建日志存放文件、创建 MongoDB 配置文件、修改配置信息内容和执行 cmd 命令等步骤。通过遵循这些步骤,...
在“mongodb配置.rar”这个压缩包中,包含了三个关键文件,它们是“mongodb.conf”配置文件、“stop.sh”停止脚本和“run.sh”启动脚本,这些都是MongoDB在Linux环境下部署和管理时常见的文件。 首先,我们来看...
官方网站提供了多种版本的安装包,用户可以根据自己的需求选择合适的版本。本文使用的安装包地址为:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz 使用 SSH 工具登录服务器,并创建一个文件夹...
- **步骤2**:创建配置文件。 ```bash # master.conf dbpath=/data/master logpath=/data/log/mongodb/master/mongodb.log pidfilepath=/var/run/mongo_master.pid #directoryperdb=true logappend=true ...
- **配置文件**:在 MongoDB 的配置文件中设置资源限制。 **9.3 推荐设置** - **最大文件大小**:根据系统需求设置最大文件大小。 - **最大打开文件数量**:设置最大同时打开的文件数量。 - **最大进程数**:设置...