运行时数据库配置
命令行和配置文件界面可为 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客户端,配置工厂 引用mongodb客户端
mongodb的配置文件标准化介绍与最常用的三种启动方式
MongoDB之conf配置文件详解
mongodb4.2配置文件
添加mongo加权限并设置开机系统启动, # chkconfig: 2345 90 10 这个参数必须要加进去否则报错,...chmod +x /etc/rc.d/init.d/mongod --新建的文件必须赋值权限,富裕后文件名字颜色从白色到黑色 chkconfig mongod on
kotlin语言写的NSQ消费者接受数据,然后将数据存入mongodb缓存中(连接mongodb工具类及配置文件)
《MongoDB 分片复制集集群搭建》博客附件。 博客地址:https://blog.csdn.net/Supreme_Sir/article/details/114959912
基于MongoDB官网,进行的极其详尽的人工翻译。贴近官网原文,适用于想要学习、了解、运用MongoDB的人员。
mongodb在linux下配置的日志配置文件,服务service配置文件;不包含任何安装文档
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 4.4 数据库全部参数详细说明,共计十大类别参数。包括:一般参数、审计、事务、wireTiger、日志、验证、复制、分片等相关参数。
mongodb安装包和配置文件! mongodb安装包和配置文件!
mongo配置文件
整合spring和mongodb用到的包和配置文件 spring和mongodb的配置很麻烦 版本不对应就容易报错 这里可以直接引用 只要解压后放到web-inf文件夹中即可 自己工程的lib文件夹如果已经有东西 则把解压出的lib中包放到自己...
在linux下配置 和启动mongodb 此为非常简单的配置
在配置文件mongod.conf 中加入 auth = true 如果你开启了--rest参数,甚至可以直接通过web界面查询数据,执行mongod命令。 2、关闭网页管理 在配置文件mongod.conf 中加入nohttpinterface=true,rest = false 不加会...
spring data mongodb的demo程序,参考App.java中的调用方法,mongodb配置文件在resources目录下,整个项目使用maven,适合初学者学习。
最近在配置mongodb的时候遇到了一些问题,现总结出来方便以后需要或同样遇到该问题的朋友们参考,下面这篇文章主要给大家介绍了关于MongoDB 3.4配置文件时避免入坑的两个注意事项,需要的朋友们下面随着小编来一起...
mongodb安装、mongodb的备份与恢复