• MongoDB配置文件YAML-based选项全解


    配置文件部分

    MongoDB引入一个YAML-based格式的配置文件。2.4版本以前的仍然兼容。

    我的mongodb配置文件:

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    systemLog:
     destination: file
     path: "/var/log/mongo/mongod.log"
     quiet: true
     logAppend: true
     timeStampFormat: iso8601-utc
    storage:
     dbPath: "/var/lib/mongo"
     directoryPerDB: true
     indexBuildRetry: false
     preallocDataFiles: true
     nsSize: 16
    # quota:
    #  enforced: false
    #  maxFilesPerDB: 8
     smallFiles: false
     syncPeriodSecs: 60
    # repairPath: "/var/lib/mongo/_tmp"
     journal:
      enabled: true
    #  debugFlags: 1
      commitIntervalMs: 100
    processManagement:
     fork: true
     pidFilePath: "/var/run/mongodb/mongod.pid"
    net:
    # bindIp: 192.168.11.52
     port: 27017
     http:
      enabled: true
      RESTInterfaceEnabled: false
    # ssl:
    #  mode: "requireSSL"
    #  PEMKeyFile: "/etc/ssl/mongodb.pem"
    operationProfiling:
     slowOpThresholdMs: 100
     mode: "slowOp"
    security:
     keyFile: "/var/lib/mongo/mongodb-keyfile"
     clusterAuthMode: "keyFile"
     authorization: "disabled"
    replication:
     oplogSizeMB: 50
     replSetName: "repl_test"
     secondaryIndexPrefetch: "all"

    设置选项:

    1. systemLog

    1
    systemLog.verbosity

    integer

    日志文件输出的级别,越大级别越低。

    1
    systemLog.quite

    boolean

    在quite模式下会限制输出信息:
    数据库命令输出,副本集活动,连接接受事件,连接关闭事件。

    1
    systemLog.traceAllExceptions

    string

    打印verbose信息来调试,用来记录证额外的异常日志。

    1
    systemLog.syslogFacility

    string,默认为user
    指定syslog日志信息的设备级别。需要指定--syslog来使用这个选项。

    1
    systemLog.path string

    发送所有的诊断信息日志,默认重启后会覆盖。

    1
    systemLog.logAppend

    boolean
    是否启用追加日志。

    1
    systemLog.destination

    string
    指定一个文件或syslog。如果指定为文件,必须同时指定systemLog.path

    1
    systemLog.timeStampFormat

    string,默认为iso8601-local
    日志信息中的时间戳格式:

    1
    ctime,iso8601-utc,iso8601-local

    2. processManagement

    1
    processManagement.pidFilePath

    string
    指定进程的ID,与--fork配合使用,不指定则不会创建。

    1
    processManagement.fork

    boolean,默认为false
    是守护进程在后台运行。

    3. net

    1
    net.port

    interger,默认为27017
    mongodb实例监听的端口号。

    1
    net.bindIp

    string,2.6版本默认为127.0.0.1
    指定mongodb实例绑定的ip,为了绑定多个ip,可以使用逗号分隔。

    1
    net.maxIncomingConnections

    integer 默认为1000000
    mongodb实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。

    1
    net.wireObjectCheck

    boolean,默认为true
    检查文档的有效性。会稍微影响性能。

    1
    net.http.enabled

    boolean,默认为false
    打开http端口,会导致更多的不安全因素。

    1
    net.unixDomainSocket.enabled

    boolean,默认为false
    停止UNIX domain socket监听。
    mongodb实例会一直监听UNIX
    socket,除非net.unixDomainSocket.enabled设置为true,bindIp没有设置,bindIp没有默认指定为127.0.0.1。

    1
    net.unixDomainSocket.pathPrefix

    string,默认为/tmp
    unix Socket所在的路径。

    1
    net.ipv6

    boolean,默认为false
    打开IPV6功能,默认为关闭的。

    1
    net.http.JSONPEnabled

    boolean,默认为false
    运行json访问http端口,打开会导致更多的不安全因素。

    1
    net.http.RESTInterfaceEnabled

    boolean,默认为false
    即使http接口选项关闭,打开也会暴露http接口,会导致更多的不安全因素。

    4. security

    1
    security.keyFile

    string
    指定分片集或副本集成员之间身份验证的key文件存储位置。

    1
    security.clusterAuthMode

    string
    集群认证中利用到这个模式,如果使用x.509安全机制,可以在这里指定。

    1
    keyFile,sendKeyFile,sendX509,x509

    默认的mongodb发行版是不支持ssl的,可以使用专业版的或重新自行编译mongodb。

    1
    security.authorization

    string,默认为disabled
    打开访问数据库和进行操作的用户角色认证。
    enabled,disabled

    5. operationProfiling

    1
    operationProfiling.slowOpThresholdMs

    integer,默认100
    指定慢查询时间,单位毫秒,如果打开功能,则向system.profile集合写入数据。

    1
    operationProfiling.mode

    integer,默认0
    改变分析日志输出级别。
    0,1,2,分别对应关闭,仅打开慢查询,记录所有操作。

    6. storage

    1
    storage.dbPath

    string
    指定数据文件的路径。

    1
    storage.directoryPerDB

    boolean,默认关闭
    指定存储每个数据库文件到单独的数据目录。如果在一个已存在的系统使用该选项,需要事先把存在的数据文件移动到目录。

    1
    storage.indexBuildRetry

    boolean,默认为true
    指定数据库在索引建立过程中停止,重启后是否重新建立索引。

    1
    storage.preallocDataFiles

    boolean,默认true
    是否预先分片好数据文件。

    1
    storage.nsSize

    integer,默认16
    指定命名空间的大小,即.ns后缀的文件。最大为2047MB,16M文件可以提供大约24000个命名空间。

    1
    storage.quota.enforced

    boolean,默认false
    限制每个数据库的数据文件数目。可以通过maxFilesPerDB调整数目。

    1
    storage.quota.maxFilesPerDB

    integer,默认为8
    限制每个数据库的数据文件数目。

    1
    storage.smallFiles

    boolean,默认为false
    限制mongodb数据文件大小为512MB,减小journal文件从1G到128M,适用于有很多数量小的数据文件。

    1
    storage.syncPeriodSecs

    number,默认60
    mongodb文件刷新频率,尽量不要在生产环境下修改。
    storage.repairPath
    string,默认为指定dbpath下的_tmp目录。
    指定包含数据文件的根目录,进行--repair操作。

    1
    storage.journal.enabled

    boolean,默认64bit为true,32bit为false
    记录操作日志,防止数据丢失。

    1
    storage.journal.debugFlags

    integer
    提供数据库在非正常关闭下的功能测试。

    1
    storage.journal.commitIntervalMs

    number,默认为100或30
    journal操作的最大间隔时间。可以是2-300ms之间的值,低的值有助于持久化,但是会增加磁盘的额外负担。
    如果journal和数据文件在同一磁盘上,默认为100ms。如果在不同的磁盘上为30ms。
    如果强制mongod提交日志文件,可以指定j:true,指定后,时间变为原来的三分之一。

    7. replication

    1
    replication.oplogSizeMB

    integer,默认为磁盘的5%
    指定oplog的最大尺寸。对于已经建立过oplog.rs的数据库,指定无效。

    1
    replication.replSetName

    string
    指定副本集的名称。

    1
    replication.secondaryIndexPrefetch

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

    8. sharding

    1
    sharding.clusterRole

    string
    指定分片集的mongodb角色。
    configsvr,配置服务器,端口27019;shardsvr,分片实例,端口27018。

    1
    sharding.archiveMovedChunks

    integer
    在块移动过程中,该选项强制mongodb实例保存所有移动的文档到moveChunk目录。

    9. auditLog

    1
    auditLog.destination

    string
    syslog,以json格式保存身份验证到syslog,windows下不可用,serverity级别为info,facility级别为user。
    console,以json格式输出信息到标准输出。
    file,以json格式输出信息到文件。

    1
    auditLog.format

    string
    指定输出文件的格式
    JSON,输出json格式文件;BSON,输出bson二进制格式文件。

    1
    auditLog.path

    string
    如果--auditDestination的值为file,则该选项指定文件路径。

    1
    auditLog.filter

    document
    指定过滤系统身份验证的格式为:

    1
    2
    { atype : <expression> }
    { atype: <expression>, "param.db": <database> }

    10. snmp

    1
    snmp.subagent

    boolean
    运行SNMP为一个子代理。

    1
    snmp.master

    boolean
    运行SNMP为一个主进程。

    PS:
    1.仅mongos选项

    1
    replication.localPingThresholdMs

    integer,默认15
    当客户端选定副本集进行读操作时受影响。

    1
    sharding.autoSplit

    boolean
    防止mongos自动在一个分片集合中插入元数据。
    因为任何的mongos都可以创建一个分离,如果打开该选项,将会导致分片不平衡,需要谨慎使用。

    1
    sharding.configDB

    string
    指定配置数据库。可以使用逗号分隔一到三个服务器。
    如果处于不同的位置,需要指定最近的一个。
    不能移除配置服务器,即使不可用或者离线了。

    1
    sharding.chunkSize

    integer,默认为64
    每个块的大小。64MB是理想大小,小的会导致不能在不同节点间高效移动。
    仅仅在初始化时有效。

    2.Windows服务选项

    1
    processManagement.windowsService.serviceName

    string,默认为MongoDB
    指定mongodb服务名称。可以使用--install,--remove增加或删除。

    1
    processManagement.windowsService.displayName

    string,默认为MongoDB
    设置mongodb服务应用程序的名称。

    1
    processManagement.windowsService.description

    string,默认为MongoDB Server
    结合--install,必须指定该选项的值。

    1
    processManagement.windowsService.serviceUser

    指定运行mongodb服务的用户

    1
    processManagement.windowsService.servicePassword

    指定运行mongodb服务的用户的密码

  • 相关阅读:
    PHP 多参数方法的重构
    PHP cURL库函数抓取页面内容
    PHP下载远程文件到指定目录
    PHP生成特定长度的纯字母字符串
    PHP提取奇数或偶数下标元素
    Java中的clone()----深复制,浅复制
    LeetCode题解 343.Integer Break
    MySQL学习笔记(四):存储引擎的选择
    存储过程优缺点
    MySQL学习笔记(三):常用函数
  • 原文地址:https://www.cnblogs.com/shuiche/p/6074565.html
Copyright © 2020-2023  润新知