本文档是在mongodb为3.4下编写的,仅作为参考,详细内容请参考:https://docs.mongodb.com/manual/reference/configuration-options/#configuration-file

一.说明

配置mongodb有两种方式,一种是通过mongod和mongos两个命令;另外一种方式就是配置文件的方式。因为更容易去管理,所以后者更受大家的青睐。

二. 配置文件格式

mongodb 配置文件采用的YAML格式;

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
systemLog:
   destination: file
   path: "/var/log/mongodb/mongod.log"
   logAppend: true
storage:
   journal:
      enabled: true
processManagement:
   fork: true
net:
   bindIp: 127.0.0.1
   port: 27017
setParameter:
   enableLocalhostAuthBypass: false

三 使用配置文件

通过mongod和mongos命令去执行配置文件,这里要使用他们的一个选项--config(这里是两个横线,具体查看 > mongod --help)或者-f(--config的简写)

例如:

1
2
3
mongod --config  D:/mongodb/mongod.conf
 
mongos --config  D:/mongodb/mongos.conf

  或

1
2
3
mongod -f  D:/mongodb/mongod.conf
 
mongos -f  D:/mongodb/mongos.conf

四 配置文件的核心选项

1. systemLog 选项

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
systemLog:
   verbosity: <int
   quiet: <boolean>
   traceAllExceptions: <boolean>
   syslogFacility: <string>
   path: <string>
   logAppend: <boolean>
   logRotate: <string>
   destination: <string>
   timeStampFormat: <string>
   component:
      accessControl:
         verbosity: <int>
      command:
         verbosity: <int>

 systemLog.traceAllExceptions

类型:boolean

作用: 为调试打印详细信息,用于支持相关的故障排除。

systemLog.syslogFacility

类型:string

默认值:user

作用:将mongodb使用日志记录到系统日志中,如果要使用这个选项,必须开启--sysylog选项

systemLog.path

类型:string

作用:指定日志文件的目录

syetemLog.logAppend

类型:boolean

默认值:False

作用:当mongod或mongos重启时,如果为true,将日志追加到原来日志文件内容末尾;如果为false,将创建一个新的日志文件

systemLog.destination

类型:string

作用:指定日志文件的路径,如果设置了这个值,必须指定systemLog.path.如果没有设置,日志会标准的输出到后台

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 按照iso8601-local格式显示:1969-12-31T19:00:00.000-0500

processMangement 选项

1
2
3
processManagement:
   fork: <boolean>
   pidFilePath: <string>

  processMangement.fork

类型:Boolean

默认值:False

作用:在前台启动Mongodb进程,如果Session窗口关闭,Mongodb进程也随之停止。不过Mongodb同时还提供了一种后台Daemon方式启动,只需要加上一个"--fork"参数即可,值得注意的是,用到了"--fork"参数就必须启用"--logpath"参数。如下所示:

1
2
3
4
5
[root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork 
--fork has to be used with --logpath 
[root@localhost mongodb]# ./bin/mongod --dbpath=data/db --fork --logpath=log/mongodb.log  
all output going to: /opt/mongodb/log/mongodb.log 
forked process: 3300 

  daemon方式启动的fork参数也可以配置配置文件中,如下所示:

1
2
3
4
5
port=27017 
dbpath=data/db 
logpath=log/mongodb.log 
logappend=true 
fork=true 

 net 选项 

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
net:
   port: <int>
   bindIp: <string>
   maxIncomingConnections: <int>
   wireObjectCheck: <boolean>
   ipv6: <boolean>
   unixDomainSocket:
      enabled: <boolean>
      pathPrefix: <string>
      filePermissions: <int>
   http:
      enabled: <boolean>
      JSONPEnabled: <boolean>
      RESTInterfaceEnabled: <boolean>
   ssl:
      sslOnNormalPorts: <boolean>  # deprecated since 2.6
      mode: <string>
      PEMKeyFile: <string>
      PEMKeyPassword: <string>
      clusterFile: <string>
      clusterPassword: <string>
      CAFile: <string>
      CRLFile: <string>
      allowConnectionsWithoutCertificates: <boolean>
      allowInvalidCertificates: <boolean>
      allowInvalidHostnames: <boolean>
      disabledProtocols: <string>
      FIPSMode: <boolean>
   compression:
      compressors: <string>

  net.port

类型:integer

默认值:27017

作用:设置mongodb的监听TCP端口

net.bindIp

类型:string

作用:设置mongodb服务器监听ip地址,默认是127.0.0.1;如果监听多个ip地址,使用逗号隔开

net.maxIncomingConnections

类型:integer

默认值:65536

作用:最大并发链接数

net.ipv6

类型:boolean

默认值:false

作用:开启或关闭支持ipv6地址;

security 选项

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
security:
   keyFile: <string>
   clusterAuthMode: <string>
   authorization: <string>
   transitionToAuth: <boolean>
   javascriptEnabled:  <boolean>
   redactClientLogData: <boolean>
   sasl:
      hostName: <string>
      serviceName: <string>
      saslauthdSocketPath: <string>
   enableEncryption: <boolean>
   encryptionCipherMode: <string>
   encryptionKeyFile: <string>
   kmip:
      keyIdentifier: <string>
      rotateMasterKey: <boolean>
      serverName: <string>
      port: <string>
      clientCertificateFile: <string>
      clientCertificatePassword: <string>
      serverCAFile: <string>
   ldap:
      servers: <string>
      bind:
         method: <string>
         saslMechanisms: <string>
         queryUser: <string>
         queryPassword: <string>
         useOSDefaults: <boolean>
      transportSecurity: <string>
      timeoutMS: <int>
      userToDNMapping: <string>
      authz:
         queryTemplate: <string>

  ....查看mongodb手册 #security选项

setParameter 选项

设置mongodb参数,查看参数列表

采用YAML语言格式

1
2
3
setParameter:
   <parameter1>: <value1>
   <parameter2>: <value2>

storage 选项

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
storage:
   dbPath: <string>
   indexBuildRetry: <boolean>
   repairPath: <string>
   journal:
      enabled: <boolean>
      commitIntervalMs: <num>
   directoryPerDB: <boolean>
   syncPeriodSecs: <int>
   engine: <string>
   mmapv1:
      preallocDataFiles: <boolean>
      nsSize: <int>
      quota:
         enforced: <boolean>
         maxFilesPerDB: <int>
      smallFiles: <boolean>
      journal:
         debugFlags: <int>
         commitIntervalMs: <num>
   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(window系统)

作用:设置数据存储文件目录

storage.indexBuildRetry

类型:boolean

默认值:true

作用:开启或关闭是否在mongod下次启动重建不完整的索引。

注:在in-memory存储引擎下不可用

storage.repairPath

类型:string

默认值:在dbpath下的A _tmp_repairDatabase_<num> 文件目录

作用:为进行恢复操作指定目录

注意:仅仅在MMAPv1存储引擎下可用

storage.journal.enabled

类型:boolean

默认值:true(64-bit系统);false(32-bit系统)

作用:开启和关闭journal,为了保证数据文件的有效性和可恢复性;在设置了dbpath之后有效

注:在in-memory存储引擎下不可用

storage.directoryPerDB

类型:boolean

默认值:false

作用:当为true,mongodb为每个数据库建立一个单独的路径,这个路径是在dbpath下创建的;每次创建需要重启服务器

注:在in-memory存储引擎下不可用

storage.engine

默认值:wiredTiger

作用:这是数据存储引擎

描述
MMAPV1 MMAPCV1 storage engine
wiredTiger WiredTiger Storage Engine.
inMemory In-Memory Storage Engine.

storage.mmapv1 选项

1
2
3
4
5
6
7
8
9
10
11
storage:
   mmapv1:
      preallocDataFiles: <boolean>
      nsSize: <int>
      quota:
         enforced: <boolean>
         maxFilesPerDB: <int>
      smallFiles: <boolean>
      journal:
         debugFlags: <int>
         commitIntervalMs: <num>

  storage.mmapv1.preallocDataFiles

类型:boolean

默认值:true

作用:开启或关闭数据文件的预分配;

storage.mmapv1.quota.enforced

类型:boolean

默认值:false

作用:开启或关闭每个数据库中的数据文件个数的限额;默认是每个数据库最多有8个数据文件,通过调整storage.mmapv1.quota.maxFilesPerDB

storage.mmapv1.quota.maxFilesPerDB

  类型:integer

默认值:8

作用:设置每个数据库中数据文件的限制个数;

storage.wiredTiger 选项

1
2
3
4
5
6
7
8
9
10
storage:
   wiredTiger:
      engineConfig:
         cacheSizeGB: <number>
         journalCompressor: <string>
         directoryForIndexes: <boolean>
      collectionConfig:
         blockCompressor: <string>
      indexConfig:
         prefixCompression: <boolean>

  storage.wiredTiger.engineConfig.cacheSizeGB

类型:float

作用:设置缓存大小,从3.4版本开始,内存的50%-1GB 和256MB的最大值

storage.wriedTiger.engineConfig.journalCompressor

默认值:snappy

作用:设置journal压缩方式;可选项:none/snappy/zlib

storage.inmemory 选项

1
2
3
4
storage:
   inMemory:
      engineConfig:
         inMemorySizeGB: <number>

  storage.inmemory.engineConfig.inMemorySizeGB

类型:float

默认值:物理内存的50%-1GB

作用:设置缓冲区大小;

opeartionProfiling 选项

1
2
3
operationProfiling:
   slowOpThresholdMs: <int>
   mode: <string>

  opeartionProfiling.slowOpThresholdMs

类型:integer

默认值:100

作用:设置区分慢查询的一个阈值,比如100,当查询速度大于100ms,记录到日志中

operationProfiling.mode

类型:string

默认值:off

replication 选项

1
2
3
4
5
replication:
   oplogSizeMB: <int>
   replSetName: <string>
   secondaryIndexPrefetch: <string>
   enableMajorityReadConcern: <boolean>

  replication.oplogSizeMB

类型:integer

作用:设置复制日志文件的大小;

sharding 选项

1
2
3
sharding:
   clusterRole: <string>
   archiveMovedChunks: <boolean>

sharding.clusterRole

类型:string

作用:设置分片集群中的角色;

值   描述
configsvr 作为配置服务器,默认端口27019
shardsvr 作为一个分片,默认端口27018

auditLog 选项 (MongoDB Enterprise可用)

1
2
3
4
5
auditLog:
   destination: <string>
   format: <string>
   path: <string>
   filter: <string>

  auditLog.destination

类型:string

作用:审计日志位置;

描述
syslog JSON文件格式输出在系统日志中,window系统中不可用
console JSON格式输出
file 输出到文件

auditLog.format

类型:string

作用:设置设计日志输出格式;可用值:JSON/BSON

auditLog.path

类型:string

作用:设计日志输出文件路径

auditLog.filter

类型:string

作用:审计日志过滤器

格式:{ <field1>: <expression1>, ... }

转载自:https://www.cnblogs.com/phpandmysql/p/7763394.html

mongodb 集群配置文件的更多相关文章

  1. Docker MongoDB 集群搭建

    简单地在Docker环境上搭建一个无认证的MongoDB集群.1.本文使用的容器集群角色 ContainerName IP:portConfig Server cfg_1    10.1.1.2:27 ...

  2. MongoDB集群架构及搭建

    MongoDB分布式集群 MongDB分布式集群能够对数据进行备份,提高数据安全性,以及提高集群提高读写服务的能力和数据存储能力.主要通过副本集(replica)对数据进行备份,通过分片(shardi ...

  3. MongoDB集群

    高可用的MongoDB集群   1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l  面向集合的存储:适合存储 ...

  4. MongoDB集群与LBS应用系列(一)

    MongoDB集群与LBS应用系列(一) 1. 概念 MongoDB作为著名的NoSQL,早已非常流行.它的地理应用也非常成熟,被foursquare用于生产环境也已经多时.本文主要记录今年6月份的一 ...

  5. MongoDB集群搭建-副本集

    MongoDB集群搭建-副本集 概念性的知识,可以参考本人博客地址: 一.Master-Slave方案: 主从: 二.Replica Set方案: 副本集: 步骤:(只要按步骤操作,100%成功) 1 ...

  6. Mongodb集群【三】

    Mongodb常用三种集群 1 主从(Master/Slave) 不推荐,但是mongodb依然保留有.一主多从,不支持链式结构.简单主从,没有裁仲者不能自动恢复. 2 副本集(Relica Set) ...

  7. 高可用的MongoDB集群

    1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l  面向集合的存储:适合存储对象及JSON形式的数据. l ...

  8. centos7下安装部署mongodb集群(副本集模式)

    环境需求:Mongodb集群有三种模式:  Replica Set, Sharding,Master-Slaver.  这里部署的是Replica Set模式. 测试环境: 这里副本集(Replica ...

  9. MongoDB集群运维笔记

    前面的文章介绍了MongoDB副本集和分片集群的做法,下面对MongoDB集群的日常维护操作进行小总结: MongDB副本集故障转移功能得益于它的选举机制.选举机制采用了Bully算法,可以很方便从分 ...

随机推荐

  1. IDLE与pycharm执行相同代码结果却不同,原因分析

    最近在熟悉Python的class类的时候,无意中发现同样的代码,在pycharm和IDLE中结果不同,闲话少说先上代码: class aa(): def __init__(self,name): p ...

  2. MySQL数据库-表操作-SQL语句(一)

    1. 数据库操作与存储引擎 1.1   数据库和数据库对象 数据库对象:存储,管理和使用数据的不同结构形式,如:表.视图.存储过程.函数.触发器.事件等. 数据库:存储数据库对象的容器. 数据库分两种 ...

  3. 【LEETCODE】38、167题,Two Sum II - Input array is sorted

    package y2019.Algorithm.array; /** * @ProjectName: cutter-point * @Package: y2019.Algorithm.array * ...

  4. PB连接ORALCE数据库方法

    本地必须配置连接服务

  5. 单例DCL模式

    单例模式可以保证系统中一个类只有一个实例.即一个类只有一个对象实例. 一般写法 public class DCLSingle { public static DCLSingle instance= n ...

  6. vue使用基础

    1. 首先下载node.js安装 下载地址:https://nodejs.org/en/download/ 2. 安装vue脚手架 在cmd命令里面输入 npm install -g @vue/cli ...

  7. Junit5中实现参数化测试

    从Junit5开始,对参数化测试支持进行了大幅度的改进和提升.下面我们就一起来详细看看Junit5参数化测试的方法. 部署和依赖 和Junit4相比,Junit5框架更多在向测试平台演进.其核心组成也 ...

  8. Centos 7 添加开机启动

    1.添加启动服务 添加docker开机启动服务 [root@localhost ~]# systemctl enable docker.serviceCreated symlink from /etc ...

  9. 15天入门RT-Thread之第一天

    今天开始学习jiezhi15天的RT-Thread入门系列课程 感谢RT-Thread提供的免费课程,终于可以系统入门RT-Thread ,感兴趣的同学可以关注RT-Thread官方公众号,获取最新的 ...

  10. Redis安装--CentOS7上安装Redis

    echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! 1.R ...