1. 程式人生 > >mongodb 配置檔案(增加win10的使用修改)

mongodb 配置檔案(增加win10的使用修改)

文章在:win10+Mongodb4.0上使用,並做了部分使用修改,修改都使用藍色標識

下面是轉載檔案的正文部分:

本文件是在mongodb為3.4下編寫的,僅作為參考,詳細內容請參考:https://docs.mongodb.com/manual/reference/configuration-options/#configuration-file

一.說明

     配置mongodb有兩種方式,一種是通過mongod和mongos兩個命令;另外一種方式就是配置檔案的方式。因為更容易去管理,所以後者更受大家的青睞。

二. 配置檔案格式

    mongodb 配置檔案採用的YAML格式;

    例如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

systemLog:

destination: file

path: "/var/log/mongodb/mongod.log"

logAppend: true

storage:

journal:

enabled: true

processManagement:

fork: true

net:

bindIp: 127.0.0.1

port: 27017

setParameter:

enableLocalhostAuthBypass: false

三 使用配置檔案

           通過mongod和mongos命令去執行配置檔案,這裡要使用他們的一個選項--config(這裡是兩個橫線,具體檢視 > mongod --help)或者-f(--config的簡寫)

          例如:

1

2

3

mongod --config  D:/mongodb/mongod.conf

mongos --config  D:/mongodb/mongos.conf

  或

1

2

3

mongod -f  D:/mongodb/mongod.conf

mongos -f  D:/mongodb/mongos.conf

四 配置檔案的核心選項

 1. systemLog 選項

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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>

 systemLog.traceAllExceptions

               型別:boolean

               作用: 為除錯列印詳細資訊,用於支援相關的故障排除。

     systemLog.syslogFacility

               型別:string

               預設值:user

               作用:將mongodb使用日誌記錄到系統日誌中,如果要使用這個選項,必須開啟--sysylog選項

      systemLog.path

               型別:string

               作用:指定日誌檔案的目錄

        syetemLog.logAppend

               型別:boolean

                預設值:False

               作用:當mongod或mongos重啟時,如果為true,將日誌追加到原來日誌檔案內容末尾;如果為false,將建立一個新的日誌檔案

         systemLog.destination

               型別:string

               作用:指定日誌檔案的路徑,如果設定了這個值,必須指定systemLog.path.如果沒有設定,日誌會標準的輸出到後臺

         systemLog.timeStampFormat

                型別:string

                預設值:iso8601-local

               作用:為日誌新增時間戳。

描述
ctime  顯示時間戳格式為:Wed Dec 31 18:17:54.811.
iso8601-utc 安裝iso-8601-utc格式顯示:1970-01-01T00:00:00.000Z
iso8601-local 按照iso8601-local格式顯示:1969-12-31T19:00:00.000-0500

  processMangement 選項    

1

2

3

processManagement:

fork: <boolean>

pidFilePath: <string>

  processMangement.fork

             型別:Boolean

             預設值:False

            作用:在前臺啟動Mongodb程序,如果Session視窗關閉,Mongodb程序也隨之停止。不過Mongodb同時還提供了一種後臺Daemon方式啟動,只需要加上一個"--fork"引數即可,值得注意的是,用到了"--fork"引數就必須啟用"--logpath"引數。如下所示:

1

2

3

4

5

[[email protected] mongodb]# ./bin/mongod --dbpath=data/db --fork 

--fork has to be used with --logpath 

[[email protected] mongodb]# ./bin/mongod --dbpath=data/db --fork --logpath=log/mongodb.log  

all output going to: /opt/mongodb/log/mongodb.log 

forked process: 3300 

  daemon方式啟動的fork引數也可以配置配置檔案中,如下所示:

1

2

3

4

5

port=27017 

dbpath=data/db 

logpath=log/mongodb.log 

logappend=true 

fork=true 

 net 選項 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

net:

port: <int>

bindIp: <string>

maxIncomingConnections: <int>

wireObjectCheck: <boolean>

ipv6: <boolean>

unixDomainSocket:

enabled: <boolean>

pathPrefix: <string>

filePermissions: <int>

http:

enabled: <boolean>

JSONPEnabled: <boolean>

RESTInterfaceEnabled: <boolean>

ssl:

sslOnNormalPorts: <boolean>  # deprecated since 2.6

mode: <string>

PEMKeyFile: <string>

PEMKeyPassword: <string>

clusterFile: <string>

clusterPassword: <string>

CAFile: <string>

CRLFile: <string>

allowConnectionsWithoutCertificates: <boolean>

allowInvalidCertificates: <boolean>

allowInvalidHostnames: <boolean>

disabledProtocols: <string>

FIPSMode: <boolean>

compression:

compressors: <string>

  net.port

                型別:integer

               預設值:27017

                作用:設定mongodb的監聽TCP埠

       net.bindIp

                型別:string

                作用:設定mongodb伺服器監聽ip地址,預設是127.0.0.1;如果監聽多個ip地址,使用逗號隔開

        net.maxIncomingConnections

                型別:integer 

               預設值:65536

               作用:最大併發連結數

       net.ipv6

              型別:boolean

              預設值:false

             作用:開啟或關閉支援ipv6地址;

  security 選項     

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

security:

keyFile: <string>

clusterAuthMode: <string>

authorization: <string>

transitionToAuth: <boolean>

javascriptEnabled:  <boolean>

redactClientLogData: <boolean>

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>

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>

  ....檢視mongodb手冊 #security選項

setParameter 選項

     設定mongodb引數,檢視引數列表

     採用YAML語言格式

1

2

3

setParameter:

<parameter1>: <value1>

<parameter2>: <value2>

  storage 選項

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

storage:

dbPath: <string>

indexBuildRetry: <boolean>

repairPath: <string>

journal:

enabled: <boolean>

commitIntervalMs: <num>

directoryPerDB: <boolean>

syncPeriodSecs: <int>

engine: <string>

mmapv1:

preallocDataFiles: <boolean>

nsSize: <int>

quota:

enforced: <boolean>

maxFilesPerDB: <int>

smallFiles: <boolean>

journal:

debugFlags: <int>

commitIntervalMs: <num>

wiredTiger:

engineConfig:

cacheSizeGB: <number>

journalCompressor: <string>

directoryForIndexes: <boolean>

collectionConfig:

blockCompressor: <string>

indexConfig:

prefixCompression: <boolean>

inMemory:

engineConfig:

inMemorySizeGB: <number>

  storage.dbPath

                型別:string

                預設值:/data/db(linux和macOS系統) ,\data\db(window系統)

               作用:設定資料儲存檔案目錄

     storage.indexBuildRetry

               型別:boolean

               預設值:true

               作用:開啟或關閉是否在mongod下次啟動重建不完整的索引。

               注:在in-memory儲存引擎下不可用

storage.repairPath

               型別:string

               預設值:在dbpath下的A _tmp_repairDatabase_<num> 檔案目錄

               作用:為進行恢復操作指定目錄

                注意:僅僅在MMAPv1儲存引擎下可用

  storage.journal.enabled

              型別:boolean

               預設值:true(64-bit系統);false(32-bit系統)

               作用:開啟和關閉journal,為了保證資料檔案的有效性和可恢復性;在設定了dbpath之後有效

                注:在in-memory儲存引擎下不可用

   storage.directoryPerDB

       型別:boolean

        預設值:false

         作用:當為true,mongodb為每個資料庫建立一個單獨的路徑,這個路徑是在dbpath下建立的;每次建立需要重啟伺服器

           注:在in-memory儲存引擎下不可用

   storage.engine

           預設值:wiredTiger

           作用:這是資料儲存引擎

   storage.mmapv1 選項

1

2

3

4

5

6

7

8

9

10

11

storage:

mmapv1:

preallocDataFiles: <boolean>

nsSize: <int>

quota:

enforced: <boolean>

maxFilesPerDB: <int>

smallFiles: <boolean>

journal:

debugFlags: <int>

commitIntervalMs: <num>

  storage.mmapv1.preallocDataFiles

                 型別:boolean

                 預設值:true

                 作用:開啟或關閉資料檔案的預分配;

   storage.mmapv1.quota.enforced

                 型別:boolean

                 預設值:false

                  作用:開啟或關閉每個資料庫中的資料檔案個數的限額;預設是每個資料庫最多有8個數據檔案,通過調整storage.mmapv1.quota.maxFilesPerDB

        storage.mmapv1.quota.maxFilesPerDB

                  型別:integer

                      預設值:8

                      作用:設定每個資料庫中資料檔案的限制個數;

     storage.wiredTiger 選項

1

2

3

4

5

6

7

8

9

10

storage:

wiredTiger:

engineConfig:

cacheSizeGB: <number>

journalCompressor: <string>

directoryForIndexes: <boolean>

collectionConfig:

blockCompressor: <string>

indexConfig:

prefixCompression: <boolean>

  storage.wiredTiger.engineConfig.cacheSizeGB

                  型別:float

                  作用:設定快取大小,從3.4版本開始,記憶體的50%-1GB 和256MB的最大值

        storage.wriedTiger.engineConfig.journalCompressor

                  預設值:snappy

                  作用:設定journal壓縮方式;可選項:none/snappy/zlib

  storage.inmemory 選項

1

2

3

4

storage:

inMemory:

engineConfig:

inMemorySizeGB: <number>

  storage.inmemory.engineConfig.inMemorySizeGB

                     型別:float

                     預設值:實體記憶體的50%-1GB

                    作用:設定緩衝區大小;

    opeartionProfiling 選項       

1

2

3

operationProfiling:

slowOpThresholdMs: <int>

mode: <string>

  opeartionProfiling.slowOpThresholdMs

                型別:integer

                預設值:100

                 作用:設定區分慢查詢的一個閾值,比如100,當查詢速度大於100ms,記錄到日誌中

        operationProfiling.mode

                 型別:string

                 預設值:off

      replication 選項       

1

2

3

4

5

replication:

oplogSizeMB: <int>

replSetName: <string>

secondaryIndexPrefetch: <string>

enableMajorityReadConcern: <boolean>

  replication.oplogSizeMB

               型別:integer

                作用:設定複製日誌檔案的大小;

 sharding 選項   

1

2

3

sharding:

clusterRole: <string>

archiveMovedChunks: <boolean>

   sharding.clusterRole

              型別:string

               作用:設定分片叢集中的角色;

值   描述
configsvr 作為配置伺服器,預設埠27019
shardsvr 作為一個分片,預設埠27018

 auditLog 選項 (MongoDB Enterprise可用)

1

2

3

4

5

auditLog:

destination: <string>

format: <string>

path: <string>

filter: <string>

  auditLog.destination 

                 型別:string

                 作用:審計日誌位置;

描述
syslog JSON檔案格式輸出在系統日誌中,window系統中不可用
console JSON格式輸出
file 輸出到檔案

    auditLog.format

              型別:string

              作用:設定設計日誌輸出格式;可用值:JSON/BSON

   auditLog.path

             型別:string

                作用:設計日誌輸出檔案路徑

             型別:string

              作用:審計日誌過濾器

              格式:{ <field1>: <expression1>, ... }