天天看点

[转载]MongoDB配置文件说明

原文地址:mongodb配置文件说明作者:lan_zb

简介¶

管理员和用户可以控制mongod或mongos的实例在运行时可以直接从mongod的命令行参数或使用配置文件修改。

虽然这两种方法在功能上等同,且所有设置均类似的,配置文件的方法是可取的。如果您从包中,并已开始安装mongodb的使用系统的控制脚本 ,你已经在使用一个配置文件。

要启动mongod或mongos的的使用一个配置文件,请使用下列形式之一:

mongod --config /etc/mongodb.conf

mongod -f /etc/mongodb.conf

mongos --config /srv/mongodb/mongos.conf

mongos -f /srv/mongodb/mongos.conf

在这个文件中声明的所有设置,使用下面的表格:

=

新的2.0版本中: 在版本2.0 之前 ,布尔值(如true | false)或“标志”参数,注册为true,如果它们出现在配置文件,不论其价值。

设置¶

verbose¶

默认值:false

增加了大量的内部报告返回标准输出或日志文件中所产生的日志路径 。

v ¶

详细的另一种形式。

vv ¶

额外增加的输出和日志记录的详细程度。

vvv ¶

vvvv的 ¶

vvvvv ¶

quiet¶

在一个安静的运行的mongod或mongos的的实例模式,试图限制输出量。此选项抑制:

数据库命令的输出,包括的下降 ,dropindex,diaglogging , 验证 ,清洁 复制活动。 连接接受事件。 连接关闭的事件。

port¶

默认值:27017

为mongod或mongos的的指定的tcp端口 监听客户端连接的实例。unix-like系统号低于1000的端口需要root权限。

bind_ip¶

default: all interfaces.

将此选项设置为配置mongodmongos的进程绑定和监听连接从这个地址上的应用程序。您可以连接mongod 或mongos的情况下,以任何接口,但是,如果你附加的过程中可公开访问的接口,实现正确的身份验证或防火墙的限制,以保护你的数据库的完整性。

您可以连接一个逗号分隔的值列表绑定mongod多个ip地址。

maxconns¶

默认值:取决于系统(即的ulimit和文件描述符)限制除非设定的mongodb不会限制其自己的连接。

指定一个值来设置最大数量的同时mongod或mongos的连接在环境法院听证会期间,法官和环境委员会在之前证据基础上,完全重新考虑整个申请。此设置没有任何影响,如果是高于你的操作系统的配置的最大连接跟踪.threshold

为mongos的,这是特别有用的,如果你有一个客户端创建一个集合,但允许他们超时,而不是关闭的藏品。当您设定maxconns ,确保该值是略高于连接池的大小,或总的连接数从传播的成员来防止错误连接尖峰的碎片群集中。

objcheck¶

设置为true,强制mongod来验证所有的请求从客户端,以确保在收到无效的bson 对象永远不会插入到数据库中。mongod 不启用此默认情况下,因为所需要的开销。

logpath¶

默认值:无。 (即为/ dev / stdout中 )

指定的日志文件,该文件将保存所有的文件名的路径诊断日志记录信息。

除非另有规定,mongod将所有的日志信息输出输出到标准输出。除非logappend是真实的,日志文件将被覆盖时重新启动的过程。

其他

目前,mongodb中的日志文件的内容将覆盖如果不使用logappend 。这种行为可能改变的结果取决于在未来server-4499 。

logappend¶

如果设置为true,则添加新条目的日志文件,而不是覆盖日志的过程重新启动时,内容的。

如果未指定此设置,然后mongodb的覆盖现有的日志文件在启动时。

在不久的将来可能会改变的行为记录系统未来server-4499的情况下。

syslog¶

所有的日志输出发送到主机的系统日志系统,而而不是标准输出或日志文件和日志路径 。

警告

您不能使用系统日志与日志路径 。

pidfilepath¶

默认值:无。

指定文件的位置举行的“ pid “或进程idmongod进程。有用跟踪mongod过程中的结合的叉设置。

如果没有这个选项,mongod创建pid文件。

keyfile¶

指定的密钥文件的路径存储身份验证的信息。此选项只适用于之间的连接副本集的成员。

参见。

“ 副本设置安全 “和“ 副本集的管理 。“

nounixsocket¶

设置为true,禁用侦听的unix插座上。除非设定为false,mongod和mongos的提供unix套接字。

unixsocketprefix ¶

默认值 :/ tmp目录

指定的unix套接字的路径。除非此选项的值,mongod mongos的的 ,创建一个套接字/ tmp作为前缀。

fork¶

如果设置为true,则启用守护模式mongod,运行过程中的背景。

auth¶

如果设置为true,则启用数据库用户身份验证来自远程主机的连接。配置用户通过蒙戈shell如果没有用户,本地主机接口将继续对数据库的访问,直到你创建的第一个用户。

cpu¶

设置为true,强制mongod提交一次报告4秒的cpu使用率和的时间量,所述处理器等待i / o操作完成(即i / o等待。)mongodb中写道:如果使用的数据输出到标准输出或日志文件日志路径选择。

dbpath¶

default: /data/db/

将此值设置为指定的一个目录的mongod 实例来存储其数据。典型的地区包括:的/ srv / mongodb的的/ var / lib中/ mongodb的或者/ opt / mongodb的

除非另有规定,mongod将寻找数据文件中的默认的/数据/ db目录中。(windows系统下使用 data db目录中。)如果您已安装包中输入sql查询。检查的/ etc / mongodb.conf中提供的文件你的包看的dbpath的配置。

diaglog ¶

默认值:0

创建一个非常详细的故障排除和诊断日志记录各种错误。在mongodb中写入这些日志文件dbpath目录中的字符串开头的一系列文件,diaglog启动的时间记录追加为十六进制string.

此设置的值配置水平详细度可能的值,其影响如下:

{0}  {/0}value

设置

第0天

折!没有记录。

1

日志写操作。

2

日志读取操作。

3

日志读取和写入操作。

7

日志写入和一些读操作。

重播输出,您可以使用mongosniff的工具进行调查。一个典型的diaglog文件,位于/ data/db/diaglog.4f76a58c,你可以使用一个命令,在以下表格来读取这些文件:

mongosniff --source diaglog /data/db/diaglog.4f76a58c

diaglog是供内部使用,不用于最用户。

的诊断级别设置为0,将导致mongod 停止的诊断日志文件写入数据。但是,该的mongod实例将继续保持打开该文件,即使它不再将数据写入到该文件。如果你想重命名,移动或删除诊断日志,你必须完全关闭在这样做之前下来的mongod实例。

directoryperdb¶

设置为true,修改的数据目录中的存储模式每个数据库的文件存储在不同的文件夹中。此选项在dbpath命名为每个创建目录 directory.

在您的文件系统和设备的结合使用此选项mongodb的配置,以便将数据存储在若干不同的磁盘设备的写入吞吐量增加或磁盘容量。

journal¶

default: (on 64-bit systems) true

default: (on 32-bit systems) false

如果设置为true,则启用操作日志,以确保写耐用性和数据的一致性。

设置为false,以防止日志的情况下的开销在耐用性不是必需的。为了减少影响,日志的磁盘使用情况,您可以将杂志 启用,并设置为true,以降低smallfiles的大小数据和日志文件。

journalcommitinterval¶

默认值:100

将此值设置为指定的时间上限mongod之间所允许的日志操作。默认的值是100毫秒。值越低,增加耐用性杂志上,在尽可能低的代价的磁盘性能。

此选项接受2和300毫秒之间的值。

要强制mongod更频繁地提交到日志,您可以指定“j:”真实的“。当j:真正的写操作, 待决,,mongod将减少journalcommitinterval定值的三分之一。

ipv6¶

设置为true,对ipv6的支持,允许客户端连接到mongod mongod禁止使用ipv6的网络。mongod和所有的工具在默认情况下的ipv6的支持。

jsonp¶

如果设置为true,则允许jsonp通过http访问界面考虑安全问题,使这活动设置此选项之前。

noauth¶

默认值:true

禁用身份验证。目前默认值。为未来而存在兼容性和清晰度。

为了保持一致性,使用的身份验证选项。

nohttpinterface¶

设置为true,禁用http接口。此命令将覆盖休息 ,禁用http接口,如果你同时指定。

在2.1.2版更改: nohttpinterface选项是不可用mongos的情况下才2.1.2

nojournal¶

默认值:(64位系统)假

默认值:(32位系统)的真实

设置带有nojournal = true来禁用持久性日志。通过默认情况下,mongod可以在64位版本的日记后2.0。

noprealloc¶

设置noprealloc = true来禁用预分配的数据它的格式与 shell 的路径设置一样: 冒号分割多个路径名(windows环境使用分号分割).这将缩短启动时间在某些情况下,但可以在正常操作过程中,会导致显着的性能损失。

noscripting¶

设置noscripting = true来禁用脚本引擎。

notablescan¶

设置notablescan = true来禁止操作需要表扫描。

nssize¶

默认值:16

指定此值(以mb为单位)。

使用此设置来控制所有新创建的默认大小命名空间的文件(即ns)。此选项有没有影响现有的命名空间的文件的大小。

默认值是16兆字节,这提供了有效的12000可能的命名空间。的最大大小为2 gb。

profile¶

修改此值水平的数据库分析,经营业绩的信息插入到输出mongod或指定的日志文件,如果日志路径 。以下级别可供选择:

水平

关。无分析。

开仅包括较慢的操作。

开包括所有的操作。

默认情况下的mongod禁用分析。数据库分析可能会影响数据库的性能,因为探查器必须记录并处理所有的数据库操作。启用此选项后,才慎重考虑。

quota¶

设置为true, 以使最高限额为数字数据文件每个数据库都可以有。默认的配额是8个数据文件,当配额是真实的。调整配额大小的quotafiles设置。

quotafiles¶

默认值:8

修改限制每个数据库的数据文件的数量。此选项需要配额设置。

rest¶

如果设置为true, 以使一个简单的rest接口。

repair¶

设置为true,执行修复程序后对所有数据库起动一般来说,你应该在命令行上设置此选项而不是在配置文件或在控制脚本 。

使用mongod -修复选项来访问功能。

因为mongod重写所有的数据库文件在维修过程中程序,如果你不运行维修 mongod通常运行在相同的用户帐户,您的数据库文件,您将需要运行 chown纠正的权限,然后再次启动mongod。

repairpath¶

default: dbpath

指定的路径mongodb的数据文件所在的目录,使用与修复设置一起或mongod -修复操作。默认的价值指定dbpath 。

slowms¶

指定以毫秒为单位的值。

设置的门槛mongod考虑查询的“慢”数据库中探查。该数据库记录了所有的查询速度慢日志,即使当探查未启用。当数据库分析器是,mongod分析器写入system.profile集合。

: profile

smallfiles¶

设置为true,修改mongodb的使用较小的默认数据{0}file{/0}{1}.size(){/1}具体来说, smallfiles降低了初始用于数据文件和它们限制到512的大小兆字节smallfiles设置也降低每个的大小杂志 1千兆字节到128兆字节的文件。

如果你有大量的数据库,使用smallfiles设置各自持有少量的数据。smallfiles设置导致mongod创建很多文件,这可能会影响更大的数据库的性能。

syncdelay¶

预设值:60

此设置控制之间的最大秒数刷新待写入到磁盘中。而mongod总是将数据写入磁盘,该设置控制了最大的保证一个成功的写操作和下一次之间的间隔数据库刷新数据到磁盘上。

在许多情况下,实际的时间间隔之间的写操作和磁盘刷新比的值是更短的

如果设置为0,mongod刷新到磁盘上的所有操作立即,可以具有显着的性能的影响。if日记是真实的,所有的写操作将是持久的,通过该杂志由指定的时间内journalcommitinterval 。

sysinfo¶

当设置为true,mongod返回诊断系统关于页面大小的信息,物理页的数目,可用的物理页面输出到标准输出。

更典型地,执行此操作的方式的mongod - sysinfo的 当运行的sysinfo ,mongod只输出的页面信息,没有数据库过程将开始。

upgrade¶

当此选项设置为 true升级磁盘上的数据格式由dbpath到最新指定的文件版本,如果需要的话。

此选项仅影响操作的mongod数据文件是在一个旧的格式。

指定的mongos的实例时,该选项将更新使用配置数据库的元数据格式。

在大多数情况下,你不应该设置这个值,这样你就可以行使最大程度地控制您的升级过程。请参阅mongodb的发行说明 (下载页面)有关升级过程的更多信息。

traceexceptions¶

对于使用内部诊断。

复制选项¶

replset¶

默认值:<</em>无>

形式:

使用此设置来配置复制的副本sets指定副本组的名称作为参数,这一套。所有主机必须具有相同的组名称。

复制“ 副本集管理 ,““ 副本集的配置 “

oplogsize¶

复制操作指定的最大大小(以兆字节为单位)日志(例如oplog )。mongod创建一个oplog的基础上的最大可用空间量。对于64位系统,oplog一般是5%的可用磁盘空间。

一旦mongod已为先创建的oplog时间,改变oplogsize不会影响的大小oplog。

fastsync¶

在副本集复制的情况下,设置此选项为true,如果你已经接种了该副本的快照dbpath的另一名成员的集合。否则,mongod将尝试执行完全同步。

如果数据还没有完美的同步和 mongod与fastsync开始,然后中学或从站将永久不同步小学,这可能会导致显着的一致性问题。

replindexprefetch¶

新的2.2版本中。

默认值: 所有

值: 所有 , 没有,_id_only

您,必须使用replindexprefetch在配合replset 。

默认情况下, 二级的副本集成员加载到内存中的所有相关指标的操作前应用的oplog操作。您可以修改此行为,以便辅助将只加载的_id指数。指定_id_only或没有 ,以防止mongod任何索引加载到内存中。

主/从复制¶

master¶

设置为 true配置作为当前实例复制配置中的主实例中。

slave¶

设置为 true配置作为当前实例从例如,在复制配置。

source¶

default: <>

form: :

的奴隶设置指定主实例, 从实例将复制

only¶

从选项, 只设置与使用仅指定一个单一的数据库进行复制。

slavedelay¶

奴隶的设置与使用,slavedelay设置在几秒钟内配置一个“延迟”,该从站等待申请从主实例操作。

autoresync¶

使用的奴隶设置,设置autoresync如果真给力的奴隶 ,自动重新同步超过10秒,后面的主。该设置可能问题,如果- oplogsize oplog太小“(控制的- oplogsize选项。)如果oplog并不大足够的存储高手之间的差异目前的状况和状态的奴隶,这种情况下会强制重新同步本身是不必要的。当你设置autoresync时 选项,从站将不会尝试自动重新同步多一旦在10分钟内。

分片群集选项¶

configsvr¶

将此值设置为true,配置mongod 实例操作的配置数据库的碎片n.束,组;n.组,簇mongod使用此选项的默认端口27019 mongod写的所有的数据文件/ configdb的子目录的dbpath目录的。

shardsvr¶

将此值设置为true,配置mongod 例如在一个分区的簇的碎片。的默认端口这种情况下是27018。

nomoveparanoia¶

当设置为true, nomoveparanoia禁用“偏执模式”的数据块迁移操作中写道。請參閱块迁移和movechunk命令的文档了解更多信息。

默认情况下,,mongod将节省迁移数据块的副本“从”服务器迁移过程中的“偏执模式”。设置此选项禁用此偏执狂。

configdb¶

格式 :, <:端口>,

设置此选项来指定配置数据库(即配置数据库 )的片式集群 。你开始了调查分析仪,必须指定配置服务器或3配置服务器,以逗号分隔的列表。

此设置只影响mongos的过程。

test¶

只有运行单元测试不会启动mongos的的的的实例。

此设置只影响mongos的进程,并为只使用内部测试。

chunksize¶

默认值:64

此选项的值的大小决定了每块 各地的片式集群分布的数据。默认的值是64兆字节。较大的块可能会导致不均匀的分布的数据,而较小的数据块可能会导致频繁和不必要的迁移。然而,在某些情况下,它可能是需要设置不同的块大小。

此设置只影响mongos的过程。除此之外,在初始化时, chunksize 只设置块大小为第一次的群集。如果你修改了运行时选项后,新的值将没有任何效果。请参阅“ 修改块大小 “的过程,如果你需要改变的块大小,在现有的片式集群。

localthreshold¶

localthreshold影响程序的逻辑:mongos的 使用时,选择副本集成员通过读取操作从客户端。指定一个值localthreshold以毫秒为单位。默认值是15,其对应于所有的客户端中的默认值。

当mongos的接收到一个请求,允许读取二级会员, mongos的 :

找到最近的合适的设置,成员的ping时间。 构建副本集成员的列表,是在平最近的合适成员,时间为15毫秒s

如果你指定值localthreshold ,mongos的将构建的副 本成员名单此值所允许的延迟内。

mongos的会选择一个成员,从在读从这个名单中随机。

继续阅读