当前位置:Gxlcms > 数据库问题 > MongoDB3.2配置文件.md

MongoDB3.2配置文件.md

时间:2021-07-01 10:21:17 帮助过:11人阅读

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