標籤:筆記 ace param 名稱 nec padding 包括 engine 有助於
MongoDB資料庫安裝
MongoDB官方:https://www.mongodb.com/download-center
首先需要根據Windows版本選擇正確的MongoDB版本進行安裝,可以在命令列中輸入以下指令檢查Windows版本:
wmic os get osarchitecture
32 位版本的 MongoDB 只支援 2G 以下的資料庫,只適用於測試及評估。
點擊下載下來的安裝檔案進行MongoDB資料庫安裝,如:mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi
安裝完成後在通過命令列跳轉至MongoDB安裝目錄,輸入以下指令檢查是否安裝成功
mongod -v
MongoDB需要建立一個目錄來儲存所有的資料檔案,預設情況下MongoDB的資料目錄是C:\data\db\(見上方),所以需要在C盤下建立對應的檔案夾,也可以通過命令列設定
MongoDB的資料目錄
mongod --dbpath "d:\mongodb\data"
控制台輸出會顯示?waiting for connections?訊息,這表示 mongod 進程已經成功運行。
啟動MongoDB有2種方式,一是直接指定配置參數,二是指定設定檔
- 直接指定配置參數
例如:
mongod --dbpath "d:\mongodb\data"
- 指定設定檔
由於官方下載的安裝包中沒有預設的設定檔,若想使用設定檔只能自己建立,建立設定檔時確保使用ASCII編碼格式,Mongod?執行個體不支援設定檔使用非 ASCII?編碼格式,包括UTF-8。自2.6版本以後MongoDB使用YAML檔案格式,注意:YAML?不支援定位字元縮排︰?用空格代替。
例如:
mongod --config d:\mongodb\mongodb.conf
?
配置參數詳解:
?mongodb 3.0之後設定檔採用YAML格式,這種格式非常簡單,使用<key>:<value>表示,開頭使用"空格"作為縮排。需要注意的是,":"之後有value的話,需要緊跟一個空格,如果key只是展示層級,則無需在":"後增加空格(比如:systemLog:後面既不需要空格)。按照層級,每行4個空格縮排,第二級則8個空格,依次輪推,頂層則不需要空格縮排
1. systemLog
systemLog.verbosity
integer
記錄檔輸出的層級,越大層級越低。
systemLog.quite
boolean
在quite模式下會限制輸出資訊:
資料庫命令輸出,複本集活動,串連接受事件,串連關閉事件。
systemLog.traceAllExceptions
string
列印verbose資訊來調試,用來記錄證額外的異常日誌。
systemLog.syslogFacility
string,預設為user
指定syslog日誌資訊的裝置層級。需要指定--syslog來使用這個選項。
systemLog.path string
發送所有的診斷資訊日誌,預設重啟後會覆蓋。
systemLog.logAppend
boolean
是否啟用追加日誌。
systemLog.logRotate
string
V3.0.0版本中新特性,預設值為rename
使用rename,mongod或mongos通過在檔案名稱末尾添加UTC(GMT)時間戳記的方式重新命名當前的記錄檔,然後開啟新的記錄檔,關閉之前舊的記錄檔,並發送所有新的日誌資訊到新的記錄檔中。
reopen 關閉並重新開啟記錄檔遵循典型的Linux/Unix日誌切換行為。當使用Linux/Unix logrotate工具時,使用reopen避免日誌丟失。
如果指定reopen時,也必須同時使用—logappend
?
systemLog.destination
string
指定一個檔案或syslog。如果指定為檔案,必須同時指定systemLog.path
systemLog.timeStampFormat
string,預設為iso8601-local
日誌資訊中的時間戳記格式:
ctime,iso8601-utc,iso8601-local
?
2. processManagement
processManagement.pidFilePath
string
指定進程的ID,與--fork配合使用,不指定則不會建立。
processManagement.fork
boolean,預設為false
是守護進程在後台運行。
?
3. net
net.port
interger,預設為27017
mongodb執行個體監聽的連接埠號碼。
net.bindIp
string,2.6版本預設為127.0.0.1
指定mongodb執行個體綁定的ip,為了綁定多個ip,可以使用逗號分隔。
net.maxIncomingConnections
integer 預設為1000000
mongodb執行個體接受的最多串連數,如果高於作業系統接受的最大線程數,設定無效。
net.wireObjectCheck
boolean,預設為true
檢查文檔的有效性。會稍微影響效能。
net.http.enabled
boolean,預設為false
開啟http連接埠,會導致更多的不安全因素。
net.unixDomainSocket.enabled
boolean,預設為false
停止UNIX domain socket監聽。
mongodb執行個體會一直監聽UNIX
socket,除非net.unixDomainSocket.enabled設定為true,bindIp沒有設定,bindIp沒有預設指定為127.0.0.1。
net.unixDomainSocket.pathPrefix
string,預設為/tmp
unix Socket所在的路徑。
net.ipv6
boolean,預設為false
開啟IPV6功能,預設為關閉的。
net.http.JSONPEnabled
boolean,預設為false
運行json訪問http連接埠,開啟會導致更多的不安全因素。
net.http.RESTInterfaceEnabled
boolean,預設為false
即使http介面選項關閉,開啟也會暴露http介面,會導致更多的不安全因素。
?
4. security
security.keyFile
string
指定分區集或複本集成員之間身分識別驗證的key檔案儲存體位置。
security.clusterAuthMode
string
叢集認證中利用到這個模式,如果使用x.509安全機制,可以在這裡指定。
keyFile,sendKeyFile,sendX509,x509
預設的mongodb發行版是不支援ssl的,可以使用專業版的或重新自行編譯mongodb。
security.authorization
string,預設為disabled
開啟訪問資料庫和進行操作的使用者角色認證。
enabled,disabled
?
5. operationProfiling
operationProfiling.slowOpThresholdMs
integer,預設100
指定慢查詢時間,單位毫秒,如果開啟功能,則向system.profile集合寫入資料。
operationProfiling.mode
integer,預設0
改變分析日誌輸出層級。
0,1,2,分別對應關閉,僅開啟慢查詢,記錄所有操作。
?
6. storage
storage.dbPath
string
指定資料檔案的路徑。
storage.directoryPerDB
boolean,預設關閉
指定儲存每個資料庫檔案到單獨的資料目錄。如果在一個已存在的系統使用該選項,需要事先把存在的資料檔案移動到目錄。
storage.indexBuildRetry
boolean,預設為true
指定資料庫在索引建立過程中停止,重啟後是否重建立立索引。
storage.preallocDataFiles
boolean,預設true
是否預先分區好資料檔案。
storage.nsSize
integer,預設16
指定命名空間的大小,即.ns尾碼的檔案。最大為2047MB,16M檔案可以提供大約24000個命名空間。
storage.quota.enforced
boolean,預設false
限制每個資料庫的資料檔案數目。可以通過maxFilesPerDB調整數目。
storage.quota.maxFilesPerDB
integer,預設為8
限制每個資料庫的資料檔案數目。
storage.smallFiles
boolean,預設為false
限制mongodb資料檔案大小為512MB,減小journal檔案從1G到128M,適用於有很多數量小的資料檔案。
storage.syncPeriodSecs
number,預設60
mongodb檔案重新整理頻率,盡量不要在生產環境下修改。
storage.repairPath
string,預設為指定dbpath下的_tmp目錄。
指定包含資料檔案的根目錄,進行--repair操作。
storage.journal.enabled
boolean,預設64bit為true,32bit為false
記錄動作記錄,防止資料丟失。
storage.journal.debugFlags
integer
提供資料庫在非正常關閉下的功能測試。
storage.journal.commitIntervalMs
number,預設為100或30
journal操作的最大間隔時間。可以是2-300ms之間的值,低的值有助於持久化,但是會增加磁碟的額外負擔。
如果journal和資料檔案在同一磁碟上,預設為100ms。如果在不同的磁碟上為30ms。
如果強制mongod提交記錄檔,可以指定j:true,指定後,時間變為原來的三分之一。
?
7. replication
replication.oplogSizeMB
integer,預設為磁碟的5%
指定oplog的最大尺寸。對於已經建立過oplog.rs的資料庫,指定無效。
replication.replSetName
string
指定複本集的名稱。
replication.secondaryIndexPrefetch
string,預設為all
指定複本集成員在接受oplog之前是否載入索引到記憶體。預設會載入所有的索引到記憶體。
none,不載入;all,載入所有;_id_only,僅載入_id。
?
8. sharding
sharding.clusterRole
string
指定分區集的mongodb角色。
configsvr,設定管理員,連接埠27019;shardsvr,分區執行個體,連接埠27018。
sharding.archiveMovedChunks
integer
在塊移動過程中,該選項強制mongodb執行個體儲存所有移動的文檔到moveChunk目錄。
?
9. auditLog
auditLog.destination
string
syslog,以json格式儲存身分識別驗證到syslog,windows下不可用,serverity層級為info,facility層級為user。
console,以json格式輸出資訊到標準輸出。
file,以json格式輸出資訊到檔案。
auditLog.format
string
指定輸出檔案的格式
JSON,輸出json格式檔案;BSON,輸出bson二進位格式檔案。
auditLog.path
string
如果--auditDestination的值為file,則該選項指定檔案路徑。
auditLog.filter
document
指定過濾系統身分識別驗證的格式為:
{ atype : <expression> }
{ atype: <expression>, "param.db": <database> }
?
10. snmp
snmp.subagent
boolean
運行SNMP為一個子代理。
snmp.master
boolean
運行SNMP為一個主進程。
?
僅mongos選項
replication.localPingThresholdMs
integer,預設15
當用戶端選定複本集進行讀操作時受影響。
sharding.autoSplit
boolean
防止mongos自動在一個分區集合中插入中繼資料。
因為任何的mongos都可以建立一個分離,如果開啟該選項,將會導致分區不平衡,需要謹慎使用。
sharding.configDB
string
指定設定資料庫。可以使用逗號分隔一到三個伺服器。
如果處於不同的位置,需要指定最近的一個。
不能移除設定管理員,即使不可用或者離線了。
sharding.chunkSize
integer,預設為64
每個塊的大小。64MB是理想大小,小的會導致不能在不同節點間高效移動。
僅僅在初始化時有效。
?
參考樣本:
systemLog: quiet: true #syslogFacility: <string> path: D:\mongodb\logs\mongodb.log logAppend: true destination: file timeStampFormat: "iso8601-utc" storage: dbPath: D:\mongodb\data indexBuildRetry: true #repairPath: <string> journal: enabled: true directoryPerDB: true #syncPeriodSecs: 60 engine: wiredTiger wiredTiger: engineConfig: cacheSizeGB: 10 directoryForIndexes: true collectionConfig: blockCompressor: zlib indexConfig: prefixCompression: true #processManagement: #fork: true #pidFilePath: D:\mongodb\run\mongodb.pid net: port: 27017 #bindIp: 127.0.0.1 maxIncomingConnections: 65536 wireObjectCheck: true ipv6: false http: enabled: false JSONPEnabled: false RESTInterfaceEnabled: false #ssl: #mode: <string> #PEMKeyFile: <string> #PEMKeyPassword: <string> #security: #keyFile: D:\mongodb\keyfile #clusterAuthMode: keyFile #authorization: disabled operationProfiling: slowOpThresholdMs: 100 mode: slowOp replication: oplogSizeMB: 50 replSetName: reptestname secondaryIndexPrefetch: all #enableMajorityReadConcern: <boolean> #sharding: #clusterRole: <string> #archiveMovedChunks: <boolean> |
MongoDB學習筆記——資料庫安裝及配置