2

MongoDB | 配置选项

 2 years ago
source link: https://ijayer.github.io/post/tech/db/mongodb/20170423-config-options/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Configuration File

Offical:The Official Doc.Configuration File Options

NOTE:

  • File Format: YAML
  • YAML does not support tab characters for indentation: use spaces instead.

Use The Configuration File

Specify the config file with --config

mongod --config /etc/mongod.conf
mongos --config /etc/mongos.conf

Specify the config file with -f

mongod -f /etc/mongod.conf
mongos -f /etc/mongos.conf

Core Options

systemLog

systemLog:
   # 指定是一个文件
   destination: file         
   
   # 日志存放位置
   path: /home/mgo/mgo.log   
   
   # 产生日志内容追加到文件
   logAppend: true           
   
   # 在quite模式下会限制输出信息
   quiet: true               

   # 默认是iso8601-local,日志信息中还有其他时间戳格式:
   # ctime,iso8601-utc,iso8601-local 
   timeStampFormat: iso8601-utc 

storage

storage:
   # 是否开启journal(日志)持久存储,journal日志用来数据恢复,是mongodb最基础的性,
   # 通常用于故障恢复。仅对mongod进程有效
   journal:
      enabled: true           
   
   # 数据文件存放路径
   dbPath: /data/db 

   # - 是否将不同DB的数据存储在不同的目录,具体存放在dbPath的子目录,目录名为DB的名称
   # - 对已经存储数据的mongod修改此值,需要首先使用mongodump指令将数据导出,然后关闭
   # mongod,再修改此值和指定新的dbPath,然后使用mongorestore指令重新导入数据(即
   # 导出数据,并使用mongorestore将数据重新写入mongod的新目录中)
   # - 此参数仅对mongod进程有效,默认值为false,不建议修改此值
   directoryPerDB: false   
   
   # mongod使用fsync操作将数据flush到磁盘的时间间隔, 默认值60s; 
   # mongod将变更的数据写入journal后再写入内存,并间歇性的将内存数据flush到磁盘中,
   # 即延迟写入磁盘,有效提升磁盘效率。此指令不影响journal存储,仅对mongod有效。
   syncPeriodSecs: 60

   # 数据引擎类型, mongodb 3.0之后支持“mmapv1”、“wiredTiger”两种引擎,默认值为
   # “mmapv1”;官方宣称wiredTiger引擎更加优秀。
   engine: wiredTiger
   
   # wt引擎配置   
   wiredTiger:
      engineConfig: 
         # wiredTiger缓存工作集(working set)数据的内存大小,单位:GB
         cacheSizeGB: 10
         # 索引是否按数据库名进行单独存储      
         directoryForIndexes: true 
      collectionConfig:
         # 压缩配置
         blockCompressor: zlib     
      indexConfig:
         # 索引配置
         prefixCompression: true   

processManagement

processManagement:
   # 以守护进程方式运行mongod/mongos, 默认false
   fork: true
   
   # 配合 "fork:true" 参数,将mongod/mongos进程ID写入指定的文件,如果
   # 不指定,将不会创建PID文件   
   pidFilePath: /var/run/mgo.pid  
net:
   port: 27017 
   
   # 绑定ip地址访问mongodb,多个ip逗号分隔(0.0.0.0-绑定到所有接口, 即
   # 内网·外网均可访问)
   bindIp: 127.0.0.1
   # bindIp: [127.0.0.1, 192.168.1.169]
   
   # mongod/mongos进程允许的最大连接数, 如果此值超过操作系统配置的连接
   # 数阀值,将不会生效(ulimit);默认值为65536。
   maxIncomingConnections: 65536

security

security:
   # 指定分片集或副本集成员之间身份验证的key文件存储位置
   keyFile: /home/mgo/keyFile
   
   # 访问数据库和进行操作的用户角色认证 
   authorization: enabled 

   # 集群认证模式,默认是keyFile
   clusterAuthMode: /home/mgo/keyFile

replication

# 复制集相关配置
replication:
   # replication操作日志的最大尺寸,单位:MB。
   # mongod进程根据磁盘最大可用空间来创建oplog,比如64位系统,oplog为磁盘
   # 可用空间的5%,一旦mongod创建了oplog文件,此后再次修改oplogSizeMB将不
   # 会生效。此值不要设置的太小, 应该足以保存24小时的操作日志,以保证secondary
   # 有充足的维护时间;如果太小,secondary将不能通过oplog来同步数据,只能
   # 全量同步。此值仅对mongod有效。
   oplogSizeMB: 51200 

   # 指定副本集的名称, 无默认值, 复制集中的所有mongd实例都必须有相同的名字
   # sharding分布式下,不同的sharding应该使用不同的replSetName。仅对mongod有效。
   replSetName: rs 

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

sharding

# shard, 分片集群模式
sharding:
   # 配置sharding集群中mongod服务的角色: 可选值
   #   configsvr: config server(配置服务器)
   #   shardsvr:  shard(分片)
   clusterRole: configsvr

仅mongos服务的选项

sharding: 
   # mongos服务配置此参数,设定config server的地址列表,每个server地址以 “ , ”
   # 隔开;config server为分片时,configDB的地址列表一定要加上 replSetName.
   configDB: cf/192.168.1.167:27010,192.168.1.167:27011,192.168.1.167:27012

   # shard集群中每个chunk的大小, 单位:MB, 默认64
   # 整个sharding集群中,此值需要保持一致,集群启动后修改此值将不再生效。仅对mongos有效。
   chunkSize: 64

See Also

Thanks to the authors 🙂

返回目录


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK