【MongoDB 配置篇】MongoDB 配置文件詳解


目錄

1 數據庫環境

2 配置文件

2.1 配置文件格式

2.2 配置文件的使用

3 配置文件核心選項

3.1 systemLog選項

3.2 processManagement選項

3.3 cloud選項

3.4 net選項

3.5 security選項

3.6 setParameter選項

3.7 storage選項

3.8 operationProfiling選項

3.9 replication選項

3.10 sharding選項

3.11 auditLog選項

3.12 snmp選項


MongoDB實例的運行離不開相應的參數配置,比如對數據庫存放路徑dbpath的配置,對於參數的配置,可以在命令行以選項的形式進行配置,也可以將配置信息列入配置文件進行配置。但是,使用配置文件將會使對mongod和mongos的管理變得更加容易,本篇將會對配置文件進行詳細的講解。

1 數據庫環境

[mongod@strong ~]$ mongod --version
db version v4.2.0
git version: a4b751dcf51dd249c5865812b390cfd1c0129c30
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
distmod: rhel62
distarch: x86_64
target_arch: x86_64

2 配置文件

2.1 配置文件格式

MongoDB配置文件使用YAML的格式。

2.2 配置文件的使用

對於配置文件的使用,在mongod或mongos中指定--config或-f選項。

1)指定--config選項

[mongod@strong ~]$ mongod --config /etc/mongo.cnf

2)指定-f選項

[mongod@strong ~]$ mongod -f /etc/mongo.cnf

3 配置文件核心選項

3.1 systemLog選項

1)選項

systemLog:
  verbosity: <int>
  quiet: <boolean>
  traceAllExceptions: <boolean>
  syslogFacility: <string>
  path: <string>
  logAppend: <boolean>
  logRotate: <string>
  destination: <string>
  timeStampFormat: <string>
  component:
    accessControl:
      verbosity: <int>
    command:
      verbosity: <int>

    # COMMENT additional component verbosity settings omitted for brevity

2)說明

  • verbosity:默認為0,值范圍為0-5,用於輸出日志信息的級別,值越大,輸出的信息越多;
  • quiet:mongod或mongos運行的模式,在該模式下限制輸出的信息,不推薦使用該模式;
  • traceAllExceptions:打印詳細信息以便進行調試;
  • path:日志文件的路徑,mongod或mongos會將所有診斷日志信息發送到該位置,而不是標准輸出或主機的syslog上;
  • logAppend:默認為false,若設為true,當mongod或mongos實例啟動時,會將新的條目追加到已存在的日志文件,否則,mongod會備份已存在的日志,並創建新的日志文件;
  • destination:指定日志輸出的目的地,具體值為file或syslog,若設置為file,需指定path,該選項未指定,則將所有日志輸出到標准輸出;
  • timeStampFormat:日志信息中的時間格式,默認為iso8601-local,該選項有三個值,分別為ctime、iso8601-utc和iso8601-local;

3.2 processManagement選項

1)選項

processManagement:
  fork: <boolean>
  pidFilePath: <string>
  timeZoneInfo: <string>

2)說明

  • fork:默認值為false,設置為true,會激活守護進程在后台運行mongod或mongos進程;
  • pidFilePath:指定mongod或mongos寫PID文件的路徑,不指定該值,則不會創建PID文件;

3.3 cloud選項

1)選項

cloud:
  monitoring:
    free:
      state: <string>
      tags: <string>

2)說明

  • state:激活或禁用免費的MongoDB Cloud監控,該選項有以下三個值,分別為runtime、on和off,默認為runtime;在運行時可以通過db.enableFreeMonitoring()和db.disableFreeMonitoring()
  • tags:描述環境上下文的可選標記;

3.4 net選項

1)選項

net:
  port: <int>
  bindIp: <string>
  bindIpAll: <boolean>
  maxIncomingConnections: <int>
  wireObjectCheck: <boolean>
  ipv6: <boolean>
  unixDomainSocket:
    enabled: <boolean>
    pathPrefix: <string>
    filePermissions: <int>
  tls:
    certificateSelector: <string>
    clusterCertificateSelector: <string>
    mode: <string>
    certificateKeyFile: <string>
    certificateKeyFilePassword: <string>
    clusterFile: <string>
    clusterPassword: <string>
    CAFile: <string>
    clusterCAFile: <string>
    CRLFile: <string>
    allowConnectionsWithoutCertificates: <boolean>
    allowInvalidCertificates: <boolean>
    allowInvalidHostnames: <boolean>
    disabledProtocols: <string>
    FIPSMode: <boolean>
  compression:
    compressors: <string>
  serviceExecutor: <string>

2)說明

  • port:MongoDB實例監聽客戶端連接的TCP端口,對於mongod或mongos實例,默認端口為27017,對於分片成員,默認端口為27018,對於配置服務器成員,默認端口為27019;
  • bindIp:默認值為localhost。主機名、IP地址或Unix套接字,mongod或mongos在其上監聽客戶端的連接,綁定多個地址,以逗號分隔,若綁定所有IPv4地址,可輸入0.0.0.0;
  • bindIpAll:默認值為false,設置為true,mongod或mongos實例將會綁定所有IPv4地址;
  • maxIncomingConnections:默認值為65536,mongod或mongos接收的最大連接數;

3.5 security選項

1)選項

security:
  keyFile: <string>
  clusterAuthMode: <string>
  authorization: <string>
  transitionToAuth: <boolean>
  javascriptEnabled: <boolean>
  redactClientLogData: <boolean>
  clusterIpSourceWhitelist:
  - <string>
  sasl:
    hostName: <string>
    serviceName: <string>
    saslauthdSocketPath: <string>
  enableEncryption: <boolean>
  encryptionCipherMode: <string>
  encryptionKeyFile: <string>
  kmip:
    keyIdentifier: <string>
    rotateMasterKey: <boolean>
    serverName: <string>
    port: <string>
    clientCertificateFile: <string>
    clientCertificatePassword: <string>
    clientCertificateSelector: <string>
    serverCAFile: <string>
  ldap:
    servers: <string>
    bind:
      method: <string>
      saslMechanisms: <string>
      queryUser: <string>
      queryPassword: <string>
      useOSDefaults: <boolean>
    transportSecurity: <string>
    timeoutMS: <int>
    userToDNMapping: <string>
    authz:
      queryTemplate: <string>

2)說明

  • keyFile:存儲共享密鑰文件的路徑,MongoDB實例使用它在分片集群或副本集中彼此進行身份驗證;
  • clusterAuthMode:默認值為keyFile;

3.6 setParameter選項

1)選項

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

2)說明

設置MongoDB服務器的參數;

3.7 storage選項

1)選項

storage:
  dbPath: <string>
  indexBuildRetry: <boolean>
  journal:
    enabled: <boolean>
    commitIntervalMs: <num>
  directoryPerDB: <boolean>
  syncPeriodSecs: <int>
  engine: <string>
  wiredTiger:
    engineConfig:
      cacheSizeGB: <number>
      journalCompressor: <string>
      directoryForIndexes: <boolean>
    collectionConfig:
      blockCompressor: <string>
    indexConfig:
      prefixCompression: <boolean>
  inMemory:
    engineConfig:
      inMemorySizeGB: <number>

2)說明

  • dbPath:默認值為/data/db,mongod實例存儲數據的目錄;
  • indexBuildRetry:默認值為true,指定mongod在下次啟動時是否重建未完成的索引;
  • enabled:64位系統默認為true,32位系統默認為false,是否激活日志以確定數據文件仍然有效以及可進行恢復;
  • commitIntervalMs:默認值為100毫秒,取值范圍為1-500毫秒;
  • directoryPerDB:默認值為false,設置為true,每個數據庫使用單獨的目錄存儲數據,目錄位於dbPath目錄之下;
  • syncPeriodSecs:默認值為60,MongoDB通過fsync操作將數據刷新到數據文件之前經過的時間;
  • engine:默認值為wireTiger,4.2版本之后,MMAPv1存儲引擎將會被廢棄;
  • cacheSizeGB:定義wireTiger將為所有數據使用的內部緩存的大小,索引構建消耗的內存與wireTiger緩存內存時分開的,從MongoDB 3.4開始,該值的范圍可以從0.25GB到10000GB,可以是浮點數,默認值是50%*( RAM - 1 GB )或256MB;
  • journalCompressor:默認值為snappy,指定用於壓縮wireTiger日志數據的壓縮類型,壓縮類型有以下幾種,分別為none、snappy、zlib和sztd;
  • directoryForIndexes:默認為false,設置為true,mongod將索引和集合存儲在data(dbPath)目錄下的單獨子目錄中,即索引存放在名字為index的子目錄中,集合數據存放在名字為collection的子目錄中;
  • blockCompressor:默認為snappy,指定集合數據的默認壓縮類型,有以下幾種類型,分別為none、snappy、zlib和sztd;
  • prefixCompression:默認為true,啟用或禁用索引數據的前綴壓縮;

3.8 operationProfiling選項

1)選項

operationProfiling:
  mode: <string>
  slowOpThresholdMs: <int>
  slowOpSampleRate: <double>

2)說明

  • mode:默認為off,指定應該分析哪些操作,分析器級別有如下幾種,分別為off、slowOp和all;
  • slowOpThresholdMs:默認值為100;
  • slowOpSampleRate:默認值為1.0;

3.9 replication選項

1)選項

replication:
  oplogSizeMB: <int>
  replSetName: <string>
  secondaryIndexPrefetch: <string>
  enableMajorityReadConcern: <boolean>

2)說明

  • oplogSizeMB:復制操作日志的最大大小,以M為單位,默認情況下,mongod進程基於最大可用空間創建oplog,對於64位系統,oplog通常占可用磁盤空間的5%;
  • replSetName:副本集的名稱;
  • enableMajorityReadConcern:默認為true,在PSA架構中,可以禁用該選項以緩解存儲緩存的壓力;

3.10 sharding選項

1)選項

sharding:
  clusterRole: <string>
  archiveMovedChunks: <boolean>

2)說明

  • clusterRole:設置在分片集群中mongod實例的角色,有以下值可供選擇,分別為configsvr和shardsvr;

3.11 auditLog選項

1)選項

auditLog:
  destination: <string>
  format: <string>
  path: <string>
  filter: <string>

2)說明

企業版選項,用於審計;

3.12 snmp選項

1)選項

snmp:
  disabled: <boolean>
  subagent: <boolean>
  master: <boolean>

2)說明

  • disabled:默認值為false,禁用SNMP對mongod的訪問;

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM