注:本文是研究Mongodb分布式數據存儲的副產品,通過本文的相關步驟可以將一個大表中的數據分布到幾個mongo服務器上。
MongoDB的1.6版本中auto-sharding功能基本穩定并可以嘗試放到生產環境下使用。因為其是auto-sharding,即mongodb通過mongos(一個集群環境配置工具)自動建立一個水平擴展的數據庫集群系統,將數據庫分表存儲在sharding的各個節點上。
一個mongodb集群包括一些shards(包括一些mongod進程),mongos路由進程,一個或多個config服務器
(注:本文的測試用例需求64位的mongo程序,因為我在32位的mongo沒成功過)。
下面是一些相關詞匯說明:
Shards : 每一個shard包括一個或多個服務和存儲數據的mongod進程(mongod是MongoDB數據的核心進程)典型的每個shard開啟多個服務來提高服務的可用性。這些服務/mongod進程在shard中組成一個復制集
Chunks: Chunk是一個來自特殊集合中的一個數據范圍,(collection,minKey,maxKey)描敘一個chunk,它介于minKey和maxKey范圍之間。例如chunks 的maxsize大小是100M,如果一個文件達到或超過這個范圍時,會被切分到2個新的chunks中。當一個shard的數據過量時,chunks將會被遷移到其他的shards上。同樣,chunks也可以遷移到其他的shards上
Config Servers : Config服務器存儲著集群的metadata信息,包括每個服務器,每個shard的基本信息和chunk信息Config服務器主要存儲的是chunk信息。每一個config服務器都復制了完整的chunk信息。
接著看一下要配置的測試環境信息:
模擬2個shard服務和一個config服務, 均運行在10.0.4.85機器上,只是端口不同
Shard1:27020
Shard2:27021
Config:27022
Mongos啟動時默認使用的27017端口
在C,D,E磁盤下分別建立如下文件夾:
mongodbin
mongodbdb
然后用CMD命令行依次打開相應文件夾下的mongd文件:
c:mongodbinmongod --dbpath c:mongodbdb --port 27020
d:mongodbinmongod --dbpath d:mongodbdb --port 27021
e:mongodbinmongod --configsvr --dbpath e:mongodbdb --port 27022 (注:config配置服務器)
啟動mongos時,默認開啟了27017端口
e:mongodbinmongos --configdb 10.0.4.85:27022
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈