新聞中心
隨著數(shù)據(jù)量的增大,單機(jī)部署的MongoDB已經(jīng)不能夠滿足大規(guī)模應(yīng)用的需求。為了解決這個(gè)問(wèn)題,MongoDB提出了分片的概念,將數(shù)據(jù)分散存儲(chǔ)在不同的節(jié)點(diǎn)上,從而實(shí)現(xiàn)高可用、高性能的集群架構(gòu)。本文將詳細(xì)介紹MongoDB分片指令的使用方法和注意事項(xiàng)。

10多年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站制作,個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁(yè)制作,對(duì)成都服務(wù)器租用等多個(gè)行業(yè),擁有豐富的網(wǎng)站推廣經(jīng)驗(yàn)。
一、啟用分片
在啟用分片之前,需要進(jìn)行以下準(zhǔn)備工作:
1. 確定分片節(jié)點(diǎn)的數(shù)量和準(zhǔn)備相應(yīng)數(shù)量的服務(wù)器。
2. 開(kāi)啟MongoDB的sharding功能。
3. 配置MongoDB的路由器節(jié)點(diǎn)(mongos)。
在準(zhǔn)備工作完成后,可以開(kāi)始啟用分片,具體操作如下:
1. 首先連接到mongos節(jié)點(diǎn):
mongo –host 端口號(hào) –username 用戶名 –password 密碼
2. 然后執(zhí)行enablesharding命令,開(kāi)啟分片功能:
> sh.enableSharding(“數(shù)據(jù)庫(kù)名稱”)
其中,數(shù)據(jù)庫(kù)名稱是需要啟用分片的數(shù)據(jù)庫(kù)。
3. 接著執(zhí)行sharding命令,將分片:
> sh.shardcollection(“數(shù)據(jù)庫(kù)名稱.名稱”, { “分片鍵”: 1 })
此命令的參數(shù)意義如下:
– 數(shù)據(jù)庫(kù)名稱.名稱:需要分片的。
– 分片鍵:用于分片的關(guān)鍵字。
– { “分片鍵”: 1 }:分片鍵的具體實(shí)現(xiàn),1表示升序,-1表示降序。
二、查看分片狀態(tài)
啟用分片后,可以使用以下指令查看分片的狀態(tài):
1. 查看分片狀態(tài):
> sh.status()
此命令可以查看當(dāng)前的分片狀態(tài),包括分片節(jié)點(diǎn)的狀態(tài)、分片鍵、分片數(shù)據(jù)的大小等信息。
2. 查看分片的chunk數(shù)量:
> db.collection.getShardDistribution()
此命令可以查看指定的分片chunk數(shù)量和狀態(tài)。
三、添加和移除分片節(jié)點(diǎn)
在分片運(yùn)行期間,可能需要添加或移除分片節(jié)點(diǎn)。新增和移除節(jié)點(diǎn)的操作涉及到多個(gè)步驟和指令,具體如下:
1. 添加節(jié)點(diǎn)
1)啟動(dòng)mongodb實(shí)例
mongod –shardsvr –replSet rs0 –dbpath /data/db
此命令會(huì)啟動(dòng)一個(gè)新的mongodb節(jié)點(diǎn),并以rs0為副本集。
2)連接到mongos
mongo –host 端口號(hào) –username 用戶名 –password 密碼
3)添加節(jié)點(diǎn)
> sh.addShard(“rs0/IP地址:端口號(hào)”)
其中,rs0為節(jié)點(diǎn)副本集的名稱,IP地址和端口號(hào)為新節(jié)點(diǎn)的地址。
2. 移除節(jié)點(diǎn)
1)查看節(jié)點(diǎn)列表
> sh.status()
2)連接到需要移除的節(jié)點(diǎn)
mongo –host IP地址 –port 端口號(hào)
3)關(guān)閉該節(jié)點(diǎn)
use admin
db.shutdownServer()
4)連接到mongos,并移除節(jié)點(diǎn)
> sh.removeShard(“節(jié)點(diǎn)名稱”)
其中,節(jié)點(diǎn)名稱是需要移除的節(jié)點(diǎn)在分片集群中的名稱。
四、添加和移除sharding的單個(gè)分片
在分片運(yùn)行期間,可能需要添加或移除sharding的單個(gè)分片。新增和移除的操作涉及到多個(gè)步驟和指令,具體如下:
1. 添加分片
1)連接到mongos
mongo –host 端口號(hào) –username 用戶名 –password 密碼
2)添加分片
> sh.shardCollection(“數(shù)據(jù)庫(kù)名稱.名稱”, { 分片鍵: 1 })
其中,數(shù)據(jù)庫(kù)名稱.名稱是需要添加分片的名稱,分片鍵是按照該關(guān)鍵字進(jìn)行分片劃分,1表示升序。
2. 移除分片
1)連接到mongos
mongo –host 端口號(hào) –username 用戶名 –password 密碼
2)移除分片
> db.collection.drop()
其中,collection為需要移除的分片名稱。
五、
通過(guò)本文的介紹,讀者可以了解MongoDB分片指令的使用方法和注意事項(xiàng)。在實(shí)際應(yīng)用中要根據(jù)自己的需求進(jìn)行合理配置和調(diào)整,以達(dá)到高可用和高性能的集群效果。
相關(guān)問(wèn)題拓展閱讀:
- 如何在window下使用mongodb
如何在window下使用mongodb
1、下載MongoDB數(shù)據(jù)庫(kù);
2、將安裝文件解壓到C盤(pán)(注意:安裝路徑中不能出現(xiàn)空格),配置“環(huán)境變量”,將 %MONGODB_HOME%in 添加到“Path”中;
3、進(jìn)入DOS窗口,設(shè)置數(shù)據(jù)保存目錄(與端口)和日志輸出目錄。
DOS命令:
mongod –port –dbpath –logpath –logappend –directoryperdb
參數(shù)說(shuō)明:
–port 表示數(shù)據(jù)庫(kù)端口,默認(rèn)27017;
–dbpath 表示數(shù)據(jù)文件存儲(chǔ)路徑,一般設(shè)置為%MONGODB_HOME%data;
–logpath 表示日志文件存儲(chǔ)路徑,一般設(shè)置為%MONGODB_HOME%logongodb.log;
–logappend 表示日志追加,默認(rèn)是覆蓋;
–directoryperdb 表示每個(gè)db一個(gè)目錄;
4、完成以上設(shè)置,MongoDB已經(jīng)啟動(dòng),新開(kāi)啟DOS窗口,執(zhí)行“mongo.exe”,出現(xiàn)“MongoDB shell version: 1.8.1”表示安裝成功了。
5、目前是以無(wú)權(quán)限限制的方式啟稿穗褲動(dòng)的,你可以做任何操作。那么我們先切換到admin下,創(chuàng)建一個(gè)root用戶吧。執(zhí)行命令:
“use admin” -> “鍵簡(jiǎn)db.addUser(“root”,”root”)” -> “db.auth(“root”,”root”)”,如下圖所示:
6、把MongoDB注冊(cè)為Windows Service,讓它開(kāi)機(jī)自動(dòng)啟動(dòng);執(zhí)行命令:
mongod –bind_ip 127.0.0.1 –logpath %MONGODB_HOME%logongodb.log –logappend –dbpath %MONGODB_HOME%data –directoryperdb –auth –install
注意:
a.必須切換到bin目錄下執(zhí)行該條指令。
b.必須添加–auth用戶權(quán)限才會(huì)生效。
c.除了“–auth”和“–install”兩個(gè)參數(shù),別的參數(shù)要跟你設(shè)置用戶時(shí)啟動(dòng)服務(wù)的參數(shù)一致,尤其是“–directoryperdb”。
之一次配置完成后,一定要重啟才會(huì)有效果 重啟mongo客戶端,不輸入-u-p可以直接進(jìn)入,但是不具有任何權(quán)限。正確的訪問(wèn)方式為:mongo 數(shù)據(jù)庫(kù)名 -u 用戶名 -p。另外設(shè)置用戶
7、服務(wù)安裝成功后的界面:
8、如果安裝失敗:
刪除MongoDB服務(wù),執(zhí)行命令:
sc delete MongoDB
啟動(dòng)MongoDB服務(wù),執(zhí)行命令:
net start “MongoDB”
9、在cmd下可有兩種方法打開(kāi),net和sc,net用于打開(kāi)沒(méi)有被禁用的服務(wù),語(yǔ)法是:
啟動(dòng):net/sc start 服務(wù)名
停止:net/sc stop 服務(wù)名
10、另外,sc可用于打開(kāi)被禁用的服務(wù),語(yǔ)法是:
sc config 服務(wù)名 start= demand //手動(dòng)
sc condig 服務(wù)名 start= auto //自動(dòng)
sc config 服務(wù)名 start= disabled //禁用
注意:以上三個(gè)命令“=”號(hào)后面必須有一個(gè)空格
Mongo(也譯芒果)名字來(lái)自humongous,意思是巨大無(wú)比的,極大的。它是一個(gè)高性能,開(kāi)源,無(wú)模式的文檔型NOSQL數(shù)據(jù)庫(kù)。Mongo使用C++開(kāi)發(fā),提供了以下功能:
面向的存儲(chǔ):適合存儲(chǔ)對(duì)象及ON形式的數(shù)據(jù)。
動(dòng)態(tài)查詢:Mongo支持豐富的查詢表達(dá)式。查詢指令使用ON形式的標(biāo)記,可輕易查詢文檔中內(nèi)嵌的對(duì)象及數(shù)組。
完整的索引支持:包括文檔內(nèi)嵌對(duì)象及數(shù)組。Mongo的族局查詢優(yōu)化器會(huì)分析查詢表達(dá)式,并生成一個(gè)高效的查詢計(jì)劃。
查詢監(jiān)視:Mongo包含一個(gè)監(jiān)視工具用于分析數(shù)據(jù)庫(kù)操作的性能。
復(fù)制及自動(dòng)故障轉(zhuǎn)移:Mongo數(shù)據(jù)庫(kù)支持服務(wù)器之間的數(shù)據(jù)復(fù)制,支持主-從模式及服務(wù)器之間的相互復(fù)制。復(fù)制的主要目標(biāo)是提供冗余及自動(dòng)故障轉(zhuǎn)移。
高效的傳統(tǒng)存儲(chǔ)方式:支持二進(jìn)制數(shù)據(jù)及大型對(duì)象(如照片或圖片)。
自動(dòng)分片以支持云級(jí)別的伸縮性:自動(dòng)分片功能支持水平的數(shù)據(jù)庫(kù)集群,可動(dòng)態(tài)添加額外的機(jī)器。
MongoDB服務(wù)端可運(yùn)行在Linux、Windows或OS X平臺(tái),支持32位和64位應(yīng)用,在32位模式運(yùn)行時(shí)支持的更大文件尺寸為2GB。
常用啟動(dòng)參數(shù):
–dbpath 指定特定存儲(chǔ)目錄啟動(dòng),若目錄不存在則創(chuàng)建。默認(rèn)目錄為/data/db。例:./mongod –dbpath /var/data/mongo
–port 指定端口啟動(dòng)。默認(rèn)端口為27017。例:./mongod –port
windows 下使用方法
直接啟動(dòng):
$ bin/mongod.exe #啟動(dòng)服務(wù)器
$ bin/mongo.exe #啟動(dòng)客戶端連接
注冊(cè)為服務(wù),這樣以后開(kāi)機(jī)就可以自動(dòng)啟動(dòng)
$ bin/mongod.exe –logpath c:\data\log.log –logappend –dbpath “c:\data\db” –install #主要是install 參數(shù),要新建c:\data\log.log文件和c:\data\db目錄
刪除服務(wù)
$ bin/mongod.exe –remove
當(dāng)注冊(cè)為服務(wù)時(shí)可以Win+R打開(kāi)運(yùn)行,輸入services.msc來(lái)查看服務(wù)狀態(tài)
常見(jiàn)錯(cuò)誤
1、monge.exe客戶端連接時(shí)報(bào)錯(cuò):couldn’t connect to server 127.0.0.1 shell/mongo.js:79
這是因?yàn)閙onged.exe啟動(dòng)失敗
2、多次嘗試后monged.exe啟動(dòng)失敗,始終沒(méi)找到原因
這個(gè)錯(cuò)誤困擾了我一段時(shí)間,后來(lái)發(fā)現(xiàn)c:\data\db下有個(gè)mongod.lock鎖文件,把這個(gè)文件刪除后,重新啟動(dòng)服務(wù)器就可以了。
服務(wù)啟動(dòng)報(bào)錯(cuò): error2: system can not find the file specified.
solution:
安裝服務(wù)的時(shí)候, 你需要用 mongod.exe的 full path
C:\mongodb-win32-i386-1.8.2\bin\mongod.exe –logpath c:\mongo
db\logs\mongo.log –dbpath c:\mongodb\data\db –directoryperdb –install
to remove service
C:\mongodb-win32-i386-1.8.2\bin\mongod.exe –logpath c:\mongo
db\logs\mongo.log –dbpath c:\mongodb\data\db –directoryperdb –remove
and re open windows service windows, the original service will gone.
mongo 數(shù)據(jù)庫(kù)分片指令的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于mongo 數(shù)據(jù)庫(kù)分片指令,MongoDB分片指令詳解,如何在window下使用mongodb的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
分享名稱:MongoDB分片指令詳解(mongo數(shù)據(jù)庫(kù)分片指令)
轉(zhuǎn)載來(lái)于:http://fisionsoft.com.cn/article/dhiscig.html


咨詢
建站咨詢
