#核心配置
systemLog:
verbosity: 0 # range [0 ~ 5],类似旧版的v~vvvv。verbosity都是指日志的详细(啰嗦)程度,以下不再重复。
quite: false #
traceAllException: false # 记录异常
syslogFacility: user # 系统日志登记,详见 http://blog.chinaunix.net/uid-677314-id-164215.html
path: None # 同旧版logpath
logAppend: false # 同旧版logappend
logRotate: rename # ['rename', 'reopen'],rename会定时自动生成新日志,reopen是追加,需要将logAppend设置为true
destination: syslog # ['file', 'syslog'],如果设置为file,需要同时也指定path目录。
timeStampFormat: iso8601-local # 时间格式 ['ctime', 'iso8601-utc', 'iso8601-local'],分别表示为['Wed Dec 31 18:17:54.811', '1970-01-01T00:00:00.000Z', '1969-12-31T19:00:00.000-0500']
component: # 这个log定制性很强
accessControl:
verbosity: 0 # [0 ~ 5] db访问相关日志,比如auth认证
command:
verbosity: 0 # [0 ~ 5] db操作命令日志,比如count,group,distinct
control:
verbosity: 0 # [0 ~ 5] 控制mongo本身的命令,比如db的启动和停止
geo:
verbosity: 0 # [0 ~ 5] 地理空间相关操作
index:
verbosity: 0 # [0 ~ 5] db索引相关操作
network:
verbosity: 0 # [0 ~ 5] 网络传输相关
query:
verbosity: 0 # [0 ~ 5] 查询相关
replication:
verbosity: 0 # [0 ~ 5] 集群复制相关,比如sync和心跳
sharding:
verbosity: 0 # [0 ~ 5] 分片相关
storage:
verbosity: 0 # [0 ~ 5] 存储相关
journal:
verbosity: 0 # [0 ~ 5] journal相关
write:
verbosity: 0 # [0 ~ 5] 写操作相关
processManagement:
fork: false # 同旧版fork
pidFilePath: none # 同旧版pidfilepath
net:
port: 27017 # 同旧版port
bindIp: 0.0.0.0 # 同旧版 bind_ip
maxIncomingConnections: 65536 # 同旧版maxConns,最大值受系统限制
wireObjectCheck: true # 同旧版objcheck
ipv6: false # 同旧版ipv6
unixDomainSocket:
enabled: true # 启用socket监听
pathPrefix: /tmp 同旧版unixSocketPrefix
filePermissions: 0777 # socket文件权限
http:
enabled: false # 与旧版nohttpinterface相反
JSONPEnabled: false # 同旧版jsonp
RESTInterfaceEnabled: false # 同旧版rest
security:
keyFile: none # 同旧版keyFile
clusterAuthMode: keyFIle # ['keyFile', 'sendKeyFile', 'sendX509', 'x509']
anthorization: disabled # ['enabled', 'disabled'] 启用RBAC(Role-Based Access Control)
javascriptEnabled: true # 禁用js后不能使用$where、mapReduce等命令
storage:
dbPath: /data/db # 同旧版dbpath
indexBuildRetry: true # 下次启动mongo时是否重新建立索引
repairPath: dbPath/_tmp # 同旧版repirepath
journal:
enabled: true # 同旧版journal
directoryPerDB: false # 同旧版directoryperdb
syncPeriodSecs: 60 # 同旧版syncdelay
engine: mmapv1 # 存储引擎:['mmapv1', 'wiredTiger']
mmapv1:
preallocDataFiles: true # 与旧版noprealloc相反
nsSize: 16 # 同旧版nsSize
quota:
enforced: false # 同旧版quota
maxFilesPerDB: 8 # 同旧版quotaFiles
smallFiles: false # 同旧版smallfiles
journal:
debugFlags: none # 内部调试选项,一般不使用
commitIntervalMs: 30 & 100 # 同旧版journalCommitInterval
wiredTiger: # 以下简称WT
engineConfig:
cacheSizeGB: 1G # 默认1G或者系统内存的一半,WT占用的内存
statisticsLogDelaySecs: 0 # 每隔1s记录一次WT的统计信息,0表示不记录
journalCompressor: snappy # WT压缩journal数据的格式:['none', 'snappy', 'zlib']
directoryForIndexes: false # true的话mongod会给每隔集合的数据和索引创建单独目录
collectionConfig:
blockCompressor: snappy # 集合数据的压缩方式,选项同WT的journal数据
indexConfig:
prefixCompression: true # 在WT的索引和集合数据文件名前加前缀
operationProfiling:
slowOpThresholdMs: 100 # 单位毫秒,同slowms
mode: off # ['off', 'slowOp', 'all'] 分别表示'不记录'、'记录慢日志'、'所有日志'
replication:
oplogSizeMB: none # 同旧版oplogSize
replSetName: none # 同旧版replSet
secondaryIndexPrefetch: all # 同旧版replIndexPrefetch
localPingThresholdMs: 15 # 单位毫秒,可以影响member selection过程
sharding:
clusterRole: configsvr # ['configsvr', 'shardsvr'] 同旧版configsvr和shardsvr选项
archiveMovedChunks: true # 在mongo的chunk移动过程中,该选项强制把所有实例保存的文档移动到moveChunk目录
autoSplit: true # 与旧版noAutoSplit相反
configDB: none # 同旧版configdb
chunkSize: 64 # 同旧版chunkSize
snmp:
subagent: none
master: none # 这两个选项都需要要去看看这个文档:http://docs.mongodb.org/manual/tutorial/monitor-with-snmp/
#下边这个看看就行了,windows系统相关的配置
processManagement:
windowsService:
serviceName: MongoDB
displayName: MongoDB
description: MongoDB Server
serviceUser: none # 指定一个用户
servicePassword: none # 指定的用户的密码
# setParameter 同旧版setParameter
# 格式:
# <setting> = <value>
# 以下等号右边皆为默认值
# 基本配置
dbpath = /data/db # 指定数据文件存放路径
directoryperdb = false # 每个db将被保存在一个单独的目录
journal = true # mongo的数据库操作写在journal文件里,确保数据的一致性和写操作的稳固性。这一项在32位的操作系统默认为false
nojournal = fasle # 这一项在32位的操作系统默认为true
journalCommitInterval = 100 & 30 # mongo两次写journal的时间间隔,单位毫秒。间隔越小,稳固性越高,也越耗io资源。
quota = false # 限定每个db的文件数,默认为8。如果此项设置为true,能用quoteFiles来修改这个数字。
quotaFiles = 8 # 如上
syncdelay = 60 # 单位秒。每60秒把内存中的数据写入磁盘,大多数情况下不建议修改。
logpath = None # 指定日志文件,注意,不是目录,是文件,比如 /var/logs/mongo.log。如果不指定mongo会把日志输出到屏幕上。
logappend = false # true:每次重启mongo时会在日志文件末尾追加,false:每次重启会覆盖日志文件
pidfilepath = None # 指定pid文件路径,如果不指定,将不会创建pid文件
diaglog = 0 # 记录诊断信息:0-禁用,1-记录写操作, 2-记录读操作,3-记录读写操作,7-记录写和一部分读操作
profile = 0 # 记录db操作,0-不记录,1-慢操作,2-所有操作
slowms = 100 # 单位为毫秒,将执行超过这个时间的操作记为慢操作
verbose = false # 记录调试信息
vvvv = false # 调试信息的详细程度,有v~vvvv四个等级,vvvv最详细
quiet = false # 只记录错误信息,相当于error_log,使用此项时应该注释掉verbose
port = 27017 # 端口,默认27017
bind_ip = 0.0.0.0 # 绑定ip,默认0.0.0.0
ipv6 = false # 支持ipv6
fork = false # 后台运行mongo
auth = false # 启用账户认证
noauth = true # 禁用账户认证
jsonp = false # 允许jsonp形式通过http访问mongo
nohttpinterface = false # 关闭http接口
keyFile = None # 集群的私钥完整路径,在副本集(replica set)中使用到
nounixsocket = false # 禁用socket监听
unixSocketPrefix = /tmp # unix socket 文件路径
noprealloc = false # 禁用数据文件预分配,能缩短启动时间,但是会影响性能
noscripting = false # 禁用脚本引擎
notablescan = false # 不允许扫表的操作
rest = false # 启用简单的rest API
nsSize = 16 # 数据库ns文件大小,单位MB,最大值2047
maxConns = 20000 # 最大连接数,不超过20000,默认值不固定,跟当前系统的ulimit和file-descriptor有关
cpu = false # 每4s记录一次CPU的利用率和iowait
smallfiles = false # mongo一开始会初始化比较大的journal文件,在磁盘不大的虚拟机中往往会报错,配置这一项可以解决。生成环境不要使用。
objcheck = true # 检查接收到的数据的有效性
noobjcheck = false # 禁用objcheck
repire = false # 修复所有db。这一项只能在需要的时候在命令行使用,非常不建议在配置文件中打开。
repirepath = dbpath/_tmp # 修复数据库文件使用的临时目录,默认是dbpath下的_tmp
sysinfo = false # 打印当前系统信息,开启此项后,mongo仅打印信息,不开启数据读写进程。
upgrade = false # mongo的bin文件升级之后,使用此项来升级db文件。
# 副本集选项 (Replica Sets)
replSet = none # 副本集名称,副本集所有节点都使用同一个名称
oplogSize = none # 单位是MB。mongo的副本集是采用oplog来记录写操作。默认情况下,64位机器的oplog占磁盘的5%。
fastsync = false # 以主节点的数据快照为基础来启动从节点。如果数据目录一开始就是主节点 的数据快照,从节点用这个选项启动要比做完整同步快很多。
replIndexPrefetch = all # [all, none, _id_only] 默认情况下,从节点会加载所有索引进入内存,使用_id_only可以让mongo只加载_id索引。
# 主从复制
master = false # 将当前机器定义为主库
slave = false # 将当前机器定义为从库
source = none # 从库配置,指向主库ip和端口,如:10.1.1.1:27017
only = none # 从库配置,只复制指定数据库,参数为数据库名称。
salvedelay = 0 # 从库配置,单位是秒,同步主库的延迟时间。
autoresync = false # 从库配置,如果从库比主库的数据晚10s,强制同步。由于操作比较耗时,如果不设置此项,mongo默认10分钟内最多进行一次copy操作。
# 分片集群
configsvr = false # 声明这是一个集群的config服务,默认端口27019,默认目录dbpath/configdb
shardsvr = false # 声明这是一个集群的分片,默认端口27018
configdb = none # 指定配置服务器ip:port
test = false # 内部测试用,不启动mongos实例
chunkSize = 64 # 单位MB,在一个分片机器上的数据超过这个限制之后,就会向下一个机器写数据(分隔)。
localThreshold
noAutoSplit # 禁止创建新的chunk,需要配置在所有的mongos机器上
moveParanoia
# 设置参数
# 格式:
# setParameter = <parameter>=<value> ,针对mongod和mongos有不同的选项,具体看这里:http://docs.mongodb.org/v2.4/reference/configuration-options/#setParameter