mongodb 分片叢集建立分片集合
1.建立資料庫,直接use 即可,沒有的話,如果你建立集合了,他就自動建立了!
use liuwenhe
2.插入資料,如果hezi集合不存在,則自動建立
for (var i = 0; i < 100; i++) { db.hezi.insert({name: i}); }
3.為hezi集合的name列新增索引,因為如果要以name列作為分片鍵,需要有索引;
如果集合是空的,可以不建立索引直接進行下一步的分片,會自動建立索引;如果集合不為空,必須為分片建建立索引才行!,如果你要以hash規則分片,需要建立hash索引!
mongos> db.hezi.createIndex({"name":1})
mongos> db.hezi.createIndex({name:'hashed'}); 建立hash索引
4.為資料庫開啟分片,這樣才能對資料庫liuwenhe下的集合做分片!
mongos> sh.enableSharding("liuwenhe");
5.開啟集合hezi的分片!
1:升序,-1降序,hashed:雜湊分佈
sh.shardCollection("liuwenhe.hezi",{name:1}) ----基於值的分片
sh.shardCollection("liuwenhe.hezi", { "name" : "hashed" }) ----hash規則分片
6.檢視集合是否開啟分片:
mongos>use liuwenhe
mongos> db.hezi.stats().sharded
true
7.sh.status() 檢視分片的資訊:
可以看到liuhe庫的主分片是s1092111427021,然後liuhe.hezi這個集合的分片鍵是name列升序,liuhe.hezi這個集合目前就1個chunk,在s1092111427021節點上,所以這個時候你去別的節點,例如s1092111427020上看,是沒有這個庫和這個集合的,當你向liuhe.hezi插入資料,直到觸發發生chunk遷移之後,這時候在別的分片才會有可能有這個集合!
mongos>sh.status()
{ "_id" : "liuwehehe", "primary" : "s1092111427021", "partitioned" : true, "version" : { "uuid" : UUID("46373baa-3f93-42c3-a7fd-51225ef00636"), "lastMod" : 1 } }
liuwenhe.hezi
shard key: { "name" : 1 }
unique: true
balancing: true
chunks:
s1092111427021 1
{ "name" : { "$minKey" : 1 } } -->> { "name" : { "$maxKey" : 1 } } on : s1092111427021 Timestamp(1, 0)
8.當資料超過1個chunk之後,均勻分佈在多個節點上,如下所示:
不斷插入資料,直到觸發chunk遷移:
for (var i = 0; i < 1000000000000000; i++) { db.hezi.insert({name: i}); }
不斷檢視分片叢集狀態,如下所示三個節點上基本均勻的分佈了 20、19、20個chunk:
mongos>sh.status()
liuwenhe.hezi
shard key: { "name" : 1 }
unique: false
balancing: true
chunks:
s1092111427019 20
s1092111427020 19
s1092111427021 20
至此分片集合建立完畢,並且也分片成功
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-2669568/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 搭建MongoDB分片叢集MongoDB
- MongoDB 分片叢集搭建MongoDB
- mongodb 分片叢集設定MongoDB
- MongoDB分片叢集常用操作MongoDB
- 高可用mongodb叢集(分片+副本)MongoDB
- MongoDB Sharding(二) -- 搭建分片叢集MongoDB
- Mongodb分散式叢集副本集+分片MongoDB分散式
- linux下Mongodb叢集搭建:分片+副本集LinuxMongoDB
- akka 叢集分片
- 分片叢集元件元件
- 部署分片叢集
- 【Mongodb】分片複製集環境新增新的分片MongoDB
- MongoDB 4.2分片叢集搭建及與3.4分片叢集搭建時的一些異同MongoDB
- MongoDB分片叢集節點狀態stateStr:RECOVERING解決MongoDB
- MongoDB 分片叢集均衡器導致的效能下降MongoDB
- 分散式文件儲存資料庫之MongoDB分片叢集分散式資料庫MongoDB
- MongoDB mongoshake 遷移分片到複製集合MongoDB
- 分片叢集平衡器Balancer
- MongoDB 分片管理MongoDB
- mongos分片叢集管理和運維Go運維
- mongodb之shard分片MongoDB
- 管理 ES 叢集:分片設定及管理
- akka-typed(7) - cluster:sharding, 叢集分片
- 02 . MongoDB複製集,分片集,備份與恢復MongoDB
- Elasticsearch高階之-叢集搭建,資料分片Elasticsearch
- 【Mongodb】往分片複製集新增複製成員MongoDB
- mongodb複製集(replica sets)+分片(sharding)環境搭建MongoDB
- redis叢集之分片叢集的原理和常用代理環境部署Redis
- MongoDB分片鍵選擇指南MongoDB
- mongodb分片物理搬遷方案MongoDB
- MongoDB最新4.2.7版本三分片叢集修改IP實操演練MongoDB
- Elasticsearch 7.x 之節點、叢集、分片及副本Elasticsearch
- GBase XDM(單機/分片叢集)資料 庫查詢
- 【最佳實踐】高可用mongodb叢集(1分片+3副本):規劃及部署MongoDB
- MongoDB 分片鍵的選擇與案例MongoDB
- mongodb分片(sharding)搭建、應用及管理MongoDB
- MongoDB4.2 分片掃盲說明MongoDB
- ES 筆記三十一:分片與叢集的故障轉移筆記