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

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


咨詢
建站咨詢
