mongodb配置文件解析

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
日志服务 SLS,月写入数据量 50GB 1个月
云解析 DNS,旗舰版 1个月
简介: mongodb配置文件

样例(YAML格式):
systemLog:

destination: file #日志的目标,可指定为file或者syslog。指定为file时也必须指定systemLog.path。如果不指定就是标准输出。
path: "/data/mongodb/log/mongod.log"
logAppend: true #如果指定为true,那么重新启动mongo后,日志会在原来的文件中追加。如果指定为false,则会覆盖之前的日志文件。
logRotate: rename #为了防止日志文件过大,此选项可指定rename和reopen。 
                 rename使用时间戳重新命名旧的日志文件,新日志发送到新建的日志文件中。 
                 reopen是关闭并重新打开日志文件。是典型的Linux/Unix的日志切换行为.必须手动重命名日志文件。
timeStampFormat: ctime #默认:iso8601-local 时间戳格式,可指定为ctime,iso8601-utc,iso8601-local.
traceAllExceptions: #解释:为调试打印多余的信息,这些多余的信息有利于我们排除故障。
quiet: true #生成环境下不建议使用,不利于排查问题

PS:

component:
   accessControl:
       verbosity: <int>

mongo把日志分为了多个组件,我们可以分别指定这些组件的冗余水平。

组件 说明 举例
accessControl 访问控制日志 比如验证
command 命令日志 比如调用count方法
control 控制日志 比如初始化
control 控制日志 比如初始化
ftd 统计和状态日志 
GEO JSON结构 
index 索引日志 比如创建索引
network 网络日志 比如接收到连接
query 查询日志 比如find
replication 副本日志 比如同步心跳
sharding 分片日志 比如启动mongos
storage 存储日志 比如执行fsync命令。有一个子模块journal,如果journal不指定则默认是storage水平。
write 写日志 比如update

storage:

dbPath: "/data/mongodb/data/"
indexBuildRetry:true #当构建索引时mongod意外关闭,那么再次启动是否重新构建索引;索引构建失败,mongod重启后将会删除尚未完成的索引,但是否重建由此参数决定。默认值为true。

journal:

enabled: true #是否开启journal日志持久存储(redo),journal日志用来数据恢复,是mongod最基础的特性,通常用于故障恢复。64位系统默认为true,32位默认为false,建议开启,仅对mongod进程有效。
commitIntervalMs: 100 #The maximum amount of time in milliseconds that the mongod process allows between journal operations. mongod进程提交journal日志的时间间隔。较低的值增加了juornal的耐久性,以牺牲性能为代价,在wiredtiger引擎上,默认的日志提交间隔为100毫秒。建议不要修改。【如果单块设备提供日志和数据文件,默认的日记提交时间间隔为100毫秒,如果不同的块设备提供的日志和数据文件,默认的日记提交的时间间隔为30毫秒。】

directoryPerDB: true #是否将不同DB的数据存储在不同的目录中,dbPath的子目录,目录名为db的名称。对已经存储数据的mongod修改此值,需要首先使用mongodump指令将数据导出,然后关闭mongod,再修改此值和指定新的dbPath,然后使用mongorestore指令重新导入数据。(即导出数据,并使用mongorestore将数据重新写入mongod的新目录中)。对于replica set架构模式,只需要在每个secondary依次操作:关闭secondary,然后配置新的dbPath,然后启动即可(会执行初始化sync,从primary中将数据去完全同步到本地)。最后操作primary。此参数仅对mongod进程有效,默认值为false。
syncPeriodSecs: 60 #mongod使用fsync操作将数据flush到磁盘的时间间隔,默认值为60(单位:秒),强烈建议不要修改此值;mongod将变更的数据写入journal后再写入内存,并间歇性的将内存数据flush到磁盘中,即延迟写入磁盘,有效提升磁盘效率。此指令不影响journal存储,仅对mongod有效。
engine: wiredTiger #从mongodb3.2开始,官方已经开始默认使用wiredTiger存储引擎,在3.2之前默认使用mmapv1存储引擎。
mongodb数据库的存储引擎,可用的值包括:mmapv1:指定mmapv1存储引擎(3.2之前默认使用)、wiredTiger:指定wiredTiger存储引擎(3.2开始默认使用)、inMemory:指定内存存储引擎(在3.2还是bate版本)。
PS:新旧版本存储引擎比较:

对比:http://learn-mongodb.readthedocs.io/storage-engine/wiredtiger-vs-mmapv1/
wiredTiger:

engineConfig:
    cacheSizeGB: 40 #wiredtiger将使用所有数据的最大缓存大小,wiredTiger缓存工作集(working set)数据的内存大小,单位:GB,此值决定了wiredTiger与mmapv1的内存模型不同,它可以限制mongod对内存的使用量,而mmapv1则不能(依赖于系统级的mmap)。默认情况下,cacheSizeGB的值为假定当前节点只部署一个mongod实例,在MongoDB 3,默认情况下,wiredtiger缓存,使用1 GB或安装的物理内存的一半,以较大者为准。如果当前节点部署了多个mongod进程,那么需要合理配置此值。如果mongod部署在虚拟容器中(比如,lxc,cgroups,Docker)等,它将不能使用整个系统的物理内存,则需要适当调整此值。默认值为物理内存的一半。
    journalCompressor: snappy #journal日志的压缩算法,默认为“snappy”,可选值为“none”、“snappy”、“zlib”。
    directoryForIndexes: false #是否将索引和collections数据分别存储在dbPath单独的目录中。即index数据保存“index”子目录,collections数据保存在“collection”子目录。默认值为false,仅对mongod有效。 

collectionConfig:

    blockCompressor: sanappy #collection数据压缩算法,可选值“none”、“snappy”、“zlib”。开发者在创建collection时可以指定值,以覆盖此配置项。如果mongod中已经存在数据,修改此值不会带来问题,旧数据仍然使用原来的算法解压,新数据文件将会采用新的解压缩算法。

indexConfig:

    prefixCompression: true #是否对索引数据使用“前缀压缩”(prefix compression,一种算法)。前缀压缩,对那些经过排序的值存储,有很大帮助,可以有效的减少索引数据的内存使用量。默认值为true。

processManagement:

    fork: true #是否以fork模式运行mongod/mongos进程,默认情况下,mongod/mongos不作为守护进程运行,默认为true。
    pidFilePath: /tmp/mongod.pid

security:

    keyFile: /data/mongodb/keyfile 
    authorization: "enabled"

net:

   bindIp: 0.0.0.0 #mongod/monogs进程绑定的IP,application通过此IP、port建立链接。可以绑定在任意网卡接口上,如果你的mongos/mongod只需要内网访问,可以绑定在内网IP(例如:192.168.1.100),如果需要外网访问,那么则绑定外网IP,如果此值为“0.0.0.0”,则绑定到所有接口即内网、外网IP均可以访问。(不建议)可以绑定都多个ip上,ip地址之间用“,”分割。
   port: 27017
   maxIncomingConnections: 65536 #mongod/mongos进程允许的最大连接数,如果此值超过操作系统配置的连接数阀值,将不会生效(ulimit);默认值为65536。通常客户端将会使用连接池机制,可以有效的控制每个客户端的链接个数。
   wireObjectCheck: true #当客户端写入数据时,mongos/mongod是否检测数据的有效性(BSON),如果数据格式不良,此insert、update操作将会被拒绝;默认值为true。对于高程度的子文档嵌套的对象,net.wireobjectcheck对性能有较小的影响。
   ipv6: false #是否支持mongos/mongod多个实例之间使用IPV6网络,默认值为false。此值需要在整个cluster中保持一致。

   unixDomainSocket:  #指定sock文件的存放路径,默认是放在/tmp
       enabled: true
       pathPrefix: /data/mongo/data

replication:

  oplogSizeMB: 10240 #replication操作日志的最大尺寸,单位:MB。mongod进程根据磁盘最大可用空间来创建oplog,比如64位系统,oplog为磁盘可用空间的5%,一旦mongod创建了oplog文件,此后再次修改oplogSizeMB将不会生效。此值不要设置的太小, 应该足以保存24小时的操作日志,以保证secondary有充足的维护时间;如果太小,secondary将不能通过oplog来同步数据,只能全量同步。此值仅对mongod有效。
  replSetName: "repl_test" #“复制集”的名称,复制集中的所有mongd实例都必须有相同的名字,sharding分布式下,不同的sharding应该使用不同的replSetName。仅对mongod有效。
  secondaryIndexPrefetch: "all" #默认值all,复制集中的secondary,从oplog中运用变更操作之前,将会先把索引加载到内存中,默认情况下,secondaries首先将操作相关的索引加载到内存,然后再根据oplog应用操作。可选值:
  1)none:secondaries不将索引数据加载到内存。
  2)all:sencondaries将此操作有关的索引数据加载到内存。
  3)_id_only:只加载_id索引。

operationProfiling:

  slowOpThresholdMs: 100 #数据库profiler判定一个操作是“慢查询”的时间阀值,单位毫秒;mongod将会把慢查询记录到日志中,即使profiler被关闭。当profiler开启时,慢查询记录还会被写入“system.profile”这个系统级的collection中。请参看mongod profiler相关文档。默认值为100,此值只对mongod进程有效。
  mode: slowOp #数据库profiler级别,操作的性能信息将会被写入日志文件中,可选值:
 1)off:关闭profiling。
 2)slowOp:on,只包含慢操作日志。
 3)all:on,记录所有操作。

数据库profiling会影响性能,建议只在性能调试阶段开启。此参数仅对mongod有效。
sharding:

clusterRole: #在sharding集群中,此mongod实例的角色,可选值:

1)configsvr:此实例为config server,此实例默认侦听27019端口
2)shardsvr:此实例为sharding(分片),侦听27018端口
此配置仅对mongod有效。通常config server和sharding server需要使用各自的配置文件。

archiveMovedChunks: #当chunks因为“负载平衡”而迁移到其他节点时,mongod是否将这些chunks归档,并保存在dbPath下“moveChunk”目录下,mongod不会删除moveChunk下的文件。默认为true。

auditLog:

destination #开启审计,需指定审计记录的输出方式,有以下值可选syslog、console、file。
format #目标文件的输出文件格式,有如下值:
    JSON: 输出的审计事件的JSON格式文件,–auditpath指定。
    BSON: 输出的审计事件的JSON格式文件,–auditpath指定。
path #如果审计时间输入为文件,那么这里就需要指定文件的完整路径及文件名。
filter #过滤器,可以限制审计系统记录的操作类型,该选项需要一个表单的查询文档的字符串表示形式:{ <field1>: <expression1>, … }
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
28天前
|
运维 监控 NoSQL
【MongoDB 复制集秘籍】Secondary 同步慢怎么办?深度解析与实战指南,让你的数据库飞速同步!
【8月更文挑战第24天】本文通过一个具体案例探讨了MongoDB复制集中Secondary成员同步缓慢的问题。现象表现为数据延迟增加,影响业务运行。经分析,可能的原因包括硬件资源不足、网络状况不佳、复制日志错误等。解决策略涵盖优化硬件(如增加内存、升级CPU)、调整网络配置以减少延迟以及优化MongoDB配置(例如调整`oplogSize`、启用压缩)。通过这些方法可有效提升同步效率,保证系统的稳定性和性能。
39 4
|
1月前
|
安全 Unix Linux
samba 配置文件解析
【8月更文挑战第8天】Samba是一款开源软件套件,支持不同操作系统间的文件与打印机共享。它通过实现SMB/CIFS协议,确保了Linux/UNIX系统与Windows系统的互操作性。Samba具备文件共享、打印机管理、安全性设置及域控制器等功能,适用于搭建文件服务器、打印服务器及身份验证服务,并促进跨平台的数据访问与协作。其配置灵活,可根据需要调整共享目录的权限、可见性及用户认证方式。
29 3
|
20天前
|
C# 开发者 Windows
全面指南:WPF无障碍设计从入门到精通——让每一个用户都能无障碍地享受你的应用,从自动化属性到焦点导航的最佳实践
【8月更文挑战第31天】为了确保Windows Presentation Foundation (WPF) 应用程序对所有用户都具备无障碍性,开发者需关注无障碍设计原则。这不仅是法律要求,更是社会责任,旨在让技术更人性化,惠及包括视障、听障及行动受限等用户群体。
44 0
|
23天前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
31 0
|
28天前
|
网络协议 Ubuntu Linux
在Linux中,设置DNS需要修改哪个配置文件?
在Linux中,设置DNS需要修改哪个配置文件?
|
2月前
|
消息中间件 存储 负载均衡
zookeeper 特点、使用场景及安装,配置文件解析
zookeeper 特点、使用场景及安装,配置文件解析
39 2
|
1月前
|
XML Java 数据库连接
深入解析 Spring 配置文件:从基础到高级
【8月更文挑战第3天】Spring配置文件是构建与管理Spring应用的核心,它涵盖了从基础到高级的各种配置技巧。基础配置采用`.xml`格式定义Bean及其依赖;中级配置包括设置Bean作用域及引入属性文件;高级配置则涉及AOP、事务管理和与其他框架的整合。熟练掌握这些配置能帮助开发者构建出更为灵活且易维护的应用系统。
|
3月前
|
存储 JSON NoSQL
深入解析MongoDB的存储原理
深入解析MongoDB的存储原理
深入解析MongoDB的存储原理
|
2月前
|
Java Spring
解析Spring Boot中的配置文件与外部化配置
解析Spring Boot中的配置文件与外部化配置
|
3月前
|
SQL NoSQL 关系型数据库
ClickHouse(24)ClickHouse集成mongodb表引擎详细解析
**MongoDB引擎在ClickHouse中提供只读访问远程数据,用于`SELECT`查询。不支持写入。创建MongoDB表引擎的语法:`CREATE TABLE ... ENGINE = MongoDB(host, db, coll, user, pass)`。例如:**查看[ClickHouse中文文档](https://zhangfeidezhu.com/?p=468)获取更多教程,包括系列文章覆盖的各种表引擎解析。
100 0

推荐镜像

更多