- 論壇徽章:
- 0
|
通過源代碼編譯安裝好MongoDB之后,接下來需要配置運行。在MongoDB的安裝目錄,有幾個子目錄,bin下面是可執(zhí)行文件,包括
mongod:數(shù)據(jù)庫服務端,類似mysqld,每個實例啟動一個進程,可以fork為Daemon運行
mongo:客戶端命令行工具,類似sqlplus/mysql,其實也是一個js解釋器,支持js語法
mongodump/mongorestore:將數(shù)據(jù)導入為bson格式的文件/將bson文件恢復為數(shù)據(jù)庫,類似xtracbackup
mongoexport/mongoimport:將collection導出為json/csv格式數(shù)據(jù)/將數(shù)據(jù)導入數(shù)據(jù)庫,類似mysqldump/mysqlimport
bsondump:將bson格式的文件轉儲為json格式的數(shù)據(jù)
mongos:分片路由,如果使用了sharding功能,則應用程序連接的是mongos而不是mongod
mongofiles:GridFS管理工具
mongostat:實時監(jiān)控工具
最簡單的,通過執(zhí)行mongod即可以啟動MongoDB數(shù)據(jù)庫服務,mongod支持很多的參數(shù),但都有默認值,其中最重要的是需要指定數(shù)據(jù)文件路徑,或者確保默認的/data/db存在并且有訪問權限,否則啟動后會自動關閉服務。Ok,那也就是說,只要確保dbpath就可以啟動MongoDB服務了:
$ ./mongod --dbpath /tmp
Fri Apr 1 00:34:46 [initandlisten] MongoDB starting : pid=31978 port=27017 dbpath=/tmp 32-bit
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations
** with --dur, the limit is lower
Fri Apr 1 00:34:46 [initandlisten] db version v1.8.0, pdfile version 4.5
Fri Apr 1 00:34:46 [initandlisten] git version: 9c28b1d608df0ed6ebe791f63682370082da41c0
Fri Apr 1 00:34:46 [initandlisten] build sys info: Linux ning 2.6.36-ningoo #1 SMP
Wed Nov 17 21:45:13 CST 2010 i686 BOOST_LIB_VERSION=1_42
Fri Apr 1 00:34:46 [initandlisten] waiting for connections on port 27017
Fri Apr 1 00:34:46 [websvr] web admin interface listening on port 28017
mongod的主要參數(shù)有:
dbpath: 數(shù)據(jù)文件存放路徑,每個數(shù)據(jù)庫會在其中創(chuàng)建一個子目錄。用于防止同一個實例多次運行的mongod.lock也保存在此目錄中。
logpath:錯誤日志文件
logappend: 錯誤日志采用追加模式(默認是覆寫模式)
bind_ip: 對外服務的綁定ip,一般設置為空,及綁定在本機所有可用ip上,如有需要可以單獨指定
port: 對外服務端口。Web管理端口在這個port的基礎上+1000
fork: 以后臺Daemon形式運行服務
journal:開啟日志功能,通過保存操作日志來降低單機故障的恢復時間,在1.8版本后正式加入,取代在1.7.5版本中的dur參數(shù)。
syncdelay: 執(zhí)行sync的間隔,單位為秒。
directoryperdb: 每個db存放在單獨的目錄中,建議設置該參數(shù)。
maxConns: 最大連接數(shù)
repairpath: 執(zhí)行repair時的臨時目錄。在如果沒有開啟journal,異常宕機后重啟,必須執(zhí)行repair操作。
在源代碼中,mongod的參數(shù)分為一般參數(shù),windows參數(shù),replication參數(shù),replica set參數(shù),以及隱含參數(shù)。上面列舉的都是一般參數(shù)。如果要配置replication,replica set等,還需要設置對應的參數(shù),這里先不展開,后續(xù)會有專門的文章來講述。執(zhí)行mongo –help可以看到對大多數(shù)參數(shù)的解釋。但有一些隱含參數(shù),則只能通過看代碼來獲得(見db.cpp po: ptions_description hidden_options(“Hidden options”) ,隱含參數(shù)一般要么是還在開發(fā)中,要么是準備廢棄,因此在生產(chǎn)環(huán)境中不建議使用。
可能你已經(jīng)注意到,mongod的參數(shù)中,沒有設置內(nèi)存大小相關的參數(shù),是的,mongodb使用os mmap機制來緩存數(shù)據(jù)文件數(shù)據(jù),自身目前不提供緩存機制。這樣好處是代碼簡單,mmap在數(shù)據(jù)量不超過內(nèi)存時效率很高。但是數(shù)據(jù)量超過系統(tǒng)可用內(nèi)存后,則寫入的性能可能不太穩(wěn)定,容易出現(xiàn)大起大落,不過在最新的1.8版本中,這個情況相對以前的版本已經(jīng)有了一定程度的改善,具體請參考realzyy的測試。
這么多參數(shù),全面寫在命令行中則容易雜亂而不好管理。因此,mongod也和mysqld一樣支持將參數(shù)寫入到一個配置文本文件中,然后通過config參數(shù)來引用此配置文件:
./mongod --config /etc/mongo.cnf
至此,已經(jīng)成功的運行了一個單機的mongodb實例。
原文地址:http://www.ningoo.net/html/2011/mongodb_in_a_nutshell_3.html |
|