基于mongo 3.4版本
高于3.4版本的请参考官方文档
docs.mongodb.com/manual/refe…
mong日志常用配置配置
systemLog:
quiet:
traceAllExceptions:
syslogFacility:
path:
logAppend:
destination:
timeStampFormat:
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:
pidFilePath:
processManagement.fork
输入:
boolean
默认值:
False
启用在后台运行
mongos
或
mongod
处理的守护程序模式。默认情况下
mongos
或
mongod
不作为守护程序运行:通常通过使用或使用处理守护进程的控制进程(例如,和)运行
mongos
或
mongod
作为守护程序 运行。
processManagement.pidFilePath
输入:
string
对
mongs
或
mongd
指定
pid
的文件位置
mong常用网路配置
net:
port:
bindIp:
maxIncomingConnections:
ipv6:
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:
clusterAuthMode:
authorization:
JavascriptEnabled:
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:
indexBuildRetry:
repairPath:
journal:
enabled:
commitIntervalMs:
directoryPerDB:
syncPeriodSecs:
engine:
wiredTiger:
engineConfig:
cacheSizeGB:
journalCompressor:
directoryForIndexes:
collectionConfig:
blockCompressor:
indexConfig:
prefixCompression:
inMemory:
engineConfig:
inMemorySizeGB:
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_
下的目录
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
输入:
floatWiredTiger
将用于所有数据的内部缓存的最大大小。
值的范围可以从
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:
mode:
operationProfiling.slowOpThresholdMs
类型:整数
默认值:
100数据库探查器认为查询缓慢的阈值(以毫秒为单位)。即使数据库分析器处于关闭状态,
MongoDB也会将所有慢速查询记录到日志中。当探查器打开时,它会写入
system.profile
集合。
该
operationProfiling.slowOpThresholdMs设置仅适用于
mongod
。
operationProfiling.mode
输入:
string默认值:
off数据库概要分析的级别,它将有关操作性能的信息插入到
system.profile集合中。
可以指定的级别:
off
关闭,没有剖析。
slowOp
仅包括慢速操作。
all
包括所有操作。
数据库分析可能会影响数据库性能
该
operationProfiling.mode设置仅适用于
mongod
。
mong副本集相关配置
replication:
oplogSizeMB:
replSetName:
secondaryIndexPrefetch:
enableMajorityReadConcern:
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:
archiveMovedChunks:
sharding.clusterRole
输入:
stringmongod
实例在分片集群中的角色。
将此设置设置为以下之一:
configsvr
将此实例作为配置服务器启动。
27019默认情况下,实例在端口上启动。
shardsvr
启动此实例为碎片。
27018默认情况下,实例在端口上启动。
该
sharding.clusterRole设置仅适用于
mongod
。
sharding.archiveMovedChunks
输入:
boolean从
3.2开始,
MongoDB false
用作默认值。
在块迁移期间,分片不会保存从分片迁移的文档。
mong分片集中Mongs的配置
replication:
localPingThresholdMs:
sharding:
configDB:
replication.localPingThresholdMs
类型:整数
默认值:
15mongos
用于确定哪些副本集成员从客户端传递读取操作的
ping
时间(以毫秒为单位)。默认值
15
当
mongos客户端从副本集读取数据的请求后,
mongs
会执行的操作:
1
,找到具有最低
ping
时间的集合的成员。
2
,找到集合中
ping
时间在
15
毫秒之内的所有副本集成员列表。
3
,如果指定选项的值,
mongos
则将查找在此值允许的延迟范围内的副本成员。
4
,从查询到的副本集成员列表中随机选择要读取的成员。
用于成员的
replication.localPingThresholdMs设置比较的
ping
时间是最近
ping
时间的移动平均值,最多每
10
秒计算一次。
因此,某些查询可能会达到超过阈值的成员,直到
mongos重新计算平均值。
sharding.configDB
输入:
string该配置服务器用于分片群集。
指定配置服务器副本集名称以及配置服务器副本集的至少一个成员的主机名和端口。
sharding:
configDB: /cfg1.example.net:27017, cfg2.example.net:27017,...
分片
mongos群集的实例必须指定相同的配置服务器副本集名称,但可以指定副本集的不同成员的主机名和端口。