基於mongo 3.4版本
高於3.4版本的請參考官方文件
docs.mongodb.com/manual/refe…
mong日誌常用配置配置
systemLog:
quiet: <boolean>
traceAllExceptions: <boolean>
syslogFacility: <string>
path: <string>
logAppend: <boolean>
destination: <string>
timeStampFormat: <string>
systemLog.quiet
輸入:
boolean
執行
mongos
或
mongod
處於安靜模式,試圖限制輸出量。
systemLog.quiet
是不建議用於生產系統,因為它可以使在特定的連線變得更加困難跟蹤問題。
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
群集的例項必須指定相同的配置伺服器副本集名稱,但可以指定副本集的不同成員的主機名和埠。