基于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


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