2023年7月26日发(作者:)
MongoDB认识与⽣产环境配置MongoDB作为NoSql数据库中最关系型的,是解决传统关系型数据库在业务不断复杂,数据量逐渐变⼤的⼤数据解决⽅案之⼀。本⽂主要以官⽹为参考主题,介绍在搭建⽣产环境时,可能有⽤的配置,接下来的⼀段时间可能会频繁更改,⼀遍阅读官⽹,⼀遍记录。写在前⾯:Mongod(分⽚存储数据),Mongos(路由处理)1.配置⽂件配置之前的准备知识配置⽂件的格式以YAML的的形式为基础,在此模式下,不可使⽤Tab,只能使⽤空格。配置⽂件的作⽤是为了代替在进⼊MongoDB后使⽤命令⾏对环境配置,官⽅有这种配置与命令想对应的匹配⽂档。mongod --config /etc/ngos --config /etc/ngod -f /etc/ngos -f /etc/与Hive等相同,使⽤ -f 来直接指定config⽂件2.⽣产环境所选配置2.1 systemLogsystemLog: verbosity: quiet: traceAllExceptions: syslogFacility: path: logAppend: logRotate: destination: timeStampFormat: component: accessControl: verbosity: command: verbosity: ity:[0-5],是控制输出级别的控制项,0是默认级别,是存储信息的,1-5是Debug的级别。分别为Debug, Info,Warn,Error,:boolean,限制输出的数量,不建议再⽣产环境中设置为此模式。llExceptions,boolean,打印详细的调试信息。⽤于⽀持相关故障排除的其他⽇志记录。Facility,String,默认为user,⽤于将⽇志信息存放在系统的sysLog中,但是需要将ation属性设置为syslog,再⽣产环境中官⽹并不建议这么做,具体在下⾯说明。,⽤于指定log⽂件的输出位置。对于linux⽤户,init脚本并不希望从默认值更改。如果使⽤Linux包并更改,则必须使⽤⾃⼰的init脚本并禁⽤内置脚本。end,,默认为False。如果为true,则当mongos或mongod实例重新启动时,mongos或mongod会在现有⽇志⽂件的结尾追加新条⽬。如果没有这个选项,mongod将备份现有⽇志并创建⼀个新⽂件。ate,[rename,reopen],默认为rename。但是按照linux的思想,建议设置为reopen,可减少损失log的情况,但是需要将end设置为true。ation,[file,syslog],如果不设置此项,则会在标准输出中打印信息和Debug信息,设置为file时,也需要对进⾏设置。ampFormat,[ctime,iso8601-utc,iso8601-local],⽤于表⽰log⽇志中的时间的表⽰。ity:与ity作⽤类似。ity:与ity作⽤类似。ity,等等,都是设置存储⽇志级别的。2.2 processManagement OptionsprocessManagement: fork: pidFilePath: timeZoneInfo: :boolean,默认为false。可将mogos和mogod设为守护进程。在linux环境下如果将mongo设为守护进程,则需要使⽤⾃⼰的init脚本,并取消built-in脚本。(与相似)。ePath。指定⼀个⽂件位置,⽤于保存Mongos或Mongod进程的进程ID,Mongos或Mongod将在其中写⼊其PID。这对于结合设置跟踪mongos或mongod进程很有⽤。如果没有指定的epath选项,进程将不创建PID⽂件。2.3 cloud Optionscloud: monitoring: free: state: tags: Free monitoring provides information about your deployment, including:Operation Execution TimesMemory UsageCPU UsageOperation Counts监控提供之前24⼩时上传的数据,这中间如果进⾏了取消free-Monitor,开启监控,则也是提供上24⼩时的数据。使⽤访问控制运⾏时,⽤户必须具有以下权限才能启⽤⾃由监视并获取状态:{ resource: { cluster : true }, actions: [ "setFreeMonitoring", "checkFreeMonitoringStatus" ] }The built-in clusterMonitor⾓⾊提供了这个权限。:[runtime(default),on,off]。⼀旦启⽤,⾃由监控状态将保持启⽤状态,直到显式禁⽤。也就是说,每次启动服务器时不需要重新启⽤。 runtime:您可以在运⾏时启⽤或禁⽤免费监视。 on :在启动时启⽤免费监控;即注册以进⾏免费监控。如果在启动时启⽤,则不能在运⾏时禁⽤⾃由监视。 off :在启动时禁⽤免费监视,⽆论您以前是否注册了免费监视。如果在启动时禁⽤,则⽆法在运⾏时启⽤⾃由监视。:⽤于描述环境上下⽂的可选标记。标签可以作为启动时free-MongoDB云监控注册的⼀部分发送。2.4 net Optionsnet: port: bindIp: bindIpAll: maxIncomingConnections: wireObjectCheck: ipv6: unixDomainSocket: enabled: pathPrefix: filePermissions: ssl: sslOnNormalPorts: # deprecated since 2.6 certificateSelector: clusterCertificateSelector: mode: PEMKeyFile: PEMKeyPassword: clusterFile: clusterPassword: CAFile: clusterCAFile: CRLFile: allowConnectionsWithoutCertificates: allowInvalidCertificates: allowInvalidHostnames: disabledProtocols: FIPSMode: compression: compressors: serviceExecutor: : 默认如下: 27017⽤于mongod(如果不是shard成员或config服务器成员)或mongos实例。 27018如果mongod是shard成员。 27019如果mongod是配置服务器成员。:bind主要⽤于绑定信息来源,⽤于在多⽹卡时,获取指定⽹卡过来的信息。⽤于指定Mongo服务器的地址,并不能⽤于指定客户端的访问,客户端的访问需要设置基础⽹络以进⾏拦截。以下⼏种为绑定信息来源的⽅式。要绑定到多个地址,请输⼊逗号分隔值列表。 localhost,/tmp/。#Mongos或Mongod应在其上侦听客户端连接的主机名和/或IP地址和/或完整的Unix域套接字路径。您可以将mongos或mongod附加到任何接⼝。 localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513 #可以使⽤ipv4或者ipv6协议的ip地址,但是前提需要将 6 参数设为True。直接设置bindIp并不能将6函数设置为True。 ⼩tips:在设置此参数的时候尽可能使⽤DNS的域名进⾏设置,这样配置的话,在后期对节点进⾏更改等操作都更⽅便。 ipv4:0.0.0.0。 ipv4和ipv6: ::,0.0.0.0或者配置All来配置。 与All互斥,只能配置⼀个。All:boolean,同上,就是绑定所有地址,但是绑定ipv6,需要将6 参数设置为true。下⾯针对上述两个参数,举个例⼦,假设本地地址为:198.51.100.1,客户端想要连接主机需要指定ip地址。mongod --bind_ip localhost,My-Example-Associated-Hostname-------------------------------------------------------------mongo --host My-Example-Associated-Hostnamemongo --host omingConnections:默认为65536,⽤于Mongod与Mongos的同时刻最⼤连接数,此连接数如果⼤于操作系统的最⼤连接数,此参数失效。如果此参数设置过⼩,会导致正常的操作都会导致错误。此参数⽤于Mongos,当客户端允许创建多个连接时可以超时,⽽不是关闭的情况时,将此参数设置为稍微超过客户端或者连接池的数量,此设置会预防Mongos导致的连接进⾏⼈为的分⽚峰值。即会导致分⽚集群上的操作和内存分配混乱。jectCheck:boolean。如果为true,则mongod或mongos实例在收到客户机的所有请求时对其进⾏验证,以防⽌客户机在mongodb数据库中插⼊格式错误或⽆效的bson。6:boolean,默认为false。此设置是与和All参数配合使⽤。mainSocket Options:net: unixDomainSocket: enabled: pathPrefix: filePermissions: d:Boolean,默认为true。unixDomainSocket是⽐TCP,UDP更具效率的主机内部的信息传输协议。efix:默认为/tmp。如果该选项没有值,mongos或mongod进程将创建⼀个以/tmp作为前缀的套接字。rmissions:默认为 700,即root⽤户,可读可写可操作。其他⽤户⽆权限。 Options:net: ssl: sslOnNormalPorts: # deprecated since 2.6 mode: PEMKeyFile: PEMKeyPassword: certificateSelector: clusterCertificateSelector: clusterFile: clusterPassword: CAFile: clusterCAFile: CRLFile: allowConnectionsWithoutCertificates: allowInvalidCertificates: allowInvalidHostnames: disabledProtocols: FIPSMode: ormalPorts:过时。:启⽤或禁⽤⽤于所有⽹络连接的TLS/SSL或混合TLS/SSL。 disabled:服务器不使⽤TLS/SSL。 allowSSL:服务器之间的连接不使⽤tls/ssl。对于传⼊连接,服务器同时接受TLS/SSL和⾮TLS/⾮SSL。 preferSSL:服务器之间的连接使⽤tls/ssl。对于传⼊连接,服务器同时接受TLS/SSL和⾮TLS/⾮SSL。 requireSSL:服务器仅使⽤和接受TLS/SSL加密连接。File:.pem⽂件包含tls/ssl证书和密钥。Password:⽤于解密证书密钥⽂件(即pEKEKILE⽂件)的密码。仅当证书密钥⽂件加密时才使⽤password选项。在所有情况下,mongos或mongod都会从所有⽇志和报告输出中对密码编码。在Linux/BSD上,如果PEM⽂件中的私钥是加密的,并且没有指定password选项,MongoDB将提⽰输⼊密码。icateSelector:与File是互斥的。此属性⽤于指定证书属性,以便从操作系统的证书存储中选择匹配的证书。使⽤=格式进⾏赋值。 subject = ASCII string 或 thumbprint = hex rCertificateSelector:与rFile是互斥的。此属性⽤于指定证书属性,以便从操作系统的证书存储中选择匹配的证书。rFile:包含⽤于群集或副本集成员⾝份验证的X.509证书密钥⽂件的.pem⽂件。rPassword:对⽤--sslclusterfile指定的X.509证书密钥⽂件进⾏解密的密码。仅当证书密钥⽂件加密时才使⽤rpassword选项。在所有情况下,mongos或mongod都会从所有⽇志和报告输出中对密码编码。在Linux/BSD上,如果X.509⽂件中的私钥是加密的,并且没有指定rpassword选项,MongoDB将提⽰输⼊密码。:包含来⾃证书颁发机构的根证书链的.pem⽂件。使⽤相对或绝对路径指定.pem⽂件的⽂件名。rCAFile:包含来⾃证书颁发机构的根证书链的.pem⽂件,⽤于验证建⽴连接的客户端提供的证书。使⽤相对或绝对路径指定.pem⽂件的⽂件名。如果r cafile未指定⽤于从建⽴连接的客户端验证证书的.pem⽂件,则群集将使⽤选项中指定的.pem⽂件。rcafile允许您使⽤单独的证书颁发机构来验证TLS握⼿的客户端到服务器和服务器到客户端部分。特殊的,需要设置。e:包含证书吊销列表的.pem⽂件。使⽤相对或绝对路径指定.pem⽂件的⽂件名。与CA相对应。onnectionsWithoutCertificates:对于不存在证书的客户机,Mongos或Mongod在建⽴连接时会绕过TLS/SSL证书验证。但是,对于提供证书的客户机,mongos或mongod使⽤cafile指定的根证书链执⾏证书验证,并拒绝具有⽆效证书的客户机。如果您有⼀个混合部署,其中包括不向Mongos或Mongod提供或⽆法向其提供证书的客户端,请使⽤onnectionwithoutcertificates选项。nvalidCertificates:启⽤或禁⽤群集中其他服务器上的TLS/SSL证书的验证检查,并允许使⽤⽆效证书进⾏连接。使⽤nvalidCertificates设置时,MongoDB会记录有关使⽤⽆效证书的警告。特别的,从mongodb 4.0开始,如果指定--sslallowinvalidcertificates或nvalidcertificates:true,则使⽤X.509⾝份验证时,⽆效证书仅⾜以建⽴⼀个tls/ssl连接,但不⾜以进⾏⾝份验证。nvalidHostnames:当nvalidhostnames为true时,mongodb将禁⽤tls/ssl证书中主机名的验证,如果主机名的证书与指定的主机名不匹配,则允许mongod连接到mongoDB实例。edProtocols:阻⽌使⽤tls/ssl运⾏的MongoDB服务器接受使⽤特定协议或协议的传⼊连接。要指定多个协议,请使⽤逗号分隔的协议列表。⽐如:TLS1_0,TLS1_1. 指定⽆法识别的协议,服务器将⽆法启动。 指定的禁⽤协议将覆盖所有默认的禁⽤协议。 特别的,副本集和分⽚群集的成员必须⾄少使⽤⼀个公共协议。de:为Mongos或Mongod启⽤或禁⽤TLS/SSL库的FIPS模式。您的系统必须有⼀个FIPS兼容的库来使⽤DEL选项。应该不常⽤。ssion Option:net: compression: compressors: ssors:默认为Snappy,指定⽤于此Mongod或Mongos实例之间的通信的默认压缩程序。要禁⽤⽹络压缩,请将该值设置为disabled。 当双⽅都启⽤⽹络压缩时,消息被压缩。否则,双⽅之间的消息是未压缩的。启⽤的⽹络压缩的协议也必须相同,否则将不进⾏压缩。 当两端的压缩协议不⽌⼀个的时候,压缩所采⽤的⽅式如下:例如,如果mongo shell指定以下⽹络压缩器zlib,则snappy和mongod指定snappy、zlib,mongo shell和mongod之间的消息使⽤zlib。eExecutor:默认为synchronous。确定Mongos或Mongod⽤于执⾏客户端请求的线程和执⾏模型。 synchronous:mongos或mongod使⽤同步⽹络,并基于每个连接管理其⽹络线程池。以前版本的MongoDB托管线程是这样的。 adaptive:Mongos或Mongod使⽤新的实验性异步联⽹模式,该模式带有⼀个⾃适应线程池,该线程池根据每个请求管理线程。与数据库请求相⽐,当连接处于⾮活动状态时,此模式应该具有更⼀致的性能并使⽤更少的资源。可尝试使⽤。2.5 security Optionssecurity: keyFile: clusterAuthMode: authorization: transitionToAuth: javascriptEnabled: redactClientLogData: sasl: hostName: serviceName: saslauthdSocketPath: enableEncryption: encryptionCipherMode: encryptionKeyFile: kmip: keyIdentifier: rotateMasterKey: serverName: port: clientCertificateFile: clientCertificatePassword: clientCertificateSelector: serverCAFile: ldap: servers: bind: method: saslMechanisms: queryUser: queryPassword: useOSDefaults: transportSecurity: timeoutMS: userToDNMapping: authz: queryTemplate: e:密钥⽂件的路径,该⽂件存储MongoDB实例⽤于在分⽚集群或副本集中相互验证的共享机密。keyfile包含ization。 rAuthMode:⽤于群集⾝份验证的⾝份验证模式。如果使⽤内部X.509⾝份验证,请在此处指定。此选项可以具有以下值之⼀: keyFile:使⽤keyfile进⾏⾝份验证。只接受秘钥⽂件。 sendkeyfile:⽤于滚动升级。发送密钥⽂件进⾏⾝份验证,但可以同时接受密钥⽂件和X.509证书。 sendx509:⽤于滚动升级。发送X.509证书进⾏⾝份验证,但可以同时接受密钥⽂件和X.509证书。 X509:(推荐)。发送X.509证书进⾏⾝份验证,只接受X.509证书。从3.4版开始,如果未指定--ssl cafile或,并且未使⽤X.509⾝份验证,则在连接到启⽤了tls/ssl的服务器时,将使⽤系统范围的CA证书存储。如果使⽤X.509⾝份验证,则必须指定-ssl cafile或,除⾮使⽤-sslcertificateselector。ization:默认为disabled。启⽤或禁⽤基于⾓⾊的访问控制(RBAC),以控制每个⽤户对数据库资源和操作的访问。 enabled:⽤户只能访问他们被授予特权的数据库资源和操作。 disabled:不进⾏权限检查。tionToAuth:riptEnabled:Boolean,默认为True。启⽤或禁⽤服务器端JavaScript执⾏。禁⽤时,不能使⽤执⾏javascript代码服务器端执⾏的操作,例如$where查询运算符、mapreduce命令和uce()⽅法、group命令和()⽅法。ClientLogData:boolean。(Enterprise only)Key Management Configuration Options:(Enterprise only)security: enableEncryption: encryptionCipherMode: encryptionKeyFile: kmip: keyIdentifier: rotateMasterKey: serverName: port: clientCertificateFile: clientCertificatePassword: clientCertificateSelector: serverCAFile:
Options:security: sasl: hostName: serviceName: saslauthdSocketPath: me:⽤于配置SASL和Kerberos⾝份验证的完全限定服务器域名。SASL主机名仅覆盖SASL和Kerberos配置的主机名。eName:使⽤SASL注册的服务名称。此选项允许您基于每个实例重写Kerberos主体名称的默认Kerberos服务名称组件。如果未指定,则默认值为mongodb。特别的,确保驱动程序⽀持备⽤服务名称。thdsocketpath:saslauthd的Unix域套接字⽂件的路径。setParameter Option:setParameter:设置MongoDB参数或MongoDB服务器参数中描述的参数。setParameter: : : ⽐如:setParameter: enableLocalhostAuthBypass: falseLDAP Parameters:erCacheInvalidationInterval:Int,默认为30。Mongod或Mongos在外部⽤户缓存刷新之间等待的间隔(秒)。在mongod或mongos刷新外部⽤户缓存之后,下⼀个操作是LDAP授权⽤户mongodb从LDAP服务器重新获取授权数据。增加指定的值会增加mongod或mongos的时间,LDAP服务器可能不同步,但会减少LDAP服务器上的负载。相反,减少指定的值会减少mongod或mongos的时间,并且LDAP服务器可能不同步,同时增加LDAP服务器上的负载。(不建议修改)storage Options:storage: dbPath: indexBuildRetry: repairPath: journal: enabled: commitIntervalMs: directoryPerDB: syncPeriodSecs: engine: mmapv1: preallocDataFiles: nsSize: quota: enforced: maxFilesPerDB: smallFiles: journal: debugFlags: commitIntervalMs: wiredTiger: engineConfig: cacheSizeGB: journalCompressor: directoryForIndexes: collectionConfig: blockCompressor: indexConfig: prefixCompression: inMemory: engineConfig: inMemorySizeGB: :默认为/data/db on Linux。Mongod实例存储其数据的⽬录。设置仅适⽤于mongod。Linux包init脚本不希望从默认值更改。如果使⽤Linux包并更改,则必须使⽤⾃⼰的init脚本并禁⽤内置脚本。uildRetry:Boolean,默认为true。指定Mongod是否在下次启动时重建不完整的索引。这适⽤于Mongod在索引构建过程中关闭或停⽌后重新启动的情况。在这种情况下,mongod总是删除任何不完整的索引,然后在默认情况下尝试重新构建它们。若要阻⽌mongod重建索引,请将此选项设置为false。4.0后,不能与tname⼀起使⽤。不适⽤于使⽤内存中存储引擎的Mongod实例。仅适⽤于Path:仅适⽤于mmapv1存储引擎。mongodb在--repair操作期间将使⽤的⼯作⽬录。当--repair完成时,path⽬录为空,dbpath包含修复的⽂件。仅适⽤于d:Boolean,true(64位),false(32位).启⽤或禁⽤耐久性⽇志,以确保数据⽂件保持有效和可恢复。此选项仅在指定设置时适⽤。默认情况下,Mongod启⽤⽇志记录。d设置仅适⽤于mongod。不适⽤于使⽤内存中存储引擎的Mongod实例。从MongoDB 4.0开始,不能为使⽤wiredtiger存储引擎的副本集成员指定--nojournal选项或d:false。IntervalMs:默认为100或30。mongod进程允许⽇志操作之间的最长时间(毫秒)。值的范围为1到500毫秒。较低的值会增加轴颈的耐久性,但会牺牲磁盘性能。默认的⽇志提交间隔为100毫秒。在mmapv1上,如果⽇志位于与数据⽂件不同的块设备(例如物理卷、RAID设备或LVM卷)上,则默认⽇志提交间隔为30毫秒。此外,在mmapv1上,当j:true的写⼊操作挂起时,mongod将committenervalms减少到设置值的三分之⼀。在wiredtiger上,默认的⽇志提交间隔是100毫秒。此外,使⽤j:true写⼊将导致⽇志⽴即同步。tervalms设置仅适⽤于mongod。不适⽤于使⽤内存中存储引擎的Mongod实例。oryPerDB:boolean,默认为false。如果为true,MongoDB使⽤单独的⽬录来存储每个数据库的数据。⽬录位于⽬录下,每个⼦⽬录名对应于数据库名。具体的如果在有数据后进⾏更改,则需要⼀系列复杂的操作,可再查看官⽅⽂档。riodSecs:MongoDB通过fsync操作将数据刷新到数据⽂件之前可以经过的时间量。在⽣产环境中官⽅不建议对其进⾏修改。:默认为wiredTiger。在4.0后只有两种引擎。[wiredTiger,inMemory].如果尝试使⽤包含存储引擎⽣成的数据⽂件(不是由指定的数据⽂件)的启动mongod,mongod将拒绝启动。2.6 iger Optionsstorage: wiredTiger: engineConfig: cacheSizeGB: journalCompressor: directoryForIndexes: collectionConfig: blockCompressor: indexConfig: prefixCompression: izeGB:定义wiredtiger将⽤于所有数据的内部缓存的最⼤⼤⼩。从MongoDB 3.4开始,izegb值可以在0.25 GB到10000 GB之间,并且可以是浮点值。从MongoDB 3.4开始,默认wiredtiger内部缓存⼤⼩为以下两者中的较⼤值:50%(RAM-1 GB),或256兆字节。例如,在总共有4GB RAM的系统上,WiredTiger缓存将使⽤1.5GB的RAM(0.5*(4 GB-1 GB)=1.5GB)。相反,⼀个RAM总量为1.25GB的系统将向WiredTiger缓存分配256MB,因为这超过了总RAM减去1GB(0.5*(1.25GB-1GB)=128MB<256MB)的⼀半。不要将wiredtiger内部缓存⼤⼩增加到其默认值以上。对于wiredtiger,mongodb同时使⽤wiredtiger内部缓存和⽂件系统缓存。izegb限制wiredtiger内部缓存的⼤⼩。操作系统将使⽤⽂件系统缓存的可⽤内存,这允许压缩的MongoDB数据⽂件保留在内存中。此外,操作系统将使⽤任何空闲RAM来缓冲⽂件系统块和⽂件系统缓存。如果在⽆法访问系统中所有可⽤RAM的容器(例如lxc、cgroups、docker等)中运⾏mongod,则必须将izegb设置为⼩于容器中可⽤RAM数量的值。确切数量取决于容器中运⾏的其他进程。lCompressor:[none,snappy,zlib].⽤于压缩WiredTiger⽇志数据的压缩类型。oryForIndexes:boolean,false.当oryforindexes为true时,mongod将索引和集合存储在数据(即)⽬录下的单独⼦⽬录中。具体来说,mongod将索引存储在名为index的⼦⽬录中,将收集数据存储在名为collection的⼦⽬录中。通过使⽤符号链接,可以为索引指定不同的位置。具体来说,当mongod实例不运⾏时,将index⼦⽬录移动到⽬的地,并在数据⽬录下创建⼀个名为index的符号链接到新⽬的地。ompressor:[none,snappy,zlib].⽤于压缩收集数据的默认压缩类型。创建集合时,可以基于每个集合重写此项。ompressor会影响所有创建的集合。如果在现有MongoDB部署上更改ompressor的值,则所有新集合都将使⽤指定的压缩程序。现有集合将继续使⽤创建时指定的压缩器,或当时的默认压缩器。Compression:启⽤或禁⽤索引数据的前缀压缩。为compression指定true以启⽤索引数据的前缀压缩,或为false以禁⽤索引数据的前缀压缩。compression设置会影响所有创建的索引。如果在现有MongoDB部署上更改 compression的值,则所有新索引都将使⽤前缀压缩。现有索引不受影响。operationProfiling Options:operationProfiling: mode: slowOpThresholdMs: slowOpSampleRate: :[off,slowOp,all],默认为off。指定应分析哪些操作。在⽣产环境中启⽤此参数需要考虑的更多,需要考虑性能降低,安全性等问题。 off:探查器已关闭,不收集任何数据。这是默认的探查器级别。 slowOp:探查器为耗时超过slowms值的操作收集数据。 all:探查器收集所有操作的数据。ThresholdMs:默认为100.慢操作时间阈值(毫秒)。运⾏时间超过此阈值的操作被认为是缓慢的。当loglevel设置为0时,mongodb以slowopsamplerate确定的速率将慢速操作记录到诊断⽇志中。从MongoDB 4.0.6开始,副本集的第⼆个部分记录所有oplog条⽬消息,这些消息的应⽤时间超过慢操作阈值,⽽不管采样率如何。在较⾼的⽇志级别设置下,所有操作都会显⽰在诊断⽇志中,⽽不管它们的延迟如何,但有以下例外:⼆级记录缓慢的oplog条⽬消息。第⼆类只记录较慢的oplog条⽬;增加loglevel不会记录所有oplog条⽬。在4.0版中进⾏了更改:slowopthresholdms设置可⽤于mongod和mongos。 对于Mongod实例,该设置会同时影响诊断⽇志和探查器(如果启⽤)。 对于Mongos实例,该设置只影响诊断⽇志,⽽不影响探查器,因为在Mongos上⽆法进⾏分析。SampleRate:应分析或记录的慢速操作的部分。sampleRate接受介于0和1之间(含0和1)的值。sampleRate不影响副本集的次要成员记录缓慢的oplog条⽬。次要成员记录所有超过慢速操作阈值的oplog条⽬,⽽不管sampleRate如何。 在4.0版中进⾏了更改:可以为mongod和mongos提供slowopsamplerate设置。 对于Mongod实例,该设置会同时影响诊断⽇志和探查器(如果启⽤)。 对于Mongos实例,该设置只影响诊断⽇志,⽽不影响探查器,因为在Mongos上⽆法进⾏分析。 2.7 replication Optionsreplication: oplogSizeMB: replSetName: secondaryIndexPrefetch: enableMajorityReadConcern: izeMB:复制操作⽇志(即oplog)的最⼤⼤⼩(以兆字节为单位)。 从MongoDB 4.0开始,oplog可以超过其配置的⼤⼩限制,以避免删除⼤多数提交点。 默认情况下,mongod进程根据可⽤的最⼤空间量创建oplog。对于64位系统,oplog通常是可⽤磁盘空间的5%。⼀旦mongod第⼀次创建了oplog,更改izemb选项将不会影响oplog的⼤⼩。 要更改正在运⾏的副本集成员的oplog⼤⼩,请使⽤replsetresizepolog管理命令。replsetresizepolog使您能够动态调整oplog的⼤⼩,⽽⽆需重新启动mongod进程。 izemb设置仅适⽤于mongod。tName:mongod所属的副本集的名称。副本集中的所有主机必须具有相同的集名称。 如果应⽤程序连接到多个副本集,则每个副本集都应具有不同的名称。某些驱动程序按副本集名称对副本集连接进⾏分组。 tname设置仅适⽤于mongod。 从MongoDB 4.0开始: 设置tname不能与uildretry⼀起使⽤。 对于wiredtiger存储引擎,d:false不能与tname⼀起使⽤。MajorityReadConcern:boolean,默认为true。对于MongoDB 4.0.3+和3.6.1+,您可以禁⽤读取问题“多数”,以防⽌存储缓存压⼒通过三成员⼀级⼆级仲裁器(PSA)架构阻⽌部署。有关禁⽤读取问题“多数”的更多信息,请参阅禁⽤读取问题多数。 ⼀般⽽⾔,除⾮必要,否则应避免禁⽤“多数”读取问题。但是,如果您有⼀个具有主辅助仲裁器(PSA)体系结构的三成员副本集或具有三成员PSA碎⽚的碎⽚群集,请禁⽤以防⽌存储缓存压⼒阻⽌部署。 禁⽤“多数”读取问题将禁⽤对更改流的⽀持。 禁⽤“多数”不会影响多⽂档事务;即,即使禁⽤了“多数”读取问题,也可以为多⽂档事务指定“多数”读取问题。2.8 sharding Optionssharding: clusterRole: archiveMovedChunks: rRole:mongod实例在shared集群中的⾓⾊。 configsvr:将此实例作为配置服务器启动。默认情况下,实例从端⼝27019启动。 shardsvr:将此实例作为分⽚启动。默认情况下,实例从端⼝27018启动。设置rRole需要使⽤replication是运⾏的mongod实例。要将实例部署为副本集成员,请使⽤replsetname设置并指定副本集的名称。eMovedChunks:Boolean,默认为false。在块迁移期间,分⽚不会保存从分⽚迁移的⽂档。2.9 snmp Optionssnmp: disabled: subagent: master: ed:禁⽤对mongod的SNMP访问。该选项与nt和不兼容。设置为true以禁⽤SNMP访问。仅适⽤于mongod。nt:当nt为true时,snmp作为⼦代理运⾏。选项与snmp不兼容。禁⽤设置为true。仅适⽤于mongod。:当为true时,snmp作为master运⾏。选项与snmp不兼容。禁⽤设置为true。仅适⽤于mongod。2.10 mongos-only Optionsreplication: localPingThresholdMs: sharding: configDB: ingThresholdMs:mongos⽤于确定要从客户端传递读取操作的次要副本集成员的ping时间(以毫秒计)。默认值15对应于所有客户机驱动程序中的默认值。 当Mongos收到⼀个允许⼆级成员读取的请求时,Mongos将:查找ping时间最低的集合成员。构造⼀个副本集成员列表,该列表位于距该集最近的合适成员15毫秒的ping时间内。 如果为ingthresholdms选项指定⼀个值,则mongos将构造在此值允许的延迟内的副本成员列表。与ingThresholdms设置相⽐,从该列表中随机选择要读取的成员。,成员使⽤的ping时间是最近ping时间的移动平均值,最多每10秒计算⼀次。因此,⼀些查询可能会达到⾼于阈值的成员,直到Mongos重新计算平均值。DB:分⽚群集的配置服务器。从MongoDB3.2开始,可以将分⽚集群的配置服务器部署为副本集。副本集配置服务器必须运⾏wiredtiger存储引擎。MongoDB 3.2不赞成为配置服务器使⽤三个镜像Mongod实例。sharding: configDB: /:27019, :27019,...指定配置服务器副本集的名称,以及⾄少⼀个配置服务器副本集成员的主机名和端⼝。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690378084a340488.html
评论列表(0条)