基於mongo 3.4版本
高於3.4版本的請參考官方文檔
docs.mongodb.com/manual/refe…
javascript
mong日誌經常使用配置配置
systemLog:java
quiet: <boolean>mongodb
traceAllExceptions: <boolean>數據庫
syslogFacility: <string>緩存
path: <string>安全
logAppend: <boolean>服務器
destination: <string>app
timeStampFormat: <string>性能
systemLog.quiet
輸入:
boolean
運行
mongos
或
mongod
處於安靜模式,試圖限制輸出量。
systemLog.quietfetch
是不建議用於生產系統,由於它可使在特定的鏈接變得更加困難跟蹤問題。
systemLog.traceAllExceptions
輸入:
boolean
打印詳細信息以進行調試。用於支持相關故障排除的其餘日誌記錄。
systemLog.path
輸入:
string
日誌文件的路徑,
mongod
或者
mongos
應該發送全部診斷日誌記錄信息,而不是標準輸出或主機的
syslog
。
MongoDB
在指定的路徑上建立日誌文件。
systemLog.logAppend
輸入:
boolean
默認值:
False
當
mongo
實例重啓時,默認備份現有日誌,並建立新的日誌文件。
配置爲
true
時,將新增日誌追加到當前的日誌文件末尾
systemLog.destination
輸入:
string
值爲
file
或
syslog
。
MongoDB
輸入日誌的方式。指若是指定
file
,則還必須指定
systemLog.path
。
若是未指定
systemLog.destination
,
MongoDB
會將全部日誌輸出發送到標準輸出。
官方建議使用
file
。
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
以
ISO-8601
格式顯示本地時間的時間戳。例如,在大紀元開始的紐約:
1969-12-31T19:00:00.000-0500
mong進程經常使用配置
processManagement:
fork: <boolean>
pidFilePath: <string>
processManagement.fork
輸入:
boolean
默認值:
False
啓用在後臺運行
mongos
或
mongod
處理的守護程序模式。默認狀況下
mongos
或
mongod
不做爲守護程序運行:一般經過使用或使用處理守護進程的控制進程(例如,和)運行
mongos
或
mongod
做爲守護程序 運行。
processManagement.pidFilePath
輸入:
string
對
mongs
或
mongd
指定
pid
的文件位置
mong經常使用網路配置
net:
port: <int>
bindIp: <string>
maxIncomingConnections: <int>
ipv6: <boolean>
net.port
類型:整數
默認值:
27017
MongoDB
實例偵聽客戶端鏈接的
TCP
端口。
net.bindIp
輸入:
string
默認值:全部接口。
檢測使用
mongs
或
mongd
鏈接的應用程序的
ip
是否能夠訪問
mongo
實例。不在綁定範圍的
IP
,不可以訪問
mong
實例。
要綁定到多個
IP
地址,請輸入逗號分隔值列表。
net.maxIncomingConnections
類型:整數
默認值:
65536
要接受
mongos
或
mongod
將接受的最大同時鏈接數。若是此設置高於操做系統配置的最大鏈接跟蹤閾值,則此設置無效。
net.ipv6
輸入:
boolean
默認值:
False
啓用或禁用
IPv6
支持。
mongos
或
mongod
默認禁用
IPv6
支持。
Mong安全配置
security:
keyFile: <string>
clusterAuthMode: <string>
authorization: <string>
javascriptEnabled: <boolean>
security.keyFile
輸入:
string
密鑰文件的路徑,用於存儲
MongoDB
實例用於在分片集羣或副本集中相互進行身份驗證的共享密鑰 。
keyFile
暗示
security.authorization
。有關更多信息,請參閱內部驗證
security.clusterAuthMode
輸入:
string
默認值:
keyFile
用於羣集身份驗證的身份驗證模式。
此選項能夠具備如下值之一
keyFile
使用密鑰文件進行身份驗證。只接受密鑰文件。
sendKeyFile
用於滾動升級目的。發送密鑰文件進行身份驗證,但能夠接受密鑰文件和
x.509
證書。
sendX509
用於滾動升級目的。發送
x.509
證書進行身份驗證,但能夠接受密鑰文件和
x.509
證書。
x509
推薦的。發送
x.509
證書以進行身份
驗證,並僅接受
x.509
證書。
security.authorization
輸入:
string
默認值:
disabled
啓用或禁用基於角色的訪問控制(
RBAC
)以管理每一個用戶對數據庫資源和操做的訪問。
將此選項設置爲如下之一:
值
描述
enabled
用戶只能訪問已被授予權限的數據庫資源和操做。
disabled
用戶能夠訪問任何數據庫並執行任何操做。
該
security.authorization
設置僅適用於
mongod
。
security.javascriptEnabled
輸入:
boolean
默認值:
True
啓用或禁用服務器端
JavaScript
執行。
禁用時,不能使用執行
JavaScript
代碼的服務器端執行的操做,例如
$where
查詢運算符,
mapReduce
命令和
db.collection.mapReduce()
方法,
group
命令和
db.collection.group()
方法。
Mongo數據存儲配置
storage:
dbPath: <string>
indexBuildRetry: <boolean>
repairPath: <string>
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>
storage.dbPath
輸入:
string
默認值:
/data/db
在
Linux
和
macOS
上,
\data\db
在
Windows
上
mongod
實例存儲其數據的目錄。
該
storage.dbPath
設置僅適用於
mongod
。
storage.indexBuildRetry
輸入:
boolean
默認值:
True
指定是否
mongod
在下次啓動時重建不完整的索引。這適用於在
mongod
索引構建過程當中關閉或中止後從新啓動的狀況。在這種狀況下,
mongod
始終刪除任何不完整的索引,而後,默認狀況下,嘗試重建它們。要中止
mongod
重建索引,請將此選項設置爲
false
。
該
storage.indexBuildRetry
設置僅適用於
mongod
。
不適用於
mongod
使用內存存儲引擎的實例。
storage.repairPath
輸入:
string
默認值:
_tmp_repairDatabase_<num>
下的目錄
dbPath
。
MongoDB
在
--repair
操做期間將使用的工做目錄 。當
--repair
完成後,
storage.repairPath
目錄是空的,而且
dbPath
包含了修復的文件。
該
storage.repairPath
設置僅適用於
mongod
。
僅適用於
mongod
使用
MMAPv1
存儲引擎。
storage.journal.enabled
輸入:
boolean
默認值:
true
在
64
位系統上,
false
在
32
位系統上
啓用或禁用持久性日誌以確保數據文件保持有效和可恢復。此選項僅在您指定
storage.dbPath
設置時適用 。所述
mongod
在
64
位的構建
2.0
後版本的默認啓用日誌。
該
storage.journal.enabled
設置僅適用於
mongod
。
不適用於
mongod
使用內存存儲引擎的實例。
若是副本集的任何投票成員在沒有日記功能的狀況下運行(即運行內存存儲引擎或在禁用日記功能的狀況下運行),則必須設置
writeConcernMajorityJournalDefault
爲
false
。
storage.journal.commitIntervalMs
類型:數字
默認值:
100
或
30
mongod
進程容許在日誌操做之間的最長時間(以毫秒爲單位)。值的範圍爲
1
到
500
毫秒。較低的值會增長日誌的持久性,但會犧牲磁盤性能。默認日記賬提交間隔爲
100
毫秒。
在
MMAPv1
上,若是日誌與數據文件位於不一樣的塊設備(例如,物理卷,
RAID
設備或
LVM
卷)上,則默認日誌提交間隔爲
30
毫秒。另外,在
MMAPv1
上,當一個寫操做處於
j:true
掛起狀態時,
mongod
將減小
commitIntervalMs
到設定值的三分之一。
在
WiredTiger
上,默認日誌提交間隔爲
100
毫秒。此外,寫入
j:true
將致使日誌的當即同步。
該
storage.journal.commitIntervalMs
設置僅適用於
mongod
。
不適用於
mongod
使用內存存儲引擎的實例。
storage.engine
默認值:
wiredTiger
從
MongoDB 3.2
開始,
wiredTiger
是默認值。
mongod
數據庫的存儲引擎。可用值包括:
mmapv1
指定
MMAPv1
存儲引擎。
wiredTiger
指定
WiredTiger
存儲引擎。
inMemory
指定內存存儲引擎。
storage.wiredTiger.engineConfig.cacheSizeGB
輸入:
float
WiredTiger
將用於全部數據的內部緩存的最大大小。
值的範圍能夠從
256MB
到
10TB
,而且能夠是浮點數。此外,默認值也已更改。
從
3.4
開始,
WiredTiger
內部緩存默認使用較大的一個:
50
%(
RAM-1 GB
),或
256 MB
。
避免將
WiredTiger
內部緩存大小增長到其默認值以上。
使用
WiredTiger
,
MongoDB
同時使用
WiredTiger
內部緩存和文件系統緩存。
經過文件系統緩存,
MongoDB
自動使用
WiredTiger
緩存或其餘進程未使用的全部可用內存。
注意
該
storage.wiredTiger.engineConfig.cacheSizeGB
限制
WiredTiger
內部高速緩存的大小。操做系統將使用可用的空閒內存用於文件系統緩存,這容許壓縮的
MongoDB
數據文件保留在內存中。此外,操做系統將使用任何空閒
RAM
來緩衝文件系統塊和文件系統緩存。
爲了容納額外的
RAM
使用者,您可能必須減小
WiredTiger
內部緩存大小。
默認的
WiredTiger
內部緩存大小值取決於假定
mongod
每臺計算機有一個實例。若是單個計算機包含多個
MongoDB
實例,則應減小該設置以適應其餘
mongod
實例。
storage.wiredTiger.engineConfig.journalCompressor
默認值:
snappy
用於壓縮
WiredTiger
日誌數據的壓縮類型。
可用的壓縮機有:
none
、
snappy
、
zlib
storage.wiredTiger.engineConfig.directoryForIndexes
輸入:
boolean
默認值:
false
當
storage.wiredTiger.engineConfig.directoryForIndexes
是
true
,
mongod
存儲在數據(即下單獨子目錄索引和集合
storage.dbPath
)目錄。具體而言,
mongod
將索引存儲在已命名的子目錄中
index
,並將集合數據存儲在名爲的子目錄中
collection
。
storage.wiredTiger.collectionConfig.blockCompressor
默認值:
snappy
用於壓縮集合數據的默認壓縮類型。您能夠在建立集合時基於每一個集合覆蓋此設置。
可用的壓縮格式有:
none
、
snappy
、
zlib
storage.wiredTiger.collectionConfig.blockCompressor
影響建立的全部集合。若是更改
storage.wiredTiger.collectionConfig.blockCompressor
現有
MongoDB
部署的值,則全部新集合都將使用指定的壓縮器。現有集合將繼續使用建立時指定的壓縮器,或當時的默認壓縮器。
storage.wiredTiger.indexConfig.prefixCompression
默認值:
true
啓用或禁用索引數據的前綴壓縮。
指定
true
爲索引數據
storage.wiredTiger.indexConfig.prefixCompression
啓用前綴壓縮,或
false
禁用索引數據的前綴壓縮。
該
storage.wiredTiger.indexConfig.prefixCompression
設置會影響全部建立的索引。若是更改
storage.wiredTiger.indexConfig.prefixCompression
現有
MongoDB
部署的值,則全部新索引都將使用前綴壓縮。現有索引不受影響。
storage.inMemory.engineConfig.inMemorySizeGB
輸入:
float
默認值:物理
RAM
的
50
%減去
1 GB
值的範圍能夠從
256MB
到
10TB
,而且能夠是浮點數。
爲內存存儲引擎數據分配的最大內存量,包括索引,
oplog
(若是它
mongod
是副本集,副本集或分片集羣元數據的一部分)等。
默認狀況下,內存存儲引擎使用
50
%的物理
RAM
減去
1 GB
。
僅適用於
MongoDB
企業版
mong慢查詢配置
operationProfiling:
slowOpThresholdMs: <int>
mode: <string>
operationProfiling.slowOpThresholdMs
類型:整數
默認值:
100
數據庫探查器認爲查詢緩慢的閾值(以毫秒爲單位)。即便數據庫分析器處於關閉狀態,
MongoDB
也會將全部慢速查詢記錄到日誌中。當探查器打開時,它會寫入
system.profile
集合。
該
operationProfiling.slowOpThresholdMs
設置僅適用於
mongod
。
operationProfiling.mode
輸入:
string
默認值:
off
數據庫概要分析的級別,它將有關操做性能的信息插入到
system.profile
集合中。
能夠指定的級別:
off
關閉,沒有剖析。
slowOp
僅包括慢速操做。
all
包括全部操做。
數據庫分析可能會影響數據庫性能
該
operationProfiling.mode
設置僅適用於
mongod
。
mong副本集相關配置
replication:
oplogSizeMB: <int>
replSetName: <string>
secondaryIndexPrefetch: <string>
enableMajorityReadConcern: <boolean>
replication.oplogSizeMB
類型:整數
複製操做日誌的最大大小(以兆字節爲單位)(即
oplog
)。該
mongod
過程基於可用的最大空間量建立
oplog
。
對於
64
位系統,
oplog
一般佔可用磁盤空間的
5
%。一旦
mongod
第一次建立了
oplog
,更改
replication.oplogSizeMB
選項將不會影響
oplog
的大小。
該
replication.oplogSizeMB
設置僅適用於
mongod
。
replication.replSetName
輸入:
string
做爲其
mongod
一部分的副本集的名稱。副本集中的全部主機必須具備相同的集名稱。
若是您的應用程序鏈接到多個副本集,則每一個集應具備不一樣的名稱。
該
replication.replSetName
設置僅適用於
mongod
。
replication.enableMajorityReadConcern
輸入:
boolean
默認值:
False
啓用讀取關注級別
"majority"
。
mong分片集相關配置
sharding:
clusterRole: <string>
archiveMovedChunks: <boolean>
sharding.clusterRole
輸入:
string
mongod
實例在分片集羣中的角色。
將此設置設置爲如下之一:
configsvr
將此實例做爲配置服務器啓動。
27019
默認狀況下,實例在端口上啓動。
shardsvr
啓動此實例爲碎片。
27018
默認狀況下,實例在端口上啓動。
該
sharding.clusterRole
設置僅適用於
mongod
。
sharding.archiveMovedChunks
輸入:
boolean
從
3.2
開始,
MongoDB false
用做默認值。
在塊遷移期間,分片不會保存從分片遷移的文檔。
mong分片集中Mongs的配置
replication:
localPingThresholdMs: <int>
sharding:
configDB: <string>
replication.localPingThresholdMs
類型:整數
默認值:
15
mongos
用於肯定哪些副本集成員從客戶端傳遞讀取操做的
ping
時間(以毫秒爲單位)。默認值
15
當
mongos
客戶端從副本集讀取數據的請求後,
mongs
會執行的操做:
1
,找到具備最低
ping
時間的集合的成員。
2
,找到集合中
ping
時間在
15
毫秒以內的全部副本集成員列表。
3
,若是指定選項的值,
mongos
則將查找在此值容許的延遲範圍內的副本成員。
4
,從查詢到的副本集成員列表中隨機選擇要讀取的成員。
用於成員的
replication.localPingThresholdMs
設置比較的
ping
時間是最近
ping
時間的移動平均值,最多每
10
秒計算一次。
所以,某些查詢可能會達到超過閾值的成員,直到
mongos
從新計算平均值。
sharding.configDB
輸入:
string
該配置服務器用於分片羣集。
指定配置服務器副本集名稱以及配置服務器副本集的至少一個成員的主機名和端口。
sharding:
configDB: <configReplSetName>/cfg1.example.net:27017, cfg2.example.net:27017,...
分片
mongos
羣集的實例必須指定相同的配置服務器副本集名稱,但能夠指定副本集的不一樣成員的主機名和端口。