Core Options
systemLog Options
systemLog:
verbosity: <int>
quiet: <boolean>
traceAllExceptions: <boolean>
syslogFacility: <string>
path: <string>
logAppend: <boolean>
logRotate: <string>
destination: <string>
timeStampFormat: <string>
component:
accessControl:
verbosity: <int>
command:
verbosity: <int>
systemLog.verbosity
Type: integer
Default: 0
Changed in version 3.0.
组件的默认日志消息详细程度级别。详细程度级别决定了MongoDB输出的信息和Debug消息量。
详细级别可以在0到5之间:
- 0是MongoDB的默认日志详细级别,以包括信息性消息。
- 1到5增加了详细级别以包括Debug消息。
systemLog.quiet
Type: boolean
运行mongos或mongod在一个安静的模式,试图限制输出量。
systemLog.quiet不推荐用于生产系统,因为它可能会使特定连接中的跟踪问题变得更加困难。
systemLog.traceAllExceptions
Type: boolean
打印详细信息进行调试。 用于支持相关故障排除的其他日志记录。
systemLog.syslogFacility
Type: string
Default: user
将消息记录到syslog时使用的设备级别。 您指定的值必须由操作系统的syslog实现支持。 要使用此选项,必须启用--syslog选项。
systemLog.path
Type: string
mongod或mongos应发送所有诊断日志信息的日志文件的路径,而不是标准输出或主机的syslog。 MongoDB在指定的路径上创建日志文件。
Linux程序包init脚本不希望systemLog.path从默认值更改。 如果使用Linux软件包并更改systemLog.path,则必须使用自己的init脚本并禁用内置脚本。
systemLog.logAppend
Type: boolean
Default: False
当为真时,当mongos或mongod实例重新启动时,mongos或mongod会将新条目追加到现有日志文件的末尾。 没有此选项,mongod将备份现有日志并创建一个新文件。
systemLog.logRotate
Type: string
Default: rename
New in version 3.0.0.
logRotate命令的行为。 指定重命名或重新打开:
- 重命名重命名日志文件。
- 重新打开关闭并按照典型的Linux/Unix日志旋转行为重新打开日志文件。 使用Linux/Unix logrotate实用程序时,请重新打开以避免日志丢失。
如果指定重新打开,还必须将systemLog.logAppend设置为true。
systemLog.destination
Type: string
MongoDB发送所有日志输出的目的地。 指定文件或syslog。 如果指定文件,还必须指定systemLog.path。
如果不指定systemLog.destination,MongoDB会将所有日志输出发送到标准输出。
systemLog.timeStampFormat
Type: string
Default: iso8601-local
日志消息中时间戳的时间格式。 指定以下值之一:
Value | Description |
---|---|
ctime | 显示时间戳为Wed Dec 31 18:17:54.811。 |
iso8601-utc | 以ISO-8601格式显示协调世界时(UTC)的时间戳。 例如,在时代开始的纽约:1970-01-01T00:00:00.000Z |
iso8601-local | 以ISO-8601格式显示本地时间的时间戳。 例如,对于纽约在时代的开始:1969-12-31T19:00:00.000-0500 |
systemLog.component Options
systemLog:
component:
accessControl:
verbosity: <int>
command:
verbosity: <int>
......
storage:
verbosity: <int>
journal:
verbosity: <int>
write:
verbosity: <int>
systemLog.component.accessControl.verbosity
Type: integer
Default: 0
New in version 3.0.
与访问控制相关的组件的日志消息详细程度级别。 请参阅ACCESS组件。
systemLog.component.command.verbosity
Type: integer
Default: 0
New in version 3.0.
与命令相关的组件的日志消息详细程度级别。 请参见COMMAND组件。
systemLog.component.control.verbosity
Type: integer
Default: 0
New in version 3.0.
与控制操作有关的组件的日志消息详细程度级别。 请参阅控制组件。
systemLog.component.ftdc.verbosity
Type: integer
Default: 0
New in version 3.2.
与诊断数据收集操作相关的组件的日志消息详细程度级别。 请参阅FTDC组件。
systemLog.component.geo.verbosity
Type: integer
Default: 0
New in version 3.0.
与地理空间解析操作相关的组件的日志消息详细级别。 见GEO组件。
systemLog.component.index.verbosity
Type: integer
Default: 0
New in version 3.0.
与索引操作相关的组件的日志消息详细级别。 请参阅INDEX组件。
systemLog.component.network.verbosity
Type: integer
Default: 0
New in version 3.0.
与网络操作有关的组件的日志消息详细级别。 请参阅NETWORK组件。
systemLog.component.query.verbosity
Type: integer
Default: 0
New in version 3.0.
与查询操作相关的组件的日志消息详细级别。 查看QUERY组件。
systemLog.component.replication.verbosity
Type: integer
Default: 0
New in version 3.0.
与复制相关的组件的日志消息详细程度级别。 请参阅REPL组件。
systemLog.component.sharding.verbosity
Type: integer
Default: 0
New in version 3.0.
与分片相关的组件的日志消息详细程度级别。 请参阅SHARDING组件。
systemLog.component.storage.verbosity
Type: integer
Default: 0
New in version 3.0.
与存储相关的组件的日志消息详细程度级别。 请参阅STORAGE组件。
如果systemLog.component.storage.journal.verbosity未设置,则systemLog.component.storage.verbosity级别也适用于日志组件。
systemLog.component.storage.journal.verbosity
Type: integer
Default: 0
New in version 3.0.
与日志相关的组件的日志消息详细程度级别。 请参阅JOURNAL组件。
如果systemLog.component.storage.journal.verbosity未设置,日志组件具有与父存储组件相同的详细级别:即如果设置为systemLog.component.storage.verbosity级别或默认详细程度级别。
systemLog.component.write.verbosity
Type: integer
Default: 0
New in version 3.0.
与写入操作相关的组件的日志消息详细程度级别。 请参阅WRITE组件。
processManagement Options
processManagement:
fork: <boolean>
pidFilePath: <string>
processManagement.fork
Type: boolean
Default: False
启用在后台运行mongos或mongod进程的守护程序模式。 默认情况下,mongos或mongod不作为守护进程运行:通常,您将通过使用processManagement.fork或使用处理守护进程的控制进程(例如与upstart和systemd一样)来运行mongos或mongod作为守护程序。
Linux包初始化脚本不希望processManagement.fork从默认值更改。 如果使用Linux软件包并更改processManagement.fork,则必须使用自己的init脚本并禁用内置脚本。
processManagement.pidFilePath
Type: string
指定一个文件位置来保存mongos或mongod进程的进程ID,其中mongos或mongod将会写入其PID。 这可以与--fork选项一起跟踪mongos或mongod进程。 没有指定的processManagement.pidFilePath选项,该进程将不创建PID文件。
net Options
net:
port: <int>
bindIp: <string>
maxIncomingConnections: <int>
wireObjectCheck: <boolean>
ipv6: <boolean>
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <int>
http:
enabled: <boolean>
JSONPEnabled: <boolean>
RESTInterfaceEnabled: <boolean>
ssl:
sslOnNormalPorts: <boolean> # deprecated since 2.6
mode: <string>
PEMKeyFile: <string>
PEMKeyPassword: <string>
clusterFile: <string>
clusterPassword: <string>
CAFile: <string>
CRLFile: <string>
allowConnectionsWithoutCertificates: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
disabledProtocols: <string>
FIPSMode: <boolean>
net.port
Type: integer
Default: 27017
MongoDB实例侦听客户端连接的TCP端口。
net.bindIp
Type: string
Default: All interfaces.
为了监听来自应用程序的连接,mongos或mongod绑定的IP地址。 您可以将mongos或mongod附加到任何界面。 将mongos或mongod附加到可公开访问的界面时,请确保已实施正确的身份验证和防火墙限制,以保护数据库的完整性。
要绑定到多个IP地址,请输入逗号分隔值的列表。
net.maxIncomingConnections
Type: integer
Default: 65536
mongos或mongod将接受的最大同时连接数。 如果高于操作系统配置的最大连接跟踪阈值,此设置将不起作用。
不要为此选项分配太低的值,否则在正常应用程序操作期间将遇到错误。
如果您有一个客户端创建多个连接并允许它们超时而不是关闭它们,这对于mongos特别有用。
在这种情况下,请将maxIncomingConnections设置为稍高于客户端创建的最大连接数或者连接池的最大大小的值。
此设置可防止mongos在各个碎片上引起连接尖峰。 像这样的尖峰可能会破坏分片集群的操作和内存分配。
net.wireObjectCheck
Type: boolean
Default: True
如果真的,mongod或mongos实例在接收时验证客户端的所有请求,以防止客户端将错误或无效的BSON插入到MongoDB数据库中。
对于具有高度子文档嵌套的对象,net.wireObjectCheck对性能影响很小。
net.ipv6
Type: boolean
Default: False
Removed in version 3.0.
启用或禁用IPv6支持,并允许mongos或mongod使用IPv6网络连接到MongoDB实例。 在MongoDB 3.0之前,您必须指定net.ipv6才能使用IPv6。 在MongoDB 3.0及更高版本中,始终启用IPv6。
net.unixDomainSocket Options
net:
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <int>
net.unixDomainSocket.enabled
Type: boolean
Default: True
启用或禁用在UNIX域套接字上侦听。 net.unixDomainSocket.enabled仅适用于基于Unix的系统。
net.unixDomainSocket.pathPrefix
Type: string
Default: /tmp
UNIX套接字的路径。 net.unixDomainSocket.pathPrefix仅适用于基于Unix的系统。
net.unixDomainSocket.filePermissions
Type: int
Default: 0700
设置UNIX域套接字文件的权限。
net.unixDomainSocket.filePermissions仅适用于基于Unix的系统。
net.http Options
net:
http:
enabled: <boolean>
JSONPEnabled: <boolean>
RESTInterfaceEnabled: <boolean>
net.http.enabled
Type: boolean
Default: False
Deprecated since version 3.2: HTTP interface for MongoDB
启用或禁用HTTP接口。
保留HTTP接口禁用生产部署。 如果您启用此界面,则只应允许受信任的客户端访问此端口。 请参阅防火墙。
net.http.JSONPEnabled
Type: boolean
Default: False
通过HTTP接口启用或禁用JSONP访问。net.http.JSONPEnabled选项启用HTTP接口,即使禁用了HTTP接口选项。
自3.2版本以来已弃用:MongoDB的HTTP接口
net.http.JSONPEnabled设置仅适用于mongod。
net.http.RESTInterfaceEnabled
Type: boolean
Default: False
启用或禁用简单的REST API。 即使禁用了HTTP接口选项,启用REST API也可以启用HTTP接口,从而可以增加网络暴露。
自3.2版本以来已弃用:MongoDB的HTTP接口
net.http.RESTInterfaceEnabled设置仅适用于mongod。
net.ssl Options
net:
ssl:
sslOnNormalPorts: <boolean> # deprecated since 2.6
mode: <string>
PEMKeyFile: <string>
PEMKeyPassword: <string>
clusterFile: <string>
clusterPassword: <string>
CAFile: <string>
CRLFile: <string>
allowConnectionsWithoutCertificates: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
disabledProtocols: <string>
FIPSMode: <boolean>
https://docs.mongodb.com/v3.2/reference/configuration-options/
security Options
security:
keyFile: <string>
clusterAuthMode: <string>
authorization: <string>
javascriptEnabled: <boolean>
sasl:
hostName: <string>
serviceName: <string>
saslauthdSocketPath: <string>
enableEncryption: <boolean>
encryptionCipherMode: <string>
encryptionKeyFile: <string>
kmip:
keyIdentifier: <string>
rotateMasterKey: <boolean>
serverName: <string>
port: <string>
clientCertificateFile: <string>
clientCertificatePassword: <string>
serverCAFile: <string>
security.keyFile
Type: string
密钥文件的路径,用于存储MongoDB实例用于在分片集群或副本集中彼此进行身份验证的共享密钥。 keyFile意味着security.authorization.
security.clusterAuthMode
Type: string
Default: keyFile
New in version 2.6.
用于集群认证的认证模式。 如果使用内部x.509身份验证,请在此指定。 此选项可以具有以下值之一:
Value | Description |
---|---|
keyFile | 使用密钥文件进行身份验证。 只接受密钥文件。 |
sendKeyFile | 为滚动升级目的。 发送密钥文件进行身份验证,但可以接受密钥文件和x.509证书。 |
sendX509 | 为滚动升级目的。 发送x.509证书以进行身份验证,但可以接受密钥文件和x.509证书。 |
x509 | 推荐的。 发送x.509证书以进行身份验证,并仅接受x.509证书。 |
security.authorization
Type: string
Default: disabled
启用或禁用基于角色的访问控制(RBAC)来管理每个用户对数据库资源和操作的访问。
将此选项设置为以下之一:
value | Description |
---|---|
enabled | 用户只能访问已被授予权限的数据库资源和操作。 |
disabled | 用户可以访问任何数据库并执行任何操作。 |
security.authorization设置仅适用于mongod。
security.javascriptEnabled
Type: boolean
Default: True
启用或禁用服务器端JavaScript执行。 禁用时,不能使用执行JavaScript代码的服务器端执行操作,例如$where查询运算符,mapReduce命令和db.collection.mapReduce()方法,组命令和db.collection.group()方法。
security.sasl Options
security:
sasl:
hostName: <string>
serviceName: <string>
saslauthdSocketPath: <string>
security.sasl.hostName
Type: string
用于配置SASL和Kerberos身份验证的完全限定的服务器域名。 SASL主机名仅覆盖用于SASL和Kerberos配置的主机名。
对于mongo shell和其他MongoDB工具连接到新的hostName,请参阅mongo shell中的gssapiHostName选项等工具。
security.sasl.saslauthdSocketPath
Type: string
saslauthd的UNIX域套接字文件的路径。
setParameter Option
设置MongoDB服务器参数中描述的MongoDB参数或参数
要在YAML配置文件中设置参数,请使用以下格式:
setParameter:
<parameter1>: <value1>
<parameter2>: <value2>
例如,要在配置文件中指定enableLocalhostAuthBypass:
setParameter:
enableLocalhostAuthBypass: false
storage Options
storage:
dbPath: <string>
indexBuildRetry: <boolean>
repairPath: <string>
journal:
enabled: <boolean>
commitIntervalMs: <num>
directoryPerDB: <boolean>
syncPeriodSecs: <int>
engine: <string>
mmapv1:
preallocDataFiles: <boolean>
nsSize: <int>
quota:
enforced: <boolean>
maxFilesPerDB: <int>
smallFiles: <boolean>
journal:
debugFlags: <int>
commitIntervalMs: <num>
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
inMemory:
engineConfig:
inMemorySizeGB: <number>
storage.dbPath
Type: string
Default: /data/db on Linux and OS X, \data\db on Windows
mongod实例存储其数据的目录。
如果您使用软件包管理系统安装MongoDB,请检查软件包提供的/etc/mongod.conf文件,以查看指定的目录。
storage.dbPath设置仅适用于mongod。
Linux包初始化脚本不希望storage.dbPath从默认值更改。 如果使用Linux软件包并更改storage.dbPath,则必须使用自己的init脚本并禁用内置脚本。
storage.indexBuildRetry
Type: boolean
Default: True
指定mongod是否在下次启动时重建不完整的索引。 这种情况适用于在索引生成中间关闭或停止后mongod重新启动的情况。 在这种情况下,mongod总是删除任何不完整的索引,然后,默认情况下,尝试重建它们。 要阻止mongod重建索引,请将此选项设置为false。
storage.indexBuildRetry设置仅适用于mongod。
不适用于使用内存存储引擎的mongod实例。
storage.repairPath
Type: string
Default: A _tmp_repairDatabase_<num> directory under the dbPath.
MongoDB在--repair操作期间将使用的工作目录。 当--repair完成时,storage.repairPath目录为空,dbPath包含已修复的文件。
storage.repairPath设置仅适用于mongod。
仅适用于使用MMAPv1存储引擎的mongod实例。
storage.journal.enabled
Type: boolean
Default: true on 64-bit systems, false on 32-bit systems
启用或禁用durability journal以确保数据文件保持有效和可恢复。 此选项仅适用于指定--dbpath选项时。 默认情况下,mongod可以在2.0之后的64位版本上进行日志记录。
storage.journal.enabled设置仅适用于mongod。
不适用于使用内存存储引擎的mongod实例。
storage.journal.commitIntervalMs
Type: number
Default: 100 or 30
New in version 3.2.
mongod进程在日志操作之间允许的最大时间(毫秒)。 值可以在1到500毫秒的范围内。 较低的值增加了日志的耐久性,牺牲了磁盘性能。 默认日志提交间隔为100毫秒。
在MMAPv1上,如果日志位于与数据文件不同的块设备(例如物理卷,RAID设备或LVM卷)上,则默认日志提交间隔为30毫秒。 另外,在MMAPv1上,当j:true的写入操作挂起时,mongod将会将commitIntervalMs减少到设置值的三分之一。
在WiredTiger上,默认日志提交间隔为100毫秒。 此外,使用j:true写入将导致日志的即时同步。
storage.journal.commitIntervalMs设置仅适用于mongod。
不适用于使用内存存储引擎的mongod实例。
storage.directoryPerDB
Type: boolean
Default: False
当为true时,MongoDB使用单独的目录来存储每个数据库的数据。 目录位于storage.dbPath目录下,每个子目录名称对应于数据库名称。
在版本3.0中更改:要更改现有部署的storage.directoryPerDB选项,必须使用新的storage.directoryPerDB值和新的数据目录(storage.dbPath值)重新启动mongod实例,然后重新填充数据。
- 对于独立实例,可以在现有实例上使用mongodump,停止实例,重新启动新的storage.directoryPerDB值和新的数据目录,并使用mongorestore填充新的数据目录。
- 对于副本集,您可以通过停止辅助成员以滚动方式进行更新,使用新的storage.directoryPerDB值和新的数据目录重新启动,并使用初始同步来填充新的数据目录。 要更新所有成员,请先从secondary开始。 然后降低主要功能,并更新降级成员。
storage.directoryPerDB设置仅适用于mongod。
不适用于使用内存存储引擎的mongod实例。
storage.syncPeriodSecs
Type: number
Default: 60
MongoDB通过fsync操作将数据刷新到数据文件之前可以传递的时间量。
不要在生产系统上设置此值。 在几乎每种情况下,您应该使用默认设置。
如果将storage.syncPeriodSecs设置为0,MongoDB将不会将内存映射文件同步到磁盘。
mongod进程将数据快速写入日志,并且懒惰地将数据写入数据文件。 storage.syncPeriodSecs对日志文件或日志记录没有影响。
serverStatus命令通过backgroundFlush字段报告后台flush线程的状态。
storage.syncPeriodSecs设置仅适用于mongod。
不适用于使用内存存储引擎的mongod实例。
storage.engine
Default: wiredTiger
New in version 3.0.
Changed in version 3.2: Starting in MongoDB 3.2, wiredTiger is the default.
mongodb数据库的存储引擎。 可用值包括:
value | Description |
---|---|
mmapv1 | 详细参考 |
wiredTiger | 详细参考 |
inMemory | 详细参考 |
如果您尝试启动一个包含storage.dbPath的mongodb,其中包含由storage.engine指定的存储引擎以外的存储引擎生成的数据文件,mongod将拒绝启动。
storage.mmapv1 Options
storage:
mmapv1:
preallocDataFiles: <boolean>
nsSize: <int>
quota:
enforced: <boolean>
maxFilesPerDB: <int>
smallFiles: <boolean>
journal:
debugFlags: <int>
commitIntervalMs: <num>
storage.mmapv1.preallocDataFiles
Type: boolean
Default: True
启用或禁用预分配数据文件。 默认情况下,MongoDB不会预分配数据文件。
storage.mmapv1.preallocDataFiles设置仅适用于mongod。
storage.mmapv1.nsSize
Type: integer
Default: 16
命名空间文件的默认大小,它们是以.ns结尾的文件。 每个集合和索引都作为一个命名空间。
使用此设置来控制新创建的命名空间文件的大小。 此选项对现有文件没有影响。 命名空间文件的最大大小为2047兆字节。 默认值为16兆字节提供约24,000个命名空间。
storage.mmapv1.nsSize设置仅适用于mongod。
storage.mmapv1.quota.enforced
Type: Boolean
Default: false
启用或禁用每个数据库可以拥有的数字数据文件的最大限制。 当使用storage.mmapv1.quota.enforced选项运行时,MongoDB每个数据库最多有8个数据文件。 使用storage.quota.maxFilesPerDB调整配额。
storage.mmapv1.quota.enforced设置仅适用于mongod。
storage.mmapv1.quota.maxFilesPerDB
Type: integer
Default: 8
每个数据库的数据文件数量的限制。 storage.mmapv1.quota.maxFilesPerDB选项要求您设置storage.quota.enforced。
storage.mmapv1.quota.maxFilesPerDB设置仅适用于mongod。
storage.mmapv1.smallFiles
Type: boolean
Default: False
当为true时,MongoDB使用较小的默认文件大小。 storage.mmapv1.smallFiles选项可以减少数据文件的初始大小,并将最大大小限制为512 MB。 storage.mmapv1.smallFiles还将每个日志文件的大小从1千兆字节减少到128兆字节。 如果您拥有大量数据库,每个数据库都保存少量数据,请使用storage.mmapv1.smallFiles。
storage.mmapv1.smallFiles选项可以导致mongod实例创建大量文件,这可能会影响较大数据库的性能。
storage.mmapv1.smallFiles设置仅适用于mongod。
storage.mmapv1.journal.debugFlags
Type: integer
提供测试功能。 在一般使用情况下,系统关机异常会影响数据文件的完整性。
storage.mmapv1.journal.debugFlags选项仅适用于mongod。
storage.mmapv1.journal.commitIntervalMs
Type: number
自3.2版本以来已弃用:MongoDB 3.2不推荐使用storage.mmapv1.journal.commitIntervalMs设置。 改用storage.journal.commitIntervalMs。
不建议使用的设置作为新的storage.journal.commitIntervalMS设置的别名,并适用于MMAPv1或WiredTiger存储引擎。
storage.wiredTiger Options
storage:
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
storage.wiredTiger.engineConfig.cacheSizeGB
版本3.0新功能
WiredTiger将用于所有数据的内部缓存的最大大小。
使用WiredTiger,MongoDB使用WiredTiger内部缓存和文件系统缓存。
版本3.2中更改:从MongoDB 3.2开始,WiredTiger内部缓存默认情况下将使用较大的:
- 60% of RAM minus 1 GB, or
- 1 GB.
对于最多10 GB RAM的系统,新的默认设置小于或等于3.0默认设置(对于MongoDB 3.0,WiredTiger内部缓存使用1 GB或一半的已安装物理RAM,以较大者为准)。
对于超过10 GB RAM的系统,新的默认设置大于3.0设置。
通过文件系统缓存,MongoDB自动使用WiredTiger缓存或其他进程未使用的所有可用内存。 文件系统缓存中的数据被压缩。
避免将WiredTiger内部缓存大小增加到其默认值以上。
默认的WiredTiger内部缓存大小值假设每台机器有一个mongod实例。 如果单个机器包含多个MongoDB实例,那么您应该减少设置以适应其他mongod实例。
如果您在无法访问系统中可用的所有RAM的容器(例如lxc,cgroups,Docker等)中运行mongod,则必须将storage.wiredTiger.engineConfig.cacheSizeGB设置为小于该值的值 的容器中可用的RAM。 确切的数量取决于容器中运行的其他进程。
storage.wiredTiger.engineConfig.journalCompressor
Default: snappy
New in version 3.0.0.
用于压缩WiredTiger日志数据的压缩类型。
可用的压缩机有:
- none
- snappy
- zlib
storage.wiredTiger.engineConfig.directoryForIndexes
Type: boolean
Default: false
New in version 3.0.0.
当storage.wiredTiger.engineConfig.directoryForIndexes为true时,mongod将索引和集合存储在数据(即storage.dbPath)目录下的单独子目录中。 具体来说,mongod将索引存储在名为index的子目录中,并将集合数据存储在名为collection的子目录中。
通过使用符号链接,您可以为索引指定不同的位置。 具体来说,当mongod实例没有运行时,将index子目录移动到目的地,并在数据目录下创建一个名为index的符号链接到新目标。
storage.wiredTiger.collectionConfig.blockCompressor
Default: snappy
New in version 3.0.0.
用于压缩收集数据的默认压缩类型。 创建集合时,您可以在每个集合的基础上覆盖此。
可用的压缩机有:
- none
- snappy
- zlib
storage.wiredTiger.collectionConfig.blockCompressor会影响创建的所有集合。 如果在现有MongoDB部署上更改storage.wiredTiger.collectionConfig.blockCompressor的值,则所有新集合将使用指定的压缩器。 现有集合将继续使用创建时指定的压缩器,或当时的默认压缩器。
storage.wiredTiger.indexConfig.prefixCompression
Default: true
New in version 3.0.0.
启用或禁用索引数据的前缀压缩。
为storage.wiredTiger.indexConfig.prefixCompression指定true,以对索引数据启用前缀压缩,或将false禁用为索引数据的前缀压缩。
storage.wiredTiger.indexConfig.prefixCompression设置影响所有创建的索引。 如果在现有MongoDB部署中更改storage.wiredTiger.indexConfig.prefixCompression的值,则所有新索引将使用前缀压缩。 现有的索引不受影响。
operationProfiling Options
operationProfiling:
slowOpThresholdMs: <int>
mode: <string>
operationProfiling.slowOpThresholdMs
Type: integer
Default: 100
数据库分析器认为查询缓慢的以毫秒为单位的阈值。 MongoDB将所有缓慢的查询记录到日志中,即使数据库分析器关闭。 当分析器打开时,它会写入system.profile集合。 有关数据库分析器的更多信息,请参阅profile命令。
operationProfiling.slowOpThresholdMs设置仅适用于mongod。
operationProfiling.mode
Type: string
Default: off
数据库分析的级别,它将有关操作性能的信息插入到system.profile集合中。 指定以下级别之一:
Level | Setting |
---|---|
off | Off. No profiling. |
slowOp | On. Only includes slow operations. |
all | On. Includes all operations. |
数据库分析可能会影响数据库性能。 仅在仔细考虑后启用此选项。
操作Profiling.mode设置仅适用于mongod。
replication Options
replication:
oplogSizeMB: <int>
replSetName: <string>
secondaryIndexPrefetch: <string>
enableMajorityReadConcern: <boolean>
replication.oplogSizeMB
Type: integer
复制操作日志的最大大小(以兆字节为单位)(即oplog)。 mongod进程基于最大可用空间量创建一个oplog。 对于64位系统,oplog通常是可用磁盘空间的5%。 一旦mongod第一次创建了oplog,更改replication.oplogSizeMB选项将不会影响oplog的大小。
replication.oplogSizeMB设置仅适用于mongod。
replication.replSetName
Type: string
mongod是其中一部分的副本集的名称。 副本集中的所有主机必须具有相同的集名称。
如果您的应用程序连接到多个副本集,则每个集合应具有不同的名称。 某些驱动程序组副本通过副本集名称设置连接。
replication.replSetName设置仅适用于mongod。
replication.secondaryIndexPrefetch
Type: string
Default: all
存储发动机特殊功能
replication.secondaryIndexPrefetch仅适用于mmapv1存储引擎。
在从oplog应用操作之前,副本集的辅助成员加载到内存中的索引。 默认情况下,在从oplog应用操作之前,二进制文件将与操作相关的所有索引加载到内存中。
将此设置设置为以下之一:
Value | Description |
---|---|
none | 次级代码不会将索引加载到内存中。 |
all | 二次加载与操作相关的所有索引。 |
_id_only | 辅助工具在内存之外不再加载额外的索引,而不是已经存在的_id索引。 |
replication.secondaryIndexPrefetch设置仅适用于mongod。
replication.enableMajorityReadConcern
Type: boolean
Default: False
New in version 3.2.
Enables read concern level of "majority".
sharding Options
sharding:
clusterRole: <string>
archiveMovedChunks: <boolean>
sharding.clusterRole
Type: string
mongodb实例在分片集群中的作用。 将此设置设置为以下之一:
Value | Description |
---|---|
configsvr | 将此实例作为配置服务器启动。 默认情况下,实例从端口27019启动。 |
shardsvr | 将此实例作为分片开始。 默认情况下,实例从端口27018开始。 |
sharding.clusterRole设置仅适用于mongod。
sharding.archiveMovedChunks
Type: boolean
版本3.2更改:从3.2开始,MongoDB使用false作为默认值。
在块迁移期间,分片不保存从分片移出的文档。
snmp Options
snmp:
subagent: <boolean>
master: <boolean>
snmp.subagent
Type: boolean
当snmp.subagent为true时,SNMP作为子代理运行。 有关详细信息,请参阅在Linux上使用SNMP监视MongoDB。
snmp.subagent设置仅适用于mongod
snmp.master
Type: boolean
当snmp.master为true时,SNMP作为主服务器运行。 有关详细信息,请参阅在Linux上使用SNMP监视MongoDB。
snmp.master设置仅适用于mongod。
mongos-only Options
replication:
localPingThresholdMs: <int>
sharding:
autoSplit: <boolean>
configDB: <string>
chunkSize: <int>
replication.localPingThresholdMs
Type: integer
Default: 15
mongos用于确定哪些辅助副本集成员从客户端传递读取操作的ping时间(以毫秒为单位)。 默认值15对应于所有客户端驱动程序中的默认值。
当mongos收到允许读取次要成员的请求时,mongos将:
- 找到具有最低ping时间的组的成员。
- 构造一个复制集合成员的列表,该列表在集合中最近的合适成员的15毫秒的ping时间内。
如果您为replication.localPingThresholdMs选项指定了一个值,则mongos将构造在该值允许的延迟范围内的副本成员列表。
- 从列表中随机选择一个成员阅读。
用于通过replication.localPingThresholdMs设置进行比较的成员的ping时间是最近每10秒计算的最近ping次数的移动平均值。 因此,某些查询可能会达到高于阈值的成员,直到mongos重新计算平均值。
sharding.autoSplit
Type: boolean
Default: True
启用或禁用自动拆分碎片集合的块。 如果所有mongos实例上的sharding.autoSplit都为false,则MongoDB不会随着集合中的数据增长而创建新的块。
因为群集中的任何一个mongos都可以创建一个拆分,以完全禁用群集中的拆分,所以必须在所有的mongos上将sharding.autoSplit设置为false。
sharding.configDB
Type: string
Changed in version 3.2.
分片集群的配置服务器。
从MongoDB 3.2开始,分片集群的配置服务器可以部署为副本集。 副本集配置服务器必须运行WiredTiger存储引擎。 MongoDB 3.2不推荐使用配置服务器的三个镜像mongod实例。
指定配置服务器副本集名称以及配置服务器副本集中至少一个成员的主机名和端口。
sharding:
configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017,...
分片集群的mongos实例必须指定相同的配置服务器副本集名称,但可以指定副本集的不同成员的主机名和端口。
如果使用不推荐的镜像实例,请指定三个mongod实例的主机名和端口。 mongos实例必须指定相同的配置字符串。
sharding.chunkSize
Type: integer
Default: 64
分片集群中每个块的大小(以兆字节为单位)。 在大多数部署中,64 MB的大小是理想的:较大的块大小可能导致数据分布不均匀; 较小的块大小可能导致节点之间的块的低效移动。
sharding.chunkSize仅在首次初始化集群时影响块大小。 如果以后修改该选项,则新值不起作用。 如果需要更改现有分片集群上的块大小,请参阅分片集群中的修改块大小。
sharding.configsvrMode
Type: string
New in version 3.2.
如果设置为sccc,则表示配置服务器部署为三个镜像的mongod实例,即使一个或多个配置服务器也是副本集的成员。 configsvrMode只接受值sccc。
如果未设置,作为副本集运行的配置服务器将使用“配置服务器副本集”协议来写入配置服务器,而不是“mirrored mongod”写入协议。