mongodb的一些文件介绍
发表于:2025-02-14 作者:千家信息网编辑
千家信息网最后更新 2025年02月14日,# mongod.conf # for documentation of all options, see:# http://docs.mongodb.org/manual/reference/c
千家信息网最后更新 2025年02月14日mongodb的一些文件介绍
# mongod.conf # for documentation of all options, see:# http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data.systemLog: #系统日志 destination: file #日志输出目的地,可以指定为 "file" 或者"syslog",表述输出到日志文件,如果不指定,则会输出到标准输出中(standard output) logAppend: true #为 true,当 mongod/mongos 重启后,将在现有日志的尾部继续添加日志。否则,将会备份当前日志文件,然后创建一个新的日志文件 path: /var/log/mongodb/mongod.log #日志路径 # Where and how to store data.storage: #存储 dbPath: /var/lib/mongo # 设置数据文件的存放目录, journal: #是否开启journal日志持久存储,用来数据恢复 enabled: true #64系统默认为true,32位系统默认为false# engine: #存储引擎类型# mmapv1: #仅对MMAPV1引擎# wiredTiger: #仅对wiredTiger引擎生效 # how the process runsprocessManagement: #进程管理 fork: true # fork and run in background #是否在后台运行 pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile #pid文件路径 timeZoneInfo: /usr/share/zoneinfo #时区信息文件路径 # network interfacesnet: #网络 port: 27017 #监听的端口 bindIp: 127.0.0.1 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting. #监听的ip地址 #security: #安全配置 #operationProfiling: #性能分析器 #replication: #主从复制 #sharding: #sharding架构 ## Enterprise-Only Options #auditLog: #审计日志 #snmp: #简单网络管理
扩展:
进程管理--processManagement
名称 | 说明 |
---|---|
fork | 运行在后台 |
pidFilePath | PID文件路径 |
网络--net
名称 | 说明 |
---|---|
port | 监听端口 |
bindIP | 监听的ip地址 |
maxIncomingConnections | 进程允许的最大连接数,默认值为65535 |
wireObjectCheck | 当客户端写入数据是,检测数据的有效性 |
ipv6 | ipv6地址,默认为false |
存储--storage
名称 | 说明 | |
---|---|---|
dbPath | mongod 进程存储数据目录,此配置仅对 mongod 进程有效 | |
indexBuildRetry | 当构建索引时 mongod 意外关闭,那么再次启动是否重新构建索引;索引构建失败,mongod 重启后将会删除尚未完成的索引,但是否重建由此参数决定。默认值为 true。 | |
repairPath | 配合 --repair 启动命令参数,在 repair 期间使用此目录存储临时数据,repair 结束后此目录下数据将被删除,此配置仅对 mongod 进程有效。不建议在配置文件中配置,而是使用 mongod 启动命令指定。 | |
engine | 存储引擎类型,mongodb 3.0 之后支持 "mmapv1"、"wiredTiger" 两种引擎,默认值为"mmapv1";官方宣称 wiredTiger 引擎更加优秀。 | |
journal | 是否开启 journal 日志持久存储,journal 日志用来数据恢复,是 mongod 最基础的特性,通常用于故障恢复。64 位系统默认为 true,32 位默认为 false,建议开启,仅对 mongod 进程有效。 | |
directoryPerDB | 是否将不同 DB 的数据存储在不同的目录中 默认值为 false | |
syncPeriodSecs mongod | 使用 fsync 操作将数据 flush 到磁盘的时间间隔,默认值为 60(单位:秒)强烈建议不要修改此值 mongod 将变更的数据写入 journal 后再写入内存,并间歇性的将内存数据 flush 到磁盘中,即延迟写入磁盘,有效提升磁盘效率 | |
mmapv1 | 仅对 MMAPV1 引擎 | |
quota | 磁盘配额 | |
enforced:false | 配额管理,是否限制每个 DB 所能持有的最大文件数量 默认值为 false | |
maxFilesPerDB:8 | 如果 enforce 开启,每个 DB 所持有的存储文件不会超过此阀值 | |
smallFiles: false | 是否使用小文件存储数据;如果此值为 true mongod 将会限定每个数据文件的大小为 512M(默认最大为 2G),journal 降低到 128M(默认为 1G)。如果 DB 的数据量较大,将会导致每个 DB 创建大量的小文件,这对性能有一定的影响。在 production 环境下,不建议修改此值,在测试时可以设置为 true,节约磁盘。 | |
journal: | ||
commitIntervalMs: 100 | mongod 进程提交 journal 日志的时间间隔,即 fsync 的间隔。单位:毫秒 | |
nsSize: | 每个 database 的 namespace 文件的大小,默认为 16,单位:M;最大值可以设置为 2048,即 dbpath 下 ".ns" 后缀文件的大小。16M 基本上可以保存 24000 条命名条目,新建一个 collection 或者 index 信息,即会增加一个 namespace 条目 | |
wiredTiger | 如下配置仅对 wiredTiger 引擎生效(3.0 以上版本) | |
engineConfig: | 引擎配置 | |
cacheSizeGB: 8 | wiredTiger 缓存工作集(working set)数据的内存大小,单位:GB,此值决定了 wiredTiger 与 mmapv1 的内存模型不同,它可以限制 mongod 对内存的使用量,而 mmapv1 则不能(依赖于系统级的 mmap) | |
journalCompressor: snappy journal | 日志的压缩算法,可选值为 "none"、"snappy"、"zlib"。 | |
directoryForIndexes: false | 是否将索引和 collections 数据分别存储在 dbPath 单独的目录中。即 index 数据保存 "index" 子目录,collections 数据保存在 "collection" 子目录。默认值为 false,仅对 mongod 有效。 | |
collectionConfig: | 集合配置 | |
blockCompressor: snappy | collection 数据压缩算法,可选值 "none"、"snappy"、"zlib"。 | |
indexConfig: | 索引配置 | |
prefixCompression: true | 是否对索引数据使用 "前缀压缩"(prefix compression,一种算法)。前缀压缩,对那些经过排序的值存储,有很大帮助,可以有效的减少索引数据的内存使用量。默认值为 true。 |
性能分析器--operationProfiling
名称 | 说明 | |
---|---|---|
slowOpThresholdMs: 100 | 数据库 profiler 判定一个操作是 "慢查询" 的时间阀值,单位毫秒;mongod 将会把慢查询记录到日志中,即使 profiler 被关闭 | |
mode: off | 数据库 profiler 级别,操作的性能信息将会被写入日志文件中 | |
1)off:关闭 profiling | ||
2)slowOp:on,只包含慢操作日志 | ||
3)all:on,记录所有操作 | ||
数据库 profiling 会影响性能,建议只在性能调试阶段开启。此参数仅对 mongod 有效 |
主从复制--replication
名称 | 说明 |
---|---|
oplogSizeMB: 10240 | replication 操作日志的最大尺寸,单位:MB。mongod 进程根据磁盘最大可用空间来创建 oplog |
enableMajorityReadConcern: false | 是否开启 readConcern 的级别为 "majority",默认为 false;只有开启此选项,才能在 read 操作中使用 "majority"。(3.2 + 版本) |
replSetName: <无默认值> | "复制集" 的名称,复制集中的所有 mongd 实例都必须有相同的名字,sharding 分布式下,不同的 sharding 应该使用不同的 replSetName |
secondaryIndexPrefetch: all | 只对 mmapv1 存储引擎有效。复制集中的 secondary,从 oplog 中运用变更操作之前,将会先把索引加载到内存中,默认情况下,secondaries 首先将操作相关的索引加载到内存,然后再根据 oplog 应用操作。可选值: |
1)none:secondaries 不将索引数据加载到内容 | |
2)all:sencondaries 将此操作有关的索引数据加载到内存 | |
3)_id_only:只加载_id 索引 | |
默认值为:all,此配置仅对 mongod 有效。 | |
localPingThresholdMs: 15 | ping 时间,单位:毫秒,mongos 用来判定将客户端 read 请求发给哪个 secondary。仅对 mongos 有效。默认值为 15,和客户端 driver 中的默认值一样。当 mongos 接收到客户端 read 请求,它将: |
1、找出复制集中 ping 值最小的 member。 | |
2、将延迟值被此值允许的 members,构建一个列表 | |
3、从列表中随机选择一个 member。 | |
ping 值是动态值,每 10 秒计算一次。mongos 将客户端请求转发给延迟较小(与此值相比)的某个 secondary 节点。 |
sharding架构--sharding
名称 | 说明 |
---|---|
clusterRole: <无默认值> | 在 sharding 集群中,此 mongod 实例的角色,可选值: |
1、configsvr:此实例为 config server,此实例默认侦听 27019 端口 | |
2、shardsvr:此实例为 shard(分片),侦听 27018 端口 | |
此配置仅对 mongod 有效。通常 config server 和 sharding server 需要使用各自的配置文件。 | |
archiveMovedChunks: true | 当 chunks 因为 "负载平衡" 而迁移到其他节点时,mongod 是否将这些 chunks 归档,并保存在 dbPath 下 "moveChunk" 目录下,mongod 不会删除 moveChunk 下的文件。默认为 true。 |
autoSplit: true | 是否开启 sharded collections 的自动分裂,仅对 mongos 有效。如果所有的 mongos 都设定为 false,那么 collections 数据增长但不能分裂成新的 chunks。因为集群中任何一个 mongos 进程都可以触发 split,所以此值需要在所有 mongos 行保持一致。仅对 mongos 有效。 |
configDB: <无默认值> | 设定 config server 的地址列表,每个 server 地址之间以 "," 分割,通常 sharded 集群中指定 1 或者 3 个 config server。(生产环境,通常是 3 个 config server,但 1 个也是可以的)。所有的 mongos 实例必须配置一样,否则可能带来不必要的问题。 |
chunkSize: 64 | sharded 集群中每个 chunk 的大小,单位:MB,默认为 64,此值对于绝大多数应用而言都是比较理想的。chunkSize 太大会导致分布不均,太小会导致分裂成大量的 chunk 而经常移动. 整个 sharding 集群中,此值需要保持一致,集群启动后修改此值将不再生效。 |
系统日志--systemLog
名称 | 说明 |
---|---|
verbosity: 0 | 日志级别,0:默认值,包含 "info" 信息,1~5,即大于 0 的值均会包含 debug 信息 |
quiet: true | "安静输出",此时 mongod/mongos 将会尝试减少日志的输出量。不建议在 production 环境下开启,否则将会导致跟踪错误比较困难。 |
traceAllExceptions: true | 打印异常详细信息。 |
path: logs/mongod.log | 日志路径 |
logAppend: false | 如果为 true,当 mongod/mongos 重启后,将在现有日志的尾部继续添加日志。否则,将会备份当前日志文件,然后创建一个新的日志文件;默认为 false。 |
logRotate: rename | 日志 "回转",防止一个日志文件特别大,则使用 logRotate 指令将文件 "回转",可选值: |
1)rename:重命名日志文件,默认值。 | |
2)reopen:使用 linux 日志 rotate 特性,关闭并重新打开此日志文件,可以避免日志丢失,但是 logAppend 必须为 true。 | |
destination: file | 日志输出目的地,可以指定为 "file" 或者"syslog",表述输出到日志文件,如果不指定,则会输出到标准输出中(standard output) |
安全配置--security
名称 | 说明 |
---|---|
authorization | disabled 或者 enabled,仅对 mongod 有效;表示是否开启用户访问控制(Access Control),即客户端可以通过用户名和密码认证的方式访问系统的数据,默认为 "disabled",即客户端不需要密码即可访问数据库数据。(限定客户端与 mongod、mongos 的认证) |
clusterAuthMode | 集群中 members 之间的认证模式,可选值为 "keyFile"、"sendKeyFile"、"sendX509"、"x509",对 mongod/mongos 有效;默认值为 "keyFile",mongodb 官方推荐使用 x509,不过我个人觉得还是 keyFile 比较易于学习和使用。不过 3.0 版本中,mongodb 增加了对 TLS/SSL 的支持,如果可以的话,建议使用 SSL 相关的配置来认证集群的 member,此文将不再介绍。(限定集群中 members 之间的认证) |
keyFile | 当 clusterAuthMode 为 "keyFile" 时,此参数指定 keyfile 的位置,mongodb 需要有访问此文件的权限。 |
javascriptEnabled | true 或者 false,默认为 true,仅对 mongod 有效;表示是否关闭 server 端的 javascript 功能,就是是否允许 mongod 上执行 javascript 脚本,如果为 false,那么 mapreduce、group 命令等将无法使用,因为它们需要在 mongod 上执行 javascript 脚本方法。如果你的应用中没有 mapreduce 等操作的需求,为了安全起见,可以关闭 javascript。 |
setParameter | 允许指定一些的 Server 端参数,这些参数不依赖于存储引擎和交互机制,只是微调系统的运行状态,比如 "认证机制"、"线程池参数" 等。参见【parameter】 |
enableLocalhostAuthBypass | true 或者 false,默认为 true,对 mongod/mongos 有效;表示是否开启 "localhost exception",对于 sharding cluster 而言,我们倾向于在 mongos 上开启,在 shard 节点的 mongod 上关闭。 |
authenticationMechanisms | 认证机制,可选值为 "SCRAM-SHA-1"、"MONGODB-CR"、"PLAN" 等,建议为"SCRAM-SHA-1",对 mongod/mongos 有效;一旦选定了认证机制,客户端访问 databases 时需要与其匹配才能有效。 |
性能参数--setParameter:
名称 | 说明 |
---|---|
connPoolMaxShardedConnsPerHost | 默认值为 200,对 mongod/mongos 有效;表示当前 mongos 或者 shard 与集群中其他 shards 链接的链接池的最大容量,此值我们通常不会调整。连接池的容量不会阻止创建新的链接,但是从连接池中获取链接的个数不会超过此值。维护连接池需要一定的开支,保持一个链接也需要占用一定的系统资源。 |
connPoolMaxConnsPerHost | 默认值为 200,对 mongod/mongos 有效;同上,表示 mongos 或者 mongod 与其他 mongod 实例之间的连接池的容量,根据 host 限定。 |
日志
数据
文件
有效
存储
配置
索引
引擎
名称
进程
集群
输出
客户
客户端
系统
内存
单位
参数
建议
认证
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术专业都是外包
河北服务器机柜价格实惠
中美关系网络安全问题论文
工作单位如何践行网络安全
四川安卓软件开发怎么样
软件开发人员等级怎么划分
宜宾 网络安全法
移动互联网金融+科技概念
大学需要注意哪些网络安全
人机界面编程软件开发
星际战争2换服务器
mac管理ftp服务器
管家婆不显示数据库
网络安全绘画男生实用
真正的裸金属服务器是否需要硬盘
山西企业软件开发报价
ourmail 服务器
迅搜互联网络科技有限公司
人工智能数据库视频
软件开发要用多少钱
java邮件服务器搭建
软件开发银行业务做久了
增强网络安全意识保护你我他
联通的什么数据库
软件开发项目工作说明文档
网络安全手抄报难度漂亮
网络安全问题学习感悟
服务器电源开关的接法
网络技术行业主要从业人员
工业应用软件开发论文