mongodb配置檔案常用配置項

searok發表於2018-12-25

基於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
群集的例項必須指定相同的配置伺服器副本集名稱,但可以指定副本集的不同成員的主機名和埠。


相關文章