Fork me on GitHub

MongoDB3.x-配置文件

mongodb 3.0 改变很多,3.0在数据存储引擎上更换成了wiredTiger,在数据压缩方面很有效,解决大数据量问题的情况下,磁盘不够用的问题。
mongodb 3.0 配置文件采用的是YAML格式,只能使用空格,不支持tab键

启动方式

直接启动

直接启动,配置参数写在命令中:
1
mongod --dbpath=data/db --logpath=log/log.txt --fork

配置文件启动

首先编辑好配置文件,以配置文件启动:
1
mongod -f /etc/mongod.conf


1
mongod --config /etc/mongod.conf

mongodb目录结构


一个mongod进程对应一个工作目录,包含data、etc、logs 3个目录,分别存储数据、配置、以及运行日志
1
2
3
4
5
6
7
8
9
|-- $mymongo
|-- data
-- ***
|-- etc
-- keyfile
-- mongod.conf
|-- logs
-- mongod.pid
-- mongod.log

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
46
systemLog:
destination: file
logAppend: true
logRotate: rename
path: $mymongo/logs/mongod.log
timeStampFormat: iso8601-local
traceAllExceptions: false
verbosity: 0
processManagement:
fork: true
pidFilePath: $mymongo/logs/mongod.pid
net:
#bindIp: 127.0.0.1
port: 3001
http:
enabled: false
maxIncomingConnections: 1000
unixDomainSocket:
enabled: false
operationProfiling:
mode: slowOp
slowOpThresholdMs: 100
security:
authorization: enabled
keyFile: $mymongo/etc/keyfile
javascriptEnabled: false
replication:
oplogSizeMB: 5120
replSetName: myreplset
storage:
dbPath: $mymongo/data
directoryPerDB: true
syncPeriodSecs: 60
engine: wiredTiger
journal:
enabled: true
commitIntervalMs: 100
wiredTiger:
engineConfig:
cacheSizeGB: 4

  • 基于上述模板,用户可以根据自己的实际情况稍加修改,主要关注如下参数
参数 含义 说明
systemLog.verbosity 日志级别 建议设置为0,如想记录更多debug信息,可修改该值为1-5,越大日志越详细
net.bindIp 监听的ip地址列表 默认监听所有的ip,如果有多块网卡,可以选择性的绑定,以限制不可信的网络访问
net.port 监听断开 默认27017,根据需要定制
net.maxIncomingConnections 最大连接数 根据需要配置,保证系统最大文件句柄数大于该值(ulimit -n)
operationProfiling.slowOpThresholdMs 慢请求阈值 如无特殊需求,建议使用默认的100ms,超过该值的请求会记录到对应db的system.profile集合里
replication.replSetName 复制集名字 强烈建议部署复制集提供服务,名字随便定制
replication.oplogSizeMB oplog大小 默认为磁盘空间5%,无特殊需求建议保持默认值
security.authorization 是否开启鉴权 强烈建议开启
security.keyFile 复制集内部鉴权的keyfile路径 复制集要开启鉴权,必须配置keyfile,用于复制集成员间的鉴权
security.javascriptEnabled 是否支持server端js,比如$where、mapreduce需要server端js的支持 如无必要,建议关闭
storage.directoryPerDB 每个db一个单独的目录存储 强烈建议,以充分发挥文件系统优势
storage.engine 存储引擎 强烈建议使用wiredtiger,低成本 + 高性能
storage.wiredTiger.engineConfig wireditger cache大小 默认 max(1, 0.6 * RAM)
storage.journal.enabled 是否开启journal 强烈建议开启
storage.journal.commitIntervalMs journal 刷盘间隔 默认100ms,建议保持默认值

更加详细请参考: https://yq.aliyun.com/articles/68488

其他配置参数


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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
--quiet # 安静输出
--port arg # 指定服务端口号,默认端口27017
--bind_ip arg # 绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定默认本地所有IP
--logpath arg # 指定MongoDB日志文件,注意是指定文件不是目录
--logappend # 使用追加的方式写日志
--pidfilepath arg # PID File 的完整路径,如果没有设置,则没有PID文件
--keyFile arg # 集群的私钥的完整路径,只对于Replica Set 架构有效
--unixSocketPrefix arg # UNIX域套接字替代目录,(默认为 /tmp)
--fork # 以守护进程的方式运行MongoDB,创建服务器进程
--auth # 启用验证
--cpu # 定期显示CPU的CPU利用率和iowait
--dbpath arg # 指定数据库路径
--diaglog arg # diaglog选项 0=off 1=W 2=R 3=both 7=W+some reads
--directoryperdb # 设置每个数据库将被保存在一个单独的目录
--journal # 启用日志选项,MongoDB的数据操作将会写入到journal文件夹的文件里
--journalOptions arg # 启用日志诊断选项
--ipv6 # 启用IPv6选项
--jsonp # 允许JSONP形式通过HTTP访问(有安全影响)
--maxConns arg # 最大同时连接数 默认2000
--noauth # 不启用验证
--nohttpinterface # 关闭http接口,默认关闭27018端口访问
--noprealloc # 禁用数据文件预分配(往往影响性能)
--noscripting # 禁用脚本引擎
--notablescan # 不允许表扫描
--nounixsocket # 禁用Unix套接字监听
--nssize arg (=16) # 设置信数据库.ns文件大小(MB)
--objcheck # 在收到客户数据,检查的有效性,
--profile arg # 档案参数 0=off 1=slow, 2=all
--quota # 限制每个数据库的文件数,设置默认为8
--quotaFiles arg # number of files allower per db, requires --quota
--rest # 开启简单的rest API
--repair # 修复所有数据库run repair on all dbs
--repairpath arg # 修复库生成的文件的目录,默认为目录名称dbpath
--slowms arg (=100) # value of slow for profile and console log
--smallfiles # 使用较小的默认文件
--syncdelay arg (=60) # 数据写入磁盘的时间秒数(0=never,不推荐)
--sysinfo # 打印一些诊断系统信息
--upgrade # 如果需要升级数据库 * Replicaton 参数
--------------------------------------------------------------------------------
--fastsync # 从一个dbpath里启用从库复制服务,该dbpath的数据库是主库的快照,可用于快速启用同步
--autoresync # 如果从库与主库同步数据差得多,自动重新同步,
--oplogSize arg # 设置oplog的大小(MB) * 主/从参数
--------------------------------------------------------------------------------
--master # 主库模式
--slave # 从库模式
--source arg # 从库 端口号
--only arg # 指定单一的数据库复制
--slavedelay arg # 设置从库同步主库的延迟时间 * Replica set(副本集)选项:
--------------------------------------------------------------------------------
--replSet arg # 设置副本集名称 * Sharding(分片)选项
--------------------------------------------------------------------------------
--configsvr # 声明这是一个集群的config服务,默认端口27019,默认目录/data/configdb
--shardsvr # 声明这是一个集群的分片,默认端口27018
--noMoveParanoia # 关闭偏执为moveChunk数据保存

更加详细请参考: http://www.jianshu.com/p/5844fdfa9511



    本文标题   :   MongoDB3.x-配置文件

    文章作者   :   火柴

    发布时间   :   2017年1月10日 - 14时01分

    本文链接   :   http://www.chen-hao.com.cn/MongoDB3-x-配置文件.html

    本文字数   :   本文一共有1,426字

    许可协议   :   Attribution-NonCommercial 4.0

    © 转载请保留以上信息,谢谢合作。