mongodb配置文件_配置文件选项

3ba47da4257b40ec0be0e7f7d7e4df03.png

参考官方文档:https://docs.mongodb.com/manual/reference/configuration-options/
使用配置文件可以更轻松地管理mongod和mongos选项,尤其适用于大规模部署。
默认的配置文件:

  • 在 Linux ,使用包安装MongoDB 的默认配置文件是 /etc/mongod.cnf
  • 在Window,默认是 <install directory>/bin/mongod.cfg
  • MacOS,默认是 /usr/local/etc/mongod.conf


MongoDB 配置文件使用 YAML 格式
以下示例配置文件包含几个mongod设置,您可以根据本地配置进行调整:
注意:
YAML不支持缩进的制表符:使用空格代替。
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
journal:
enabled: true
processManagement:
fork: true
net:
bindIp: 127.0.0.1
port: 27017
setParameter:
enableLocalhostAuthBypass: false
...核心选项systemLog 选项
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>
# COMMENT additional component verbosity settings omitted for brevity
systemLog.verbosity
类型:整形
默认值:0
默认日志级别是component。 详细级别确定MongoDB输出的信息和调试消息的数量。
详细级别可以是0-5:

  • 0是MongoDB的默认日志详细级别,包括信息性消息。
  • 1到5增加了详细级别以包括debug消息。


要对命名component 使用不同的详细级别,请使用组件的详细程度设置。 例如,使用systemLog.component.accessControl.verbosity专门为ACCESS组件设置详细级别。
systemLog.path
类型:字符串
mongod或mongos发送所有诊断日志记录信息的日志文件的路径,而不是标准输出或主机的syslog。 MongoDB在指定的路径上创建日志文件。
Linux软件包init脚本不希望systemLog.path从默认值更改。 如果使用Linux软件包并更改systemLog.path,则必须使用自己的init脚本并禁用内置脚本。
systemLog.timeStampFormat
默认值:iso8601-local
可以指定为下列的值:
ctime 显示时间戳 例如 Wed Dec 31 18:17:54.811
iso8601-utc 例如: 1970-01-01T00:00:00.000Z
iso8601-local 例如: 1969-12-31T19:00:00.000-0500processManagement 选项:
processManagement:
fork: <boolean>(默认false。后台启动)
pidFilePath: <string>
timeZoneInfo: <string>
pidFilePath:指定用于保存mongos或mongod进程的进程ID的文件位置。 这对于结合processManagement.fork设置跟踪mongos或mongod进程非常有用。 如果没有指定的processManagement.pidFilePath选项,则该进程不会创建任何PID文件。net 选项
net:
port: <int>
bindIp: <string>
bindIpAll: <boolean>
maxIncomingConnections: <int>
wireObjectCheck: <boolean>
ipv6: <boolean>
unixDomainSocket:
enabled: <boolean>
pathPrefix: <string>
filePermissions: <int>
ssl:
sslOnNormalPorts: <boolean> # deprecated since 2.6
certificateSelector: <string>
clusterCertificateSelector: <string>
mode: <string>
PEMKeyFile: <string>
PEMKeyPassword: <string>
clusterFile: <string>
clusterPassword: <string>
CAFile: <string>
clusterCAFile: <string>
CRLFile: <string>
allowConnectionsWithoutCertificates: <boolean>
allowInvalidCertificates: <boolean>
allowInvalidHostnames: <boolean>
disabledProtocols: <string>
FIPSMode: <boolean>
compression:
compressors: <string>
serviceExecutor: <string>
port:27017
MongoDB实例侦听客户端连接的TCP端口。
bindIP:默认值为localhost
要绑定所有IPV4 地址,输入0.0.0.0
maxIncomingConnections:
默认值是 65536
mongos或mongod将接受的最大同时连接数。 如果此设置高于操作系统配置的最大连接跟踪值,则此设置无效。
如果你有一个客户端创建多个连接并允许它们超时而不是关闭它们,这对于mongos特别有用。
在这种情况下,请将maxIncomingConnections设置为略高于客户端创建的最大连接数或连接池的最大大小的值。
此设置可防止mongos在各个分片上引起连接峰值。 这些峰值可能会破坏分片群集的操作和内存分配。
wireObjectChek:
如果为true,则mongod或mongos实例会在收到客户端时验证来自客户端的所有请求,以防止客户端将格式错误或无效的BSON插入MongoDB数据库。net.compression 选项
net:
compression:
compressors: <string>
默认值:snappy
指定用于此mongod或mongos实例之间通信的默认压缩:
支持 snappy和zlib(3.6或更高版本)
如果要禁用网络压缩,设置值为disabledstorage 选项:
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>
dbPath :
默认在linux是/data/db,windows上是datadb
这个路径是mongod实例存储数据的地方
storage.directoryPerDB:
默认是 False
当是 true 时,MongoDB 为每个数据库使用不同的目录存储数据。目录在dbPath下,每个子目录关联到数据库名称
对于独立实例,可以在现有实例上使用mongodump,停止实例,使用新的storage.directoryPerDB值和新数据目录重新启动,并使用mongorestore填充新数据目录。(导出导入)
storage.syncPeriodSecs:
默认值:60
MongoDB通过fsync操作将数据刷新到数据文件之前可以经过的时间。
不要在生产系统上设置此值。 几乎在所有情况下,都应使用默认设置。
storage.engine
默认值:wiredTiger
在4.0版本。MongoDB 过期了 MMAPv1 存储引擎storage.wiredTiger 选项
storage:
wiredTiger:
engineConfig:
cacheSizeGB: <number>
journalCompressor: <string>
directoryForIndexes: <boolean>
collectionConfig:
blockCompressor: <string>
indexConfig:
prefixCompression: <boolean>
storage.wiredTiger.engineConfig.cacheSizeGB
类型:浮点型
定义WiredTiger将用于所有数据的内部缓存的最大大小。索引构建消耗的内存和wiredTiger内存是分开的。
范围可以从 0.25 GB 到10000 GB
从3.4开始,默认的内存大小是:

  • 50% of (RAM - 1 GB), or
  • 256 MB.


例如,在总共4GB RAM的系统上,WiredTiger缓存将使用1.5GB的RAM(0.5 *(4 GB - 1 GB)= 1.5 GB)。 相反,一个总共1.25 GB RAM的系统将为WiredTiger缓存分配256 MB,因为(0.5 *(1.25 GB - 1 GB)= 128 MB <256 MB)。
---所以一般默认情况下,最大大约可以占用一半的系统内存replication 选项
replication:
oplogSizeMB: <int>
replSetName: <string>
secondaryIndexPrefetch: <string>
enableMajorityReadConcern: <boolean>
replication.oplogSizeMB
复制操作日志的最大大小(以兆字节为单位)(即oplog)。
注意:
从MongoDB 4.0开始,oplog可以超过其配置的大小限制,以避免删除 majority commit point
一旦mongod首次创建了oplog,更改replication.oplogSizeMB选项将不会影响oplog的大小。
要更改正在运行的副本集成员的oplog大小,请使用replSetResizeOplog管理命令。 replSetResizeOplog使您可以动态调整oplog的大小,而无需重新启动mongod进程。
replication.replSetName
mongod所属的副本集的名称。 副本集中的所有主机必须具有相同的集合名称。
如果您的应用程序连接到多个副本集,则每个集合应具有不同的名称。 某些驱动程序按副本集名称对副本集进行连接。
replication.replSetName设置仅适用于mongod。sharding 选项
sharding:
clusterRole: <string>
archiveMovedChunks: <boolean>
clusterRole 为 configsvr,将此实例作为配置服务器启动。 默认情况下,实例在端口27019上启动。
若为 shardsvr,将此实例作为分片启动。 默认情况下,实例在端口27018上启动。
注意:设置clusterRole需要mongod 实例在复制环境中启动。auditLog 选项
auditLog:
destination: <string>
format: <string>
path: <string>
filter: <string>
设置后,auditLog.destination启用审计并指定mongos或mongod发送所有审计事件的位置。
auditLog.destination可以具有以下值之一:
syslog ,console,file(将audit事件以auditLog.format中指定的格式输出到auditLog.path中指定的文件)
auditLog.forma
可以是JSON 和BSON
--将审核事件打印为JSON格式的文件会降低服务器性能。
auditLog.path
如果destination具有file值,则用于审计的输出文件。 auditLog.path选项可以采用完整路径名或相对路径名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值