Chinaunix
標(biāo)題: MongoDB管理與開發(fā)精要《紅丸出品》4.1 啟動數(shù)據(jù)庫 [打印本頁]
作者: cd紅丸 時間: 2012-06-13 21:34
標(biāo)題: MongoDB管理與開發(fā)精要《紅丸出品》4.1 啟動數(shù)據(jù)庫

MongoDB Shell是MongoDB自帶的交互式Javascript shell,用來對MongoDB進(jìn)行操作和管理的交互式環(huán)境。
使用 "./mongo --help" 可查看相關(guān)連接參數(shù),下面將從常見的操作,如插入,查詢,修改,刪除等幾個方面闡述MongoDB shell的用法。
4.1 啟動數(shù)據(jù)庫
MongoDB安裝、配置完后,必須先啟動它,然后才能使用它。怎么啟動它呢?下面分別展示了3種方式來啟動實例。
4.1.1 命令行方式啟動
MongoDB默認(rèn)存儲數(shù)據(jù)目錄為/data/db/ (或者 c:\data\db), 默認(rèn)端口27017,默認(rèn)HTTP 端口28017。當(dāng)然你也可以修改成不同目錄,只需要指定dbpath參數(shù): /Apps/mongo/bin/mongod --dbpath=/data/db
[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db Sun Apr 8 22:41:06 [initandlisten] MongoDB starting : pid=13701 port=27017 dbpath=/data/db 32-bit …… Sun Apr 8 22:41:06 [initandlisten] waiting for connections on port 27017 Sun Apr 8 22:41:06 [websvr] web admin interface listening on port 28017 |
4.1.2 配置文件方式啟動
如果是一個專業(yè)的DBA,那么實例啟動時會加很多的參數(shù)以便使系統(tǒng)運行的非常穩(wěn)定,這樣就可能會在啟動時在mongod后面加一長串的參數(shù),看起來非;靵y而且不好管理和維護(hù),那么有什么辦法讓這些參數(shù)有條理呢?MongoDB也支持同mysql一樣的讀取啟動配置文件的方式來啟動數(shù)據(jù)庫,配置文件的內(nèi)容如下:
[root@localhost bin]# cat /etc/mongodb.cnf dbpath=/data/db/ |
啟動時加上”-f”參數(shù),并指向配置文件即可
[root@localhost bin]# ./mongod -f /etc/mongodb.cnf Mon May 28 18:27:18 [initandlisten] MongoDB starting : pid=18481 port=27017 dbpath=/data/db/ 32-bit …… Mon May 28 18:27:18 [initandlisten] waiting for connections on port 27017 Mon May 28 18:27:18 [websvr] web admin interface listening on port 28017 |
4.1.3 Daemon方式啟動
大家可以注意到上面的兩種方式都慢在前臺啟動MongoDB進(jìn)程,但當(dāng)啟動MongoDB進(jìn)程的session窗口不小心關(guān)閉時,MongoDB進(jìn)程也將隨之停止,這無疑是非常不安全的,幸好MongoDB提供了一種后臺Daemon方式啟動的選擇,只需加上一個”--fork”參數(shù)即可,這就使我們可以更方便的操作數(shù)據(jù)庫的啟動,但如果用到了”--fork”參數(shù)就必須也啟用” --logpath”參數(shù),這是強(qiáng)制的
[root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db --fork --fork has to be used with --logpath [root@localhost ~]# /Apps/mongo/bin/mongod --dbpath=/data/db --logpath=/data/log/r3.log --fork all output going to: /data/log/r3.log forked process: 19528 [root@localhost ~]# |
4.1.4 mongod參數(shù)說明
最簡單的,通過執(zhí)行mongod即可以啟動MongoDB數(shù)據(jù)庫服務(wù),mongod支持很多的參數(shù),但都有默認(rèn)值,其中最重要的是需要指定數(shù)據(jù)文件路徑,或者確保默認(rèn)的/data/db存在并且有訪問權(quán)限,否則啟動后會自動關(guān)閉服務(wù)。Ok,那也就是說,只要確保dbpath就可以啟動MongoDB服務(wù)了
mongod的主要參數(shù)有:
l dbpath:
數(shù)據(jù)文件存放路徑,每個數(shù)據(jù)庫會在其中創(chuàng)建一個子目錄,用于防止同一個實例多次運行的mongod.lock也保存在此目錄中。
l logpath
錯誤日志文件
l logappend
錯誤日志采用追加模式(默認(rèn)是覆寫模式)
l bind_ip
對外服務(wù)的綁定ip,一般設(shè)置為空,及綁定在本機(jī)所有可用ip上,如有需要可以單獨指定
l port
對外服務(wù)端口。Web管理端口在這個port的基礎(chǔ)上+1000
l fork
以后臺Daemon形式運行服務(wù)
l journal
開啟日志功能,通過保存操作日志來降低單機(jī)故障的恢復(fù)時間,在1.8版本后正式加入,取代在1.7.5版本中的dur參數(shù)。
l syncdelay
系統(tǒng)同步刷新磁盤的時間,單位為秒,默認(rèn)是60秒。
l directoryperdb
每個db存放在單獨的目錄中,建議設(shè)置該參數(shù)。與MySQL的獨立表空間類似
l maxConns
最大連接數(shù)
l repairpath
執(zhí)行repair時的臨時目錄。在如果沒有開啟journal,異常down機(jī)后重啟,必須執(zhí)行repair操作。
在源代碼中,
mongod的參數(shù)分為一般參數(shù),
windows參數(shù),
replication參數(shù),
replica set參數(shù),以及隱含參數(shù)。上面列舉的都是一般參數(shù)。如果要配置
replication,
replica set等,還需要設(shè)置對應(yīng)的參數(shù),這里先不展開,后續(xù)會有專門的章節(jié)來講述。執(zhí)行
mongod --help可以看到對大多數(shù)參數(shù)的解釋,但有一些隱含參數(shù),則只能通過看代碼來獲得
(見
db.cpp po:
ptions_description hidden_options(“
Hidden options”
)
,隱含參數(shù)一般要么是還在開發(fā)中,要么是準(zhǔn)備廢棄,因此在生產(chǎn)環(huán)境中不建議使用。
可能你已經(jīng)注意到,mongod的參數(shù)中,沒有設(shè)置內(nèi)存大小相關(guān)的參數(shù),是的,MongoDB使用os mmap機(jī)制來緩存數(shù)據(jù)文件數(shù)據(jù),自身目前不提供緩存機(jī)制。這樣好處是代碼簡單,mmap在數(shù)據(jù)量不超過內(nèi)存時效率很高。但是數(shù)據(jù)量超過系統(tǒng)可用內(nèi)存后,則寫入的性能可能不太穩(wěn)定,容易出現(xiàn)大起大落,不過在最新的1.8版本中,這個情況相對以前的版本已經(jīng)有了一定程度的改善。
這么多參數(shù),全面寫在命令行中則容易雜亂而不好管理。因此,mongod支持將參數(shù)寫入到一個配置文本文件中,然后通過config參數(shù)來引用此配置文件:
./mongod --config /etc/mongo.cnf
歡迎光臨 Chinaunix (http://72891.cn/) |
Powered by Discuz! X3.2 |