• 【MongoDB 配置篇】MongoDB 配置文件详解


    目录

    1 数据库环境

    2 配置文件

    2.1 配置文件格式

    2.2 配置文件的使用

    3 配置文件核心选项

    3.1 systemLog选项

    3.2 processManagement选项

    3.3 cloud选项

    3.4 net选项

    3.5 security选项

    3.6 setParameter选项

    3.7 storage选项

    3.8 operationProfiling选项

    3.9 replication选项

    3.10 sharding选项

    3.11 auditLog选项

    3.12 snmp选项


    MongoDB实例的运行离不开相应的参数配置,比如对数据库存放路径dbpath的配置,对于参数的配置,可以在命令行以选项的形式进行配置,也可以将配置信息列入配置文件进行配置。但是,使用配置文件将会使对mongod和mongos的管理变得更加容易,本篇将会对配置文件进行详细的讲解。

    1 数据库环境

    [mongod@strong ~]$ mongod --version
    db version v4.2.0
    git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
    OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
    allocator: tcmalloc
    modules: none
    build environment:
    distmod: rhel62
    distarch: x86_64
    target_arch: x86_64

    2 配置文件

    2.1 配置文件格式

    MongoDB配置文件使用YAML的格式。

    2.2 配置文件的使用

    对于配置文件的使用,在mongod或mongos中指定--config或-f选项。

    1)指定--config选项

    [mongod@strong ~]$ mongod --config /etc/mongo.cnf

    2)指定-f选项

    [mongod@strong ~]$ mongod -f /etc/mongo.cnf

    3 配置文件核心选项

    3.1 systemLog选项

    1)选项

    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>
    
        # COMMENT additional component verbosity settings omitted for brevity

    2)说明

    • verbosity:默认为0,值范围为0-5,用于输出日志信息的级别,值越大,输出的信息越多;
    • quiet:mongod或mongos运行的模式,在该模式下限制输出的信息,不推荐使用该模式;
    • traceAllExceptions:打印详细信息以便进行调试;
    • path:日志文件的路径,mongod或mongos会将所有诊断日志信息发送到该位置,而不是标准输出或主机的syslog上;
    • logAppend:默认为false,若设为true,当mongod或mongos实例启动时,会将新的条目追加到已存在的日志文件,否则,mongod会备份已存在的日志,并创建新的日志文件;
    • destination:指定日志输出的目的地,具体值为file或syslog,若设置为file,需指定path,该选项未指定,则将所有日志输出到标准输出;
    • timeStampFormat:日志信息中的时间格式,默认为iso8601-local,该选项有三个值,分别为ctime、iso8601-utc和iso8601-local;

    3.2 processManagement选项

    1)选项

    processManagement:
      fork: <boolean>
      pidFilePath: <string>
      timeZoneInfo: <string>

    2)说明

    • fork:默认值为false,设置为true,会激活守护进程在后台运行mongod或mongos进程;
    • pidFilePath:指定mongod或mongos写PID文件的路径,不指定该值,则不会创建PID文件;

    3.3 cloud选项

    1)选项

    cloud:
      monitoring:
        free:
          state: <string>
          tags: <string>

    2)说明

    • state:激活或禁用免费的MongoDB Cloud监控,该选项有以下三个值,分别为runtime、on和off,默认为runtime;在运行时可以通过db.enableFreeMonitoring()和db.disableFreeMonitoring()
    • tags:描述环境上下文的可选标记;

    3.4 net选项

    1)选项

    net:
      port: <int>
      bindIp: <string>
      bindIpAll: <boolean>
      maxIncomingConnections: <int>
      wireObjectCheck: <boolean>
      ipv6: <boolean>
      unixDomainSocket:
        enabled: <boolean>
        pathPrefix: <string>
        filePermissions: <int>
      tls:
        certificateSelector: <string>
        clusterCertificateSelector: <string>
        mode: <string>
        certificateKeyFile: <string>
        certificateKeyFilePassword: <string>
        clusterFile: <string>
        clusterPassword: <string>
        CAFile: <string>
        clusterCAFile: <string>
        CRLFile: <string>
        allowConnectionsWithoutCertificates: <boolean>
        allowInvalidCertificates: <boolean>
        allowInvalidHostnames: <boolean>
        disabledProtocols: <string>
        FIPSMode: <boolean>
      compression:
        compressors: <string>
      serviceExecutor: <string>

    2)说明

    • port:MongoDB实例监听客户端连接的TCP端口,对于mongod或mongos实例,默认端口为27017,对于分片成员,默认端口为27018,对于配置服务器成员,默认端口为27019;
    • bindIp:默认值为localhost。主机名、IP地址或Unix套接字,mongod或mongos在其上监听客户端的连接,绑定多个地址,以逗号分隔,若绑定所有IPv4地址,可输入0.0.0.0;
    • bindIpAll:默认值为false,设置为true,mongod或mongos实例将会绑定所有IPv4地址;
    • maxIncomingConnections:默认值为65536,mongod或mongos接收的最大连接数;

    3.5 security选项

    1)选项

    security:
      keyFile: <string>
      clusterAuthMode: <string>
      authorization: <string>
      transitionToAuth: <boolean>
      javascriptEnabled: <boolean>
      redactClientLogData: <boolean>
      clusterIpSourceWhitelist:
      - <string>
      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>
        clientCertificateSelector: <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>

    2)说明

    • keyFile:存储共享密钥文件的路径,MongoDB实例使用它在分片集群或副本集中彼此进行身份验证;
    • clusterAuthMode:默认值为keyFile;

    3.6 setParameter选项

    1)选项

    setParameter:
      <parameter1>: <value1>
      <parameter2>: <value2>

    2)说明

    设置MongoDB服务器的参数;

    3.7 storage选项

    1)选项

    storage:
      dbPath: <string>
      indexBuildRetry: <boolean>
      journal:
        enabled: <boolean>
        commitIntervalMs: <num>
      directoryPerDB: <boolean>
      syncPeriodSecs: <int>
      engine: <string>
      wiredTiger:
        engineConfig:
          cacheSizeGB: <number>
          journalCompressor: <string>
          directoryForIndexes: <boolean>
        collectionConfig:
          blockCompressor: <string>
        indexConfig:
          prefixCompression: <boolean>
      inMemory:
        engineConfig:
          inMemorySizeGB: <number>

    2)说明

    • dbPath:默认值为/data/db,mongod实例存储数据的目录;
    • indexBuildRetry:默认值为true,指定mongod在下次启动时是否重建未完成的索引;
    • enabled:64位系统默认为true,32位系统默认为false,是否激活日志以确定数据文件仍然有效以及可进行恢复;
    • commitIntervalMs:默认值为100毫秒,取值范围为1-500毫秒;
    • directoryPerDB:默认值为false,设置为true,每个数据库使用单独的目录存储数据,目录位于dbPath目录之下;
    • syncPeriodSecs:默认值为60,MongoDB通过fsync操作将数据刷新到数据文件之前经过的时间;
    • engine:默认值为wireTiger,4.2版本之后,MMAPv1存储引擎将会被废弃;
    • cacheSizeGB:定义wireTiger将为所有数据使用的内部缓存的大小,索引构建消耗的内存与wireTiger缓存内存时分开的,从MongoDB 3.4开始,该值的范围可以从0.25GB到10000GB,可以是浮点数,默认值是50%*( RAM - 1 GB )或256MB;
    • journalCompressor:默认值为snappy,指定用于压缩wireTiger日志数据的压缩类型,压缩类型有以下几种,分别为none、snappy、zlib和sztd;
    • directoryForIndexes:默认为false,设置为true,mongod将索引和集合存储在data(dbPath)目录下的单独子目录中,即索引存放在名字为index的子目录中,集合数据存放在名字为collection的子目录中;
    • blockCompressor:默认为snappy,指定集合数据的默认压缩类型,有以下几种类型,分别为none、snappy、zlib和sztd;
    • prefixCompression:默认为true,启用或禁用索引数据的前缀压缩;

    3.8 operationProfiling选项

    1)选项

    operationProfiling:
      mode: <string>
      slowOpThresholdMs: <int>
      slowOpSampleRate: <double>

    2)说明

    • mode:默认为off,指定应该分析哪些操作,分析器级别有如下几种,分别为off、slowOp和all;
    • slowOpThresholdMs:默认值为100;
    • slowOpSampleRate:默认值为1.0;

    3.9 replication选项

    1)选项

    replication:
      oplogSizeMB: <int>
      replSetName: <string>
      secondaryIndexPrefetch: <string>
      enableMajorityReadConcern: <boolean>

    2)说明

    • oplogSizeMB:复制操作日志的最大大小,以M为单位,默认情况下,mongod进程基于最大可用空间创建oplog,对于64位系统,oplog通常占可用磁盘空间的5%;
    • replSetName:副本集的名称;
    • enableMajorityReadConcern:默认为true,在PSA架构中,可以禁用该选项以缓解存储缓存的压力;

    3.10 sharding选项

    1)选项

    sharding:
      clusterRole: <string>
      archiveMovedChunks: <boolean>

    2)说明

    • clusterRole:设置在分片集群中mongod实例的角色,有以下值可供选择,分别为configsvr和shardsvr;

    3.11 auditLog选项

    1)选项

    auditLog:
      destination: <string>
      format: <string>
      path: <string>
      filter: <string>
    
    

    2)说明

    企业版选项,用于审计;

    3.12 snmp选项

    1)选项

    snmp:
      disabled: <boolean>
      subagent: <boolean>
      master: <boolean>

    2)说明

    • disabled:默认值为false,禁用SNMP对mongod的访问;
  • 相关阅读:
    ModuleNotFoundError: No module named 'babel' 解决办法
    linux修改时间
    Ubuntu 18.04 安装 odoo12 源码版
    开源ERP框架Odoo学习
    浅谈我对DDD领域驱动设计的理解(转)
    一步步带你做vue后台管理框架
    一步一步使用ABP框架搭建正式项目系列教程
    C#编写好的windows服务,在本机上运行很好,考到其他电脑运行出现“错误1053: 服务没有及时响应启动或控制请求”的解决办法
    公用表表达示展BOM示例
    sqlserver 2005新功能
  • 原文地址:https://www.cnblogs.com/alen-liu-sz/p/12975593.html
Copyright © 2020-2023  润新知