MongoDB學習筆記——資料庫安裝及配置

來源:互聯網
上載者:User

標籤:筆記   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種方式,一是直接指定配置參數,二是指定設定檔

  1. 直接指定配置參數

    例如:

    mongod --dbpath "d:\mongodb\data" 

  2. 指定設定檔

    由於官方下載的安裝包中沒有預設的設定檔,若想使用設定檔只能自己建立,建立設定檔時確保使用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學習筆記——資料庫安裝及配置

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.