mongodb配置文件常用配置项

1,788 阅读12分钟

基于mongo 3.4版本

高于3.4版本的请参考官方文档

docs.mongodb.com/manual/refe…

mong日志常用配置配置

systemLog:

quiet: <boolean>

traceAllExceptions: <boolean>

syslogFacility: <string>

path: <string>

logAppend: <boolean>

destination: <string>

timeStampFormat: <string>

systemLog.quiet

输入:
boolean

运行
mongos
mongod
处于安静模式,试图限制输出量。

systemLog.quiet

是不建议用于生产系统,因为它可以使在特定的连接变得更加困难跟踪问题。

systemLog.traceAllExceptions

输入:
boolean

打印详细信息以进行调试。用于支持相关故障排除的其他日志记录。

systemLog.path

输入:
string

日志文件的路径,
mongod
或者
mongos
应该发送所有诊断日志记录信息,而不是标准输出或主机的
syslog

MongoDB

在指定的路径上创建日志文件。

systemLog.logAppend

输入:
boolean

默认值:
False

mongo
实例重启时,默认备份现有日志,并创建新的日志文件。

配置为
true
时,将新增日志追加到当前的日志文件末尾

systemLog.destination

输入:
string
值为
file
syslog

MongoDB

输入日志的方式。指如果指定
file
,则还必须指定
systemLog.path

如果未指定
systemLog.destination
MongoDB
会将所有日志输出发送到标准输出。

官方建议使用
file

systemLog.timeStampFormat

输入:
string

默认值:
iso8601-local

日志消息中时间戳的时间格式。指定以下值之一:

可配置值

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

mong进程常用配置

processManagement:

fork: <boolean>

pidFilePath: <string>

processManagement.fork

输入:
boolean

默认值:
False

启用在后台运行
mongos
mongod
处理的守护程序模式。默认情况下
mongos
mongod
不作为守护程序运行:通常通过使用或使用处理守护进程的控制进程(例如,和)运行
mongos
mongod
作为守护程序 运行。

processManagement.pidFilePath

输入:
string

mongs
mongd
指定
pid
的文件位置

mong常用网路配置

net:

port: <int>

bindIp: <string>

maxIncomingConnections: <int>

ipv6: <boolean>

net.port

类型:整数

默认值:
27017

MongoDB

实例侦听客户端连接的
TCP
端口。

net.bindIp

输入:
string

默认值:所有接口。

检测使用
mongs
mongd
连接的应用程序的
ip
是否可以访问
mongo
实例。不在绑定范围的
IP
,不能够访问
mong
实例。

要绑定到多个
IP
地址,请输入逗号分隔值列表。

net.maxIncomingConnections

类型:整数

默认值:
65536

要接受
mongos
mongod
将接受的最大同时连接数。如果此设置高于操作系统配置的最大连接跟踪阈值,则此设置无效。

net.ipv6

输入:
boolean

默认值:
False

启用或禁用
IPv6
支持。
mongos
mongod
默认禁用
IPv6
支持。

Mong安全配置

security:

keyFile: <string>

clusterAuthMode: <string>

authorization: <string>

javascriptEnabled: <boolean>

security.keyFile

输入:
string

密钥文件的路径,用于存储
MongoDB
实例用于在分片集群或副本集中相互进行身份验证的共享密钥 。

keyFile

暗示
security.authorization
。有关更多信息,请参阅内部验证

security.clusterAuthMode

输入:
string

默认值:
keyFile

用于群集身份验证的身份验证模式。

此选项可以具有以下值之一

keyFile

使用密钥文件进行身份验证。只接受密钥文件。

sendKeyFile

用于滚动升级目的。发送密钥文件进行身份验证,但可以接受密钥文件和
x.509
证书。

sendX509

用于滚动升级目的。发送
x.509
证书进行身份验证,但可以接受密钥文件和
x.509
证书。

x509

推荐的。发送
x.509
证书以进行身份
​​
验证,并仅接受
x.509
证书。

security.authorization

输入:
string

默认值:
disabled

启用或禁用基于角色的访问控制(
RBAC
)以管理每个用户对数据库资源和操作的访问。

将此选项设置为以下之一:

描述

enabled

用户只能访问已被授予权限的数据库资源和操作。

disabled

用户可以访问任何数据库并执行任何操作。

security.authorization
设置仅适用于
mongod

security.javascriptEnabled

输入:
boolean

默认值:
True

启用或禁用服务器端
JavaScript
执行。

禁用时,不能使用执行
JavaScript
代码的服务器端执行的操作,例如
$where
查询运算符,
mapReduce
命令和
db.collection.mapReduce()
方法,
group
命令和
db.collection.group()
方法。

Mongo数据存储配置

storage:

dbPath: <string>

indexBuildRetry: <boolean>

repairPath: <string>

journal:

enabled: <boolean>

commitIntervalMs: <num>

directoryPerDB: <boolean>

syncPeriodSecs: <int>

engine: <string>

wiredTiger:

engineConfig:

cacheSizeGB: <number>

journalCompressor: <string>

directoryForIndexes: <boolean>

collectionConfig:

blockCompressor: <string>

indexConfig:

prefixCompression: <boolean>

inMemory:

engineConfig:

inMemorySizeGB: <number>

storage.dbPath

输入:
string

默认值:
/data/db
Linux
macOS
上,
\data\db
Windows

mongod

实例存储其数据的目录。

storage.dbPath
设置仅适用于
mongod

storage.indexBuildRetry

输入:
boolean

默认值:
True

指定是否
mongod
在下次启动时重建不完整的索引。这适用于在
mongod
索引构建过程中关闭或停止后重新启动的情况。在这种情况下,
mongod
始终删除任何不完整的索引,然后,默认情况下,尝试重建它们。要停止
mongod
重建索引,请将此选项设置为
false

storage.indexBuildRetry
设置仅适用于
mongod

不适用于
mongod
使用内存存储引擎的实例。

storage.repairPath

输入:
string

默认值:
_tmp_repairDatabase_<num>
下的目录
dbPath

MongoDB

--repair
操作期间将使用的工作目录 。当
--repair
完成后,
storage.repairPath
目录是空的,并且
dbPath
包含了修复的文件。

storage.repairPath
设置仅适用于
mongod

仅适用于
mongod
使用
MMAPv1
存储引擎。

storage.journal.enabled

输入:
boolean

默认值:
true
64
位系统上,
false
32
位系统上

启用或禁用持久性日志以确保数据文件保持有效和可恢复。此选项仅在您指定
storage.dbPath
设置时适用 。所述
mongod
64
位的构建
2.0
后版本的默认启用日志。

storage.journal.enabled
设置仅适用于
mongod

不适用于
mongod
使用内存存储引擎的实例。

如果副本集的任何投票成员在没有日记功能的情况下运行(即运行内存存储引擎或在禁用日记功能的情况下运行),则必须设置
writeConcernMajorityJournalDefault
false

storage.journal.commitIntervalMs

类型:数字

默认值:
100
30

mongod

进程允许在日志操作之间的最长时间(以毫秒为单位)。值的范围为
1
500
毫秒。较低的值会增加日志的持久性,但会牺牲磁盘性能。默认日记帐提交间隔为
100
毫秒。

MMAPv1
上,如果日志与数据文件位于不同的块设备(例如,物理卷,
RAID
设备或
LVM
卷)上,则默认日志提交间隔为
30
毫秒。另外,在
MMAPv1
上,当一个写操作处于
j:true
挂起状态时,
mongod
将减少
commitIntervalMs
到设定值的三分之一。

WiredTiger
上,默认日志提交间隔为
100
毫秒。此外,写入
j:true
将导致日志的立即同步。

storage.journal.commitIntervalMs
设置仅适用于
mongod

不适用于
mongod
使用内存存储引擎的实例。

storage.engine

默认值:
wiredTiger

MongoDB 3.2
开始,
wiredTiger
是默认值。

mongod

数据库的存储引擎。可用值包括:

mmapv1

指定
MMAPv1
存储引擎。

wiredTiger

指定
WiredTiger
存储引擎。

inMemory

指定内存存储引擎。

storage.wiredTiger.engineConfig.cacheSizeGB

输入:
float

WiredTiger

将用于所有数据的内部缓存的最大大小。

值的范围可以从
256MB
10TB
,并且可以是浮点数。此外,默认值也已更改。

3.4
开始,
WiredTiger
内部缓存默认使用较大的一个:
50
%(
RAM-1 GB
),或
256 MB

避免将
WiredTiger
内部缓存大小增加到其默认值以上。

使用
WiredTiger
MongoDB
同时使用
WiredTiger
内部缓存和文件系统缓存。

通过文件系统缓存,
MongoDB
自动使用
WiredTiger
缓存或其他进程未使用的所有可用内存。

注意

storage.wiredTiger.engineConfig.cacheSizeGB
限制
WiredTiger
内部高速缓存的大小。操作系统将使用可用的空闲内存用于文件系统缓存,这允许压缩的
MongoDB
数据文件保留在内存中。此外,操作系统将使用任何空闲
RAM
来缓冲文件系统块和文件系统缓存。

为了容纳额外的
RAM
使用者,您可能必须减少
WiredTiger
内部缓存大小。

默认的
WiredTiger
内部缓存大小值取决于假定
mongod
每台计算机有一个实例。如果单个计算机包含多个
MongoDB
实例,则应减少该设置以适应其他
mongod
实例。

storage.wiredTiger.engineConfig.journalCompressor

默认值:
snappy

用于压缩
WiredTiger
日志数据的压缩类型。

可用的压缩机有:
none
snappy
zlib

storage.wiredTiger.engineConfig.directoryForIndexes

输入:
boolean

默认值:
false

storage.wiredTiger.engineConfig.directoryForIndexes
true
mongod
存储在数据(即下单独子目录索引和集合
storage.dbPath
)目录。具体而言,
mongod
将索引存储在已命名的子目录中
index
,并将集合数据存储在名为的子目录中
collection

storage.wiredTiger.collectionConfig.blockCompressor

默认值:
snappy

用于压缩集合数据的默认压缩类型。您可以在创建集合时基于每个集合覆盖此设置。

可用的压缩格式有:
none
snappy
zlib

storage.wiredTiger.collectionConfig.blockCompressor

影响创建的所有集合。如果更改
storage.wiredTiger.collectionConfig.blockCompressor
现有
MongoDB
部署的值,则所有新集合都将使用指定的压缩器。现有集合将继续使用创建时指定的压缩器,或当时的默认压缩器。

storage.wiredTiger.indexConfig.prefixCompression

默认值:
true

启用或禁用索引数据的前缀压缩。

指定
true
为索引数据
storage.wiredTiger.indexConfig.prefixCompression
启用前缀压缩,或
false
禁用索引数据的前缀压缩。

storage.wiredTiger.indexConfig.prefixCompression
设置会影响所有创建的索引。如果更改
storage.wiredTiger.indexConfig.prefixCompression
现有
MongoDB
部署的值,则所有新索引都将使用前缀压缩。现有索引不受影响。

storage.inMemory.engineConfig.inMemorySizeGB

输入:
float

默认值:物理
RAM
50
%减去
1 GB

值的范围可以从
256MB
10TB
,并且可以是浮点数。

为内存存储引擎数据分配的最大内存量,包括索引,
oplog
(如果它
mongod
是副本集,副本集或分片集群元数据的一部分)等。

默认情况下,内存存储引擎使用
50
%的物理
RAM
减去
1 GB

仅适用于
MongoDB
企业版

mong慢查询配置

operationProfiling:

slowOpThresholdMs: <int>

mode: <string>

operationProfiling.slowOpThresholdMs

类型:整数

默认值:
100

数据库探查器认为查询缓慢的阈值(以毫秒为单位)。即使数据库分析器处于关闭状态,
MongoDB
也会将所有慢速查询记录到日志中。当探查器打开时,它会写入
system.profile
集合。

operationProfiling.slowOpThresholdMs
设置仅适用于
mongod

operationProfiling.mode

输入:
string

默认值:
off

数据库概要分析的级别,它将有关操作性能的信息插入到
system.profile
集合中。

可以指定的级别:

off

关闭,没有剖析。

slowOp

仅包括慢速操作。

all

包括所有操作。

数据库分析可能会影响数据库性能

operationProfiling.mode
设置仅适用于
mongod

mong副本集相关配置

replication:

oplogSizeMB: <int>

replSetName: <string>

secondaryIndexPrefetch: <string>

enableMajorityReadConcern: <boolean>

replication.oplogSizeMB

类型:整数

复制操作日志的最大大小(以兆字节为单位)(即
oplog
)。该
mongod
过程基于可用的最大空间量创建
oplog

对于
64
位系统,
oplog
通常占可用磁盘空间的
5
%。一旦
mongod
第一次创建了
oplog
,更改
replication.oplogSizeMB
选项将不会影响
oplog
的大小。

replication.oplogSizeMB
设置仅适用于
mongod

replication.replSetName

输入:
string

作为其
mongod
一部分的副本集的名称。副本集中的所有主机必须具有相同的集名称。

如果您的应用程序连接到多个副本集,则每个集应具有不同的名称。

replication.replSetName
设置仅适用于
mongod

replication.enableMajorityReadConcern

输入:
boolean

默认值:
False

启用读取关注级别
"majority"

mong分片集相关配置

sharding:

clusterRole: <string>

archiveMovedChunks: <boolean>

sharding.clusterRole

输入:
string

mongod

实例在分片集群中的角色。

将此设置设置为以下之一:

configsvr

将此实例作为配置服务器启动。
27019
默认情况下,实例在端口上启动。

shardsvr

启动此实例为碎片。
27018
默认情况下,实例在端口上启动。

sharding.clusterRole
设置仅适用于
mongod

sharding.archiveMovedChunks

输入:
boolean

3.2
开始,
MongoDB false
用作默认值。

在块迁移期间,分片不会保存从分片迁移的文档。

mong分片集中Mongs的配置

replication:

localPingThresholdMs: <int>

sharding:

configDB: <string>

replication.localPingThresholdMs

类型:整数

默认值:
15

mongos

用于确定哪些副本集成员从客户端传递读取操作的
ping
时间(以毫秒为单位)。默认值
15

mongos
客户端从副本集读取数据的请求后,
mongs
会执行的操作:

1

,找到具有最低
ping
时间的集合的成员。

2

,找到集合中
ping
时间在
15
毫秒之内的所有副本集成员列表。

3

,如果指定选项的值,
mongos
则将查找在此值允许的延迟范围内的副本成员。

4

,从查询到的副本集成员列表中随机选择要读取的成员。

用于成员的
replication.localPingThresholdMs
设置比较的
ping
时间是最近
ping
时间的移动平均值,最多每
10
秒计算一次。

因此,某些查询可能会达到超过阈值的成员,直到
mongos
重新计算平均值。

sharding.configDB

输入:
string

该配置服务器用于分片群集。

指定配置服务器副本集名称以及配置服务器副本集的至少一个成员的主机名和端口。

sharding:

configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017,...

分片
mongos
群集的实例必须指定相同的配置服务器副本集名称,但可以指定副本集的不同成员的主机名和端口。