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 |
|
三 使用配置檔案
通過mongod和mongos命令去執行配置檔案,這裡要使用他們的一個選項--config(這裡是兩個橫線,具體檢視 > mongod --help)或者-f(--config的簡寫)
例如:
1 2 3 |
|
或
1 2 3 |
|
四 配置檔案的核心選項
1. systemLog 選項
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
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 |
|
processMangement.fork
型別:Boolean
預設值:False
作用:在前臺啟動Mongodb程序,如果Session視窗關閉,Mongodb程序也隨之停止。不過Mongodb同時還提供了一種後臺Daemon方式啟動,只需要加上一個"--fork"引數即可,值得注意的是,用到了"--fork"引數就必須啟用"--logpath"引數。如下所示:
1 2 3 4 5 |
|
daemon方式啟動的fork引數也可以配置配置檔案中,如下所示:
1 2 3 4 5 |
|
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
型別: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 |
|
....檢視mongodb手冊 #security選項
setParameter 選項
設定mongodb引數,檢視引數列表
採用YAML語言格式
1 2 3 |
|
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
預設值:/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
預設值: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
型別: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
型別:float
預設值:實體記憶體的50%-1GB
作用:設定緩衝區大小;
opeartionProfiling 選項
1 2 3 |
|
opeartionProfiling.slowOpThresholdMs
型別:integer
預設值:100
作用:設定區分慢查詢的一個閾值,比如100,當查詢速度大於100ms,記錄到日誌中
operationProfiling.mode
型別:string
預設值:off
replication 選項
1 2 3 4 5 |
|
replication.oplogSizeMB
型別:integer
作用:設定複製日誌檔案的大小;
sharding 選項
1 2 3 |
|
sharding.clusterRole
型別:string
作用:設定分片叢集中的角色;
值 | 描述 |
configsvr | 作為配置伺服器,預設埠27019 |
shardsvr | 作為一個分片,預設埠27018 |
auditLog 選項 (MongoDB Enterprise可用)
1 2 3 4 5 |
|
auditLog.destination
型別:string
作用:審計日誌位置;
值 | 描述 |
syslog | JSON檔案格式輸出在系統日誌中,window系統中不可用 |
console | JSON格式輸出 |
file | 輸出到檔案 |
auditLog.format
型別:string
作用:設定設計日誌輸出格式;可用值:JSON/BSON
auditLog.path
型別:string
作用:設計日誌輸出檔案路徑
型別:string
作用:審計日誌過濾器
格式:{ <field1>: <expression1>, ... }