MongoDB配置文件YAML-based选项全解

摘要:
配置文件部分MongoDB引入一个YAML-based格式的配置文件。1systemLog.syslogFacilitystring,默认为user指定syslog日志信息的设备级别。1processManagement.forkboolean,默认为false是守护进程在后台运行。1net.wireObjectCheckboolean,默认为true检查文档的有效性。1net.unixDomainSocket.enabledboolean,默认为false停止UNIXdomainsocket监听。1net.http.RESTInterfaceEnabledboolean,默认为false即使http接口选项关闭,打开也会暴露http接口,会导致更多的不安全因素。1security.authorizationstring,默认为disabled打开访问数据库和进行操作的用户角色认证。1storage.directoryPerDBboolean,默认关闭指定存储每个数据库文件到单独的数据目录。
配置文件部分

MongoDB引入一个YAML-based格式的配置文件。2.4版本以前的仍然兼容。

我的mongodb配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
systemLog:
destination: file
path: "/var/log/mongo/mongod.log"
quiet: true
logAppend: true
timeStampFormat: iso8601-utc
storage:
dbPath: "/var/lib/mongo"
directoryPerDB: true
indexBuildRetry: false
preallocDataFiles: true
nsSize: 16
# quota:
# enforced: false
# maxFilesPerDB: 8
smallFiles: false
syncPeriodSecs: 60
# repairPath: "/var/lib/mongo/_tmp"
journal:
enabled: true
# debugFlags: 1
commitIntervalMs: 100
processManagement:
fork: true
pidFilePath: "/var/run/mongodb/mongod.pid"
net:
# bindIp: 192.168.11.52
port: 27017
http:
enabled: true
RESTInterfaceEnabled: false
# ssl:
# mode: "requireSSL"
# PEMKeyFile: "/etc/ssl/mongodb.pem"
operationProfiling:
slowOpThresholdMs: 100
mode: "slowOp"
security:
keyFile: "/var/lib/mongo/mongodb-keyfile"
clusterAuthMode: "keyFile"
authorization: "disabled"
replication:
oplogSizeMB: 50
replSetName: "repl_test"
secondaryIndexPrefetch: "all"

设置选项:

1. systemLog

1
systemLog.verbosity

integer

日志文件输出的级别,越大级别越低。

1
systemLog.quite

boolean

在quite模式下会限制输出信息:
数据库命令输出,副本集活动,连接接受事件,连接关闭事件。

1
systemLog.traceAllExceptions

string

打印verbose信息来调试,用来记录证额外的异常日志。

1
systemLog.syslogFacility

string,默认为user
指定syslog日志信息的设备级别。需要指定--syslog来使用这个选项。

1
systemLog.path string

发送所有的诊断信息日志,默认重启后会覆盖。

1
systemLog.logAppend

boolean
是否启用追加日志。

1
systemLog.destination

string
指定一个文件或syslog。如果指定为文件,必须同时指定systemLog.path

1
systemLog.timeStampFormat

string,默认为iso8601-local
日志信息中的时间戳格式:

1
ctime,iso8601-utc,iso8601-local

2. processManagement

1
processManagement.pidFilePath

string
指定进程的ID,与--fork配合使用,不指定则不会创建。

1
processManagement.fork

boolean,默认为false
是守护进程在后台运行。

3. net

1
net.port

interger,默认为27017
mongodb实例监听的端口号。

1
net.bindIp

string,2.6版本默认为127.0.0.1
指定mongodb实例绑定的ip,为了绑定多个ip,可以使用逗号分隔。

1
net.maxIncomingConnections

integer 默认为1000000
mongodb实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。

1
net.wireObjectCheck

boolean,默认为true
检查文档的有效性。会稍微影响性能。

1
net.http.enabled

boolean,默认为false
打开http端口,会导致更多的不安全因素。

1
net.unixDomainSocket.enabled

boolean,默认为false
停止UNIX domain socket监听。
mongodb实例会一直监听UNIX
socket,除非net.unixDomainSocket.enabled设置为true,bindIp没有设置,bindIp没有默认指定为127.0.0.1。

1
net.unixDomainSocket.pathPrefix

string,默认为/tmp
unix Socket所在的路径。

1
net.ipv6

boolean,默认为false
打开IPV6功能,默认为关闭的。

1
net.http.JSONPEnabled

boolean,默认为false
运行json访问http端口,打开会导致更多的不安全因素。

1
net.http.RESTInterfaceEnabled

boolean,默认为false
即使http接口选项关闭,打开也会暴露http接口,会导致更多的不安全因素。

4. security

1
security.keyFile

string
指定分片集或副本集成员之间身份验证的key文件存储位置。

1
security.clusterAuthMode

string
集群认证中利用到这个模式,如果使用x.509安全机制,可以在这里指定。

1
keyFile,sendKeyFile,sendX509,x509

默认的mongodb发行版是不支持ssl的,可以使用专业版的或重新自行编译mongodb。

1
security.authorization

string,默认为disabled
打开访问数据库和进行操作的用户角色认证。
enabled,disabled

5. operationProfiling

1
operationProfiling.slowOpThresholdMs

integer,默认100
指定慢查询时间,单位毫秒,如果打开功能,则向system.profile集合写入数据。

1
operationProfiling.mode

integer,默认0
改变分析日志输出级别。
0,1,2,分别对应关闭,仅打开慢查询,记录所有操作。

6. storage

1
storage.dbPath

string
指定数据文件的路径。

1
storage.directoryPerDB

boolean,默认关闭
指定存储每个数据库文件到单独的数据目录。如果在一个已存在的系统使用该选项,需要事先把存在的数据文件移动到目录。

1
storage.indexBuildRetry

boolean,默认为true
指定数据库在索引建立过程中停止,重启后是否重新建立索引。

1
storage.preallocDataFiles

boolean,默认true
是否预先分片好数据文件。

1
storage.nsSize

integer,默认16
指定命名空间的大小,即.ns后缀的文件。最大为2047MB,16M文件可以提供大约24000个命名空间。

1
storage.quota.enforced

boolean,默认false
限制每个数据库的数据文件数目。可以通过maxFilesPerDB调整数目。

1
storage.quota.maxFilesPerDB

integer,默认为8
限制每个数据库的数据文件数目。

1
storage.smallFiles

boolean,默认为false
限制mongodb数据文件大小为512MB,减小journal文件从1G到128M,适用于有很多数量小的数据文件。

1
storage.syncPeriodSecs

number,默认60
mongodb文件刷新频率,尽量不要在生产环境下修改。
storage.repairPath
string,默认为指定dbpath下的_tmp目录。
指定包含数据文件的根目录,进行--repair操作。

1
storage.journal.enabled

boolean,默认64bit为true,32bit为false
记录操作日志,防止数据丢失。

1
storage.journal.debugFlags

integer
提供数据库在非正常关闭下的功能测试。

1
storage.journal.commitIntervalMs

number,默认为100或30
journal操作的最大间隔时间。可以是2-300ms之间的值,低的值有助于持久化,但是会增加磁盘的额外负担。
如果journal和数据文件在同一磁盘上,默认为100ms。如果在不同的磁盘上为30ms。
如果强制mongod提交日志文件,可以指定j:true,指定后,时间变为原来的三分之一。

7. replication

1
replication.oplogSizeMB

integer,默认为磁盘的5%
指定oplog的最大尺寸。对于已经建立过oplog.rs的数据库,指定无效。

1
replication.replSetName

string
指定副本集的名称。

1
replication.secondaryIndexPrefetch

string,默认为all
指定副本集成员在接受oplog之前是否加载索引到内存。默认会加载所有的索引到内存。
none,不加载;all,加载所有;_id_only,仅加载_id。

8. sharding

1
sharding.clusterRole

string
指定分片集的mongodb角色。
configsvr,配置服务器,端口27019;shardsvr,分片实例,端口27018。

1
sharding.archiveMovedChunks

integer
在块移动过程中,该选项强制mongodb实例保存所有移动的文档到moveChunk目录。

9. auditLog

1
auditLog.destination

string
syslog,以json格式保存身份验证到syslog,windows下不可用,serverity级别为info,facility级别为user。
console,以json格式输出信息到标准输出。
file,以json格式输出信息到文件。

1
auditLog.format

string
指定输出文件的格式
JSON,输出json格式文件;BSON,输出bson二进制格式文件。

1
auditLog.path

string
如果--auditDestination的值为file,则该选项指定文件路径。

1
auditLog.filter

document
指定过滤系统身份验证的格式为:

1
2
{ atype : <expression> }
{ atype: <expression>, "param.db": <database> }

10. snmp

1
snmp.subagent

boolean
运行SNMP为一个子代理。

1
snmp.master

boolean
运行SNMP为一个主进程。

PS:
1.仅mongos选项

1
replication.localPingThresholdMs

integer,默认15
当客户端选定副本集进行读操作时受影响。

1
sharding.autoSplit

boolean
防止mongos自动在一个分片集合中插入元数据。
因为任何的mongos都可以创建一个分离,如果打开该选项,将会导致分片不平衡,需要谨慎使用。

1
sharding.configDB

string
指定配置数据库。可以使用逗号分隔一到三个服务器。
如果处于不同的位置,需要指定最近的一个。
不能移除配置服务器,即使不可用或者离线了。

1
sharding.chunkSize

integer,默认为64
每个块的大小。64MB是理想大小,小的会导致不能在不同节点间高效移动。
仅仅在初始化时有效。

2.Windows服务选项

1
processManagement.windowsService.serviceName

string,默认为MongoDB
指定mongodb服务名称。可以使用--install,--remove增加或删除。

1
processManagement.windowsService.displayName

string,默认为MongoDB
设置mongodb服务应用程序的名称。

1
processManagement.windowsService.description

string,默认为MongoDB Server
结合--install,必须指定该选项的值。

1
processManagement.windowsService.serviceUser

指定运行mongodb服务的用户

1
processManagement.windowsService.servicePassword

指定运行mongodb服务的用户的密码

免责声明:文章转载自《MongoDB配置文件YAML-based选项全解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]Android 操作SQLite基本用法个人技术总结-Postman简单的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

[转]Android 操作SQLite基本用法

在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面。本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的。一.SQLite的介绍1.SQLite简介SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入  式的,而且目前已经在很多嵌入...

Mongodb 笔记03 查询、索引

查询 1. MongoDB使用find来进行查询。find的第一个参数决定了要返回哪些文档,这个参数是一个文档,用于指定查询条件。空的查询会匹配集合的全部内容。要是不指定查询,默认是{}。 2.可以通过find的第二个参数来指定想要的键。这样即会节省传输的数量,又能节省客户端解码文档的时间和内存消耗。举例:db.users.find({},{"userna...

C# 断点续传原理与实现

在了解HTTP断点续传的原理之前,让我们先来了解一下HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种。请求协议是由 客户机(浏览器)向服务器(WEB SERVER)提交请求时发送报文的协议。回复协议是由服务器(web server),向客户机(浏览器)回复报文时的协议。请求和回复协议都由头和体组成。头和体之间以一行空行为分隔。 以下...

云计算设计模式(八)——外部配置存储模式

云计算设计模式(八)——外部配置存储模式 移动配置信息从应用部署包到一个集中位置。这个模式可以提供机会,以便管理和配置数据的控制,以及用于跨应用程序和应用程序实例共享的配置数据。  背景和问题 大多数应用程序运行时环境包括位于应用程序文件夹内的在部署应用程序文件保持配置信息。在某些情况下也能够编辑这些文件来改变该应用程序的行为,它已经被部署之后。然而,在...

字符串常量池---Java

字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。 对于基本类型来说,==是进行数值的比较。对于引用类型来说,==是进行【地址值】的比较。 1 public class Demo02StringPool { 2 3 public static void main(String[] args) { 4 String str1 = "...

Android 路由框架ARouter最佳实践

一:什么是路由? 说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。 二:为什么需要路由 Android系统已经给我们提供了api来做页面跳转,比如startActivity,为什么还需要路由框架呢?我们来简单分析下路由框架存在的意义: 在一些复杂的业务场景下(比如电商),灵活性比较强,很多功能都是运营人员动态配置的,比如下发一个活动页面...