专栏首页运维经验分享mongodb 配置文件

mongodb 配置文件

mongodb 配置文件

本文档是在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>, ... }

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • mongodb 配置文件

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

    拓荒者
  • mongodb启动不了:child process failed, exited with error number 100

    今天在启动mongodb的时候,发现起不来,报错:child process failed, exited with error number 100然后先去/...

    拓荒者
  • centos7 手动安装mongodb 原

    1、下载mongoDB的安装包:mongodb-linux-x86_64-rhel70-3.4.4; 2、上传安装包到服务器/data目录下; 3、解压安装...

    拓荒者
  • LeetCode 293. 翻转游戏

    你和朋友玩一个叫做「翻转游戏」的游戏,游戏规则:给定一个只有 + 和 - 的字符串。 你和朋友轮流将 连续 的两个 “++” 反转成 “–”。 当一方无法进...

    Michael阿明
  • C#实现Excel模板导出和从Excel导入数据

          午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 ? 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.O...

    用户1055830
  • JSON Schema

    JSON 作为通用的前后端交互,或者后台服务间通信的通用格式被大家广泛使用。我们肯定遇到过一些场景需要校验调用方传递过来的数据格式,比如一定要包含某些字段,某个...

    用户2937493
  • ASP.NET MVC5+EF6+EasyUI 后台管理系统-分配角色给用户

    由于之前做了将权限赋给角色,还需要做将角色组赋给用户,和将用户赋给角色组,一个用户可以拥有多个角色组,一个角色组包含多个用户,打开模块管理,添加一个分配的操作码...

    用户1149182
  • 无人机、无人车与机器人,未来谁更适合当快递员?

    镁客网
  • 如何查看某个端口被谁占用 转

    wuweixiang
  • [721]linux安装kafka

    首先确保你的机器上安装了jdk,kafka需要java运行环境,以前的kafka还需要zookeeper,新版的kafka已经内置了一个zookeeper环境,...

    周小董

扫码关注云+社区

领取腾讯云代金券