MongoDB 常用配置详解

官方参考文档:https://docs.mongodb.com/v3.2/reference/configuration-options/

从 2.6 版本开始,MongoDB 配置文件支持 YAML 的格式;原来的配置文件格式还保持向后兼容性。

systemLog 模块

示例:

systemLog: 
  verbosity: 0
  quiet: false
  destination: file
  logAppend: true
  path: /usr/local/mongodb/log/mongod.log
  timeStampFormat: iso8601-local

verbosity
日志信息级别,范围为 0-5。默认为 0。

quiet
在尝试限制输出量的安静模式下运行 mongod。不建议用于生产系统。

destination
定义日志记录方式(file 或 syslog)。如果未指定,日志将发送到标准输出;如果指定 file,则还必须指定 systemLog.path。

path
日志文件的路径。

logAppend
如果为 true,重新启动 mongod 时,会将新日志附加到现有日志文件的末尾;如果未定义,则会备份现有日志并创建一个新文件。

timeStampFormat
日志消息中时间戳的时间格式。默认为 iso8601-local(本地时间戳),包括:ctime、iso8601-utc、iso8601-local。

processManagement 模块

示例:

processManagement:
    fork: true
    pidFilePath: /usr/local/mongodb/temp/mongod.pid

fork
如果为true,则以守护进程的方式运行。

pidFilePath
指定 pid 文件。

net 模块

示例:

net: 
    port: 27017
    bindIp: 192.168.10.140,127.0.0.1
    maxIncomingConnections: 65536
    wireObjectCheck: true
    ipv6: false

port
监听端口。

bindIp
监听地址。多个用逗号分隔。

maxIncomingConnections
最大并发连接数。默认值:65536。

wireObjectCheck
如果为 true,则 mongod 会验证来自客户端的所有请求,以防止将格式错误或无效的 BSON 插入数据库中。默认值:true。

ipv6
如果为 true,启用 IPv6 支持。默认值:false。

storage 模块

示例:

storage:
    dbPath: /mongodb_data
    indexBuildRetry: true
    journal:
        enabled: true
        commitIntervalMs: 100
    directoryPerDB: false
    engine: mmapv1
    syncPeriodSecs: 60
    mmapv1:
        quota:
            enforced: false
            maxFilesPerDB: 8
        smallFiles: true
    wiredTiger:
        engineConfig:
            cacheSizeGB: 8
            journalCompressor: snappy
            directoryForIndexes: false   
        collectionConfig:
            blockCompressor: snappy
        indexConfig:
            prefixCompression: true

dbPath
数据存储目录。默认值:/data/db。

indexBuildRetry
指定 mongod 是否在下次启动时重新生成不完整的索引。默认值:true。

directoryPerDB
如果为 true,则 MongoDB 使用单独的目录存储每个数据库的数据。默认值:false。

syncPeriodSecs
mongod 使用 fsync 操作将数据 flush 到磁盘的时间间隔,默认值为 60 秒。强烈建议不要修改此值。

engine
指定存储引擎类型。从 MongoDB 3.2 开始默认值:wiredTiger。包括:mmapv1、wiredTiger、inMemory。

journal 子模块

enabled
启用或禁用 journal 日志持久存储,以确保数据文件保持有效和可恢复。在 64 位系统上默认为:true。

commitIntervalMs
两次日记操作之间允许的最长时间(以毫秒为单位)。取值范围是 1-500 毫秒。默认为 100 毫秒。

mmapv1 子模块

preallocDataFiles
启用或禁用数据文件的预分配。默认为:true。

nsSize
命名空间文件的默认大小(MB),即以 .ns 结尾的文件。默认为:16。

quota.enforced
启用或禁用对每个数据库可以拥有的数据文件数的最大限制。默认为:flash。

quota.maxFilesPerDB
对每个数据库的数据文件数的限制。

smallFiles
如果为 true,MongoDB 将使用较小的默认文件大小。该选项会减少数据文件的初始大小,并将最大大小限制为 512 MB;还将每个日志文件的大小从 1G 减少到 128 MB。导致 MongoDB 创建大量文件,影响大型数据库的性能。

journal.debugFlags
提供测试功能。

journal.commitIntervalMs
从版本 3.2 起已弃用。

wiredTiger 子模块

engineConfig.cacheSizeGB
WiredTiger 将用于所有数据的内部缓存的最大大小。从 MongoDB 3.2 开始,WiredTiger 内部缓存在默认情况下将使用(1 GB 和60% of RAM minus 1 GB)两者中的较大值。

engineConfig.journalCompressor
用于压缩 WiredTiger 日志数据的压缩类型。默认为:snappy。包括:none、snappy、zlib。

engineConfig.directoryForIndexes
如果为true,则 mongod 将索引和集合存储在 dbPath 下的单独子目录中。默认为:flash。

collectionConfig.blockCompressor
用于压缩集合数据的默认压缩类型。默认为:snappy。包括:none、snappy、zlib。

indexConfig.prefixCompression
启用或禁用索引数据的前缀压缩。默认值:true。

inMemory 子模块

engineConfig.inMemorySizeGB
为内存中存储引擎数据分配的最大内存量。默认值:物理 RAM 的 50% 减去1 GB。

operationProfiling 模块

示例:

operationProfiling:
    slowOpThresholdMs: 100
    mode: off

slowOpThresholdMs
数据库探查器认为查询速度慢的阈值(毫秒)。默认为:100。

mode
数据库分析的级别。默认为:off。包括:off、slowOp、all。

replication 模块

示例:

replication:
    oplogSizeMB: 10240
    replSetName: rs0
    secondaryIndexPrefetch: all
    enableMajorityReadConcern: false

oplogSizeMB
复制操作日志(oplog)的最大大小(单位:MB)。mongod 根据可用的最大空间量创建 oplog。对于 64 位系统,oplog 通常占可用磁盘空间的 5%。mongod 第一次创建 oplog 后,更改 oplogSizeMB 选项不会影响 oplog 的大小。

replSetName
mongod 所属的副本集的名称。副本集中的所有主机必须具有相同的副本集名称。
secondaryIndexPrefetch:在从 oplog 应用操作之前,副本集的从节点加载到内存中的索引。支持:none、all、_id_only。

enableMajorityReadConcern
启用 “majority” 的读取关注级别。默认为:flash。

setParameter 模块

设置 MongoDB 参数或 MongoDB Server parameters 中描述的参数

格式:

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

示例:要在配置文件中指定 enableLocalhostAuthBypass:

setParameter:
   enableLocalhostAuthBypass: false
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个MongoDB配置文件示例,其中包含了常用配置项: ``` # MongoDB配置 # 主机 mongo.host=127.0.0.1 # 端口 mongo.port=27017 # 数据库名 mongo.database=mydb # 用户名 mongo.username= # 密码 mongo.password= # 连接池最小连接数 mongo.minConnectionsPerHost=10 # 连接池最大连接数 mongo.maxConnectionsPerHost=100 # 连接池最大等待队列长度 mongo.maxWaitTime=10000 # 连接超时时间 mongo.connectTimeout=10000 # 等待超时时间 mongo.waitTimeout=120000 # Socket超时时间 mongo.socketTimeout=0 # 是否启用自动重连 mongo.autoConnectRetry=true # 每个主机允许的最大连接数 mongo.connectionsPerHost=100 # 是否启用SSL mongo.sslEnabled=false ``` 上述配置中,`mongo.host`和`mongo.port`分别指定了MongoDB服务器的主机名和端口号,`mongo.database`指定了要连接的数据库名,`mongo.username`和`mongo.password`分别指定了连接数据库的用户名和密码。`mongo.minConnectionsPerHost`和`mongo.maxConnectionsPerHost`分别指定了连接池中的最小和最大连接数,`mongo.maxWaitTime`指定了连接池中等待连接的最大时间,`mongo.connectTimeout`和`mongo.waitTimeout`分别指定了连接和等待超时时间,`mongo.socketTimeout`指定了Socket超时时间。`mongo.autoConnectRetry`指定了是否启用自动重连,`mongo.connectionsPerHost`指定每个主机允许的最大连接数,`mongo.sslEnabled`指定是否启用SSL。 需要注意的是,这只是一个示例配置文件,具体的配置项和值需要根据实际需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值