MongoDB的安裝及設定檔選項全解_MongoDB

來源:互聯網
上載者:User

安裝部分
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 Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/gpgcheck=0enabled=1

如果是32bit系統

[mongodb]name=MongoDB Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/gpgcheck=0enabled=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
4. 運行mongodb
注意mongodb的預設連接埠和SELinux服務的狀態。
資料檔案目錄:/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-utcstorage:  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: 100processManagement:  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模式下會限制輸出資訊:
資料庫命令輸出,複本集活動,串連接受事件,串連關閉事件。

systemLog.traceAllExceptions 

string

列印verbose資訊來調試,用來記錄證額外的異常日誌。

systemLog.syslogFacility

string,預設為user
指定syslog日誌資訊的裝置層級。需要指定--syslog來使用這個選項。

systemLog.path string

發送所有的診斷資訊日誌,預設重啟後會覆蓋。

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配合使用,不指定則不會建立。

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為一個主進程。

PS:
1.僅mongos選項

replication.localPingThresholdMs

integer,預設15
當用戶端選定複本集進行讀操作時受影響。

sharding.autoSplit

boolean
防止mongos自動在一個分區集合中插入中繼資料。
因為任何的mongos都可以建立一個分離,如果開啟該選項,將會導致分區不平衡,需要謹慎使用。

sharding.configDB

string
指定設定資料庫。可以使用逗號分隔一到三個伺服器。
如果處於不同的位置,需要指定最近的一個。
不能移除設定管理員,即使不可用或者離線了。

sharding.chunkSize

integer,預設為64
每個塊的大小。64MB是理想大小,小的會導致不能在不同節點間高效移動。
僅僅在初始化時有效。

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服務的使用者的密碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.