MongoDB的安裝及配置文件選項全解
安裝部分
1. 安裝包
1.1 mongodb-org
可以自動安裝以下的四個包
1.2 mongodb-org-server
mongod進程和配置文件,啟動腳本
1.3 mongodb-org-mongos
mongos進程
1.4 mongodb-org-shell
mongo shell
1.5 mongodb-org-tools
其他mongodb工具,mongoimport,mongoexport,mongodump,mongrestore,mongofiles,bsondump,mongooplog,mongoperf,mongostat,mongotop,(mongosniff)
2. 腳本文件
2.1 /etc/rc.d/init.d/mongod
啟動腳本
2.2 /etc/mongod.conf
配置文件
3. 安裝mongodb
3.1 配置yum源
/etc/yum.repos.d/mongodb.repo -> [mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
如果是32bit系統(tǒng)
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/ gpgcheck=0 enabled=1
3.2 安裝mongodb版本
sudo yum install mongodb-org
安裝指定版本mongodb
yum install mongodb-org-2.6.1 mongodb-org-server-2.6.1 mongodb-org-shell-2.6.1 mongodb-org-mongos-2.6.1 mongodb-org-tools-2.6.1
3.3 為了避免無意識的升級
/etc/yum.conf -> exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
注意mongodb的默認端口和SELinux服務的狀態(tài)。
數(shù)據(jù)文件目錄:/var/lib/mongo ,日志文件目錄: /var/log/mongo。
改變/var/lib/mongo和/var/log/mongo權限為mongodb的運行者。
4.1 啟動mongodb
sudo service mongod start
4.2 證實mongodb啟動成功
檢查mongodb日志文件/var/log/mongodb/mongod.log。
把mongodb加入開機啟動服務:
sudo chkconfig mongod on
4.3 關閉mongodb服務
sudo service mongod stop
4.4 重啟mongodb服務
sudo service mongod restart
4.5 開始使用mongodb
配置文件部分
MongoDB引入一個YAML-based格式的配置文件。2.4版本以前的仍然兼容。
我的mongodb配置文件:
systemLog: destination: file path: "/var/log/mongo/mongod.log" quiet: true logAppend: true timeStampFormat: iso8601-utc storage: dbPath: "/var/lib/mongo" directoryPerDB: true indexBuildRetry: false preallocDataFiles: true nsSize: 16 # quota: # enforced: false # maxFilesPerDB: 8 smallFiles: false syncPeriodSecs: 60 # repairPath: "/var/lib/mongo/_tmp" journal: enabled: true # debugFlags: 1 commitIntervalMs: 100 processManagement: fork: true pidFilePath: "/var/run/mongodb/mongod.pid" net: # bindIp: 192.168.11.52 port: 27017 http: enabled: true RESTInterfaceEnabled: false # ssl: # mode: "requireSSL" # PEMKeyFile: "/etc/ssl/mongodb.pem" operationProfiling: slowOpThresholdMs: 100 mode: "slowOp" security: keyFile: "/var/lib/mongo/mongodb-keyfile" clusterAuthMode: "keyFile" authorization: "disabled" replication: oplogSizeMB: 50 replSetName: "repl_test" secondaryIndexPrefetch: "all"
設置選項:
1. systemLog
systemLog.verbosity
integer
日志文件輸出的級別,越大級別越低。
systemLog.quite
boolean
在quite模式下會限制輸出信息:
數(shù)據(jù)庫命令輸出,副本集活動,連接接受事件,連接關閉事件。
systemLog.traceAllExceptions
string
打印verbose信息來調(diào)試,用來記錄證額外的異常日志。
systemLog.syslogFacility
string,默認為user
指定syslog日志信息的設備級別。需要指定--syslog來使用這個選項。
systemLog.path string
發(fā)送所有的診斷信息日志,默認重啟后會覆蓋。
systemLog.logAppend
boolean
是否啟用追加日志。
systemLog.destination
string
指定一個文件或syslog。如果指定為文件,必須同時指定systemLog.path
systemLog.timeStampFormat
string,默認為iso8601-local
日志信息中的時間戳格式:
ctime,iso8601-utc,iso8601-local
2. processManagement
processManagement.pidFilePath
string
指定進程的ID,與--fork配合使用,不指定則不會創(chuàng)建。
processManagement.fork
boolean,默認為false
是守護進程在后臺運行。
3. net
net.port
interger,默認為27017
mongodb實例監(jiān)聽的端口號。
net.bindIp
string,2.6版本默認為127.0.0.1
指定mongodb實例綁定的ip,為了綁定多個ip,可以使用逗號分隔。
net.maxIncomingConnections
integer 默認為1000000
mongodb實例接受的最多連接數(shù),如果高于操作系統(tǒng)接受的最大線程數(shù),設置無效。
net.wireObjectCheck
boolean,默認為true
檢查文檔的有效性。會稍微影響性能。
net.http.enabled
boolean,默認為false
打開http端口,會導致更多的不安全因素。
net.unixDomainSocket.enabled
boolean,默認為false
停止UNIX domain socket監(jiān)聽。
mongodb實例會一直監(jiān)聽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發(fā)行版是不支持ssl的,可以使用專業(yè)版的或重新自行編譯mongodb。
security.authorization
string,默認為disabled
打開訪問數(shù)據(jù)庫和進行操作的用戶角色認證。
enabled,disabled
5. operationProfiling
operationProfiling.slowOpThresholdMs
integer,默認100
指定慢查詢時間,單位毫秒,如果打開功能,則向system.profile集合寫入數(shù)據(jù)。
operationProfiling.mode
integer,默認0
改變分析日志輸出級別。
0,1,2,分別對應關閉,僅打開慢查詢,記錄所有操作。
6. storage
storage.dbPath
string
指定數(shù)據(jù)文件的路徑。
storage.directoryPerDB
boolean,默認關閉
指定存儲每個數(shù)據(jù)庫文件到單獨的數(shù)據(jù)目錄。如果在一個已存在的系統(tǒng)使用該選項,需要事先把存在的數(shù)據(jù)文件移動到目錄。
storage.indexBuildRetry
boolean,默認為true
指定數(shù)據(jù)庫在索引建立過程中停止,重啟后是否重新建立索引。
storage.preallocDataFiles
boolean,默認true
是否預先分片好數(shù)據(jù)文件。
storage.nsSize
integer,默認16
指定命名空間的大小,即.ns后綴的文件。最大為2047MB,16M文件可以提供大約24000個命名空間。
storage.quota.enforced
boolean,默認false
限制每個數(shù)據(jù)庫的數(shù)據(jù)文件數(shù)目。可以通過maxFilesPerDB調(diào)整數(shù)目。
storage.quota.maxFilesPerDB
integer,默認為8
限制每個數(shù)據(jù)庫的數(shù)據(jù)文件數(shù)目。
storage.smallFiles
boolean,默認為false
限制mongodb數(shù)據(jù)文件大小為512MB,減小journal文件從1G到128M,適用于有很多數(shù)量小的數(shù)據(jù)文件。
storage.syncPeriodSecs
number,默認60
mongodb文件刷新頻率,盡量不要在生產(chǎn)環(huán)境下修改。
storage.repairPath
string,默認為指定dbpath下的_tmp目錄。
指定包含數(shù)據(jù)文件的根目錄,進行--repair操作。
storage.journal.enabled
boolean,默認64bit為true,32bit為false
記錄操作日志,防止數(shù)據(jù)丟失。
storage.journal.debugFlags
integer
提供數(shù)據(jù)庫在非正常關閉下的功能測試。
storage.journal.commitIntervalMs
number,默認為100或30
journal操作的最大間隔時間。可以是2-300ms之間的值,低的值有助于持久化,但是會增加磁盤的額外負擔。
如果journal和數(shù)據(jù)文件在同一磁盤上,默認為100ms。如果在不同的磁盤上為30ms。
如果強制mongod提交日志文件,可以指定j:true,指定后,時間變?yōu)樵瓉淼娜种弧?/p>
7. replication
replication.oplogSizeMB
integer,默認為磁盤的5%
指定oplog的最大尺寸。對于已經(jīng)建立過oplog.rs的數(shù)據(jù)庫,指定無效。
replication.replSetName
string
指定副本集的名稱。
replication.secondaryIndexPrefetch
string,默認為all
指定副本集成員在接受oplog之前是否加載索引到內(nèi)存。默認會加載所有的索引到內(nèi)存。
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
指定過濾系統(tǒng)身份驗證的格式為:
{ atype : <expression> } { atype: <expression>, "param.db": <database> }
10. snmp
snmp.subagent
boolean
運行SNMP為一個子代理。
snmp.master
boolean
運行SNMP為一個主進程。
PS:
1.僅mongos選項
replication.localPingThresholdMs
integer,默認15
當客戶端選定副本集進行讀操作時受影響。
sharding.autoSplit
boolean
防止mongos自動在一個分片集合中插入元數(shù)據(jù)。
因為任何的mongos都可以創(chuàng)建一個分離,如果打開該選項,將會導致分片不平衡,需要謹慎使用。
sharding.configDB
string
指定配置數(shù)據(jù)庫??梢允褂枚禾柗指粢坏饺齻€服務器。
如果處于不同的位置,需要指定最近的一個。
不能移除配置服務器,即使不可用或者離線了。
sharding.chunkSize
integer,默認為64
每個塊的大小。64MB是理想大小,小的會導致不能在不同節(jié)點間高效移動。
僅僅在初始化時有效。
2.Windows服務選項
processManagement.windowsService.serviceName
string,默認為MongoDB
指定mongodb服務名稱??梢允褂?-install,--remove增加或刪除。
processManagement.windowsService.displayName
string,默認為MongoDB
設置mongodb服務應用程序的名稱。
processManagement.windowsService.description
string,默認為MongoDB Server
結合--install,必須指定該選項的值。
processManagement.windowsService.serviceUser
指定運行mongodb服務的用戶
processManagement.windowsService.servicePassword
指定運行mongodb服務的用戶的密碼
相關文章
開發(fā)分布式醫(yī)療掛號系統(tǒng)MongoDB集成實現(xiàn)上傳醫(yī)院接口
這篇文章主要介紹了開發(fā)分布式醫(yī)療掛號系統(tǒng)MongoDB集成實現(xiàn)上傳醫(yī)院接口,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04對標mongodb存儲類JSON數(shù)據(jù)文檔統(tǒng)計分析詳解
這篇文章主要介紹了對標mongodb存儲類JSON數(shù)據(jù)文檔統(tǒng)計分析,只是介紹了簡單的查詢,其實針對各種統(tǒng)計分析場景,clickhouse提供了超級多的統(tǒng)計分析函數(shù)、窗口函數(shù)等等,當然針對數(shù)組的數(shù)據(jù)類型也有很多的統(tǒng)計分析函數(shù),需要的朋友可以參考下2022-06-062021最新版windows10系統(tǒng)MongoDB數(shù)據(jù)庫安裝及配置環(huán)境
這篇文章主要介紹了2021最新版MongoDB數(shù)據(jù)庫安裝及配置環(huán)境(windows10系統(tǒng)),本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03