基于mongo 3.4版本
高于3.4版本的请参考官方文档
docs.mongodb.com/manual/refe…
javascript
mong日志经常使用配置配置
systemLog:java
quiet: <boolean>mongodb
traceAllExceptions: <boolean>数据库
syslogFacility: <string>缓存
path: <string>安全
logAppend: <boolean>服务器
destination: <string>app
timeStampFormat: <string>性能
systemLog.quiet
输入:
boolean
运行
mongos
或
mongod
处于安静模式,试图限制输出量。
systemLog.quietfetch
是不建议用于生产系统,由于它可使在特定的链接变得更加困难跟踪问题。
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
群集的实例必须指定相同的配置服务器副本集名称,但能够指定副本集的不一样成员的主机名和端口。