mongdb-有数据的collection分片

2020-05-16

mongodb有数据的collection不能直接shard

1、有数据的collection不能直接shard
数据库启动分片功能
sh.enableSharding("crmdb")

使用哈希碎片键分片,所以要建立hash索引;
db.customer.ensureIndex({_id:"hashed"})

对集合进行分片,对sms集合进行分片,分片键是sms的 sim字段。
sh.shardCollection("crmdb.customer", {_id:"hashed"})
虽然也分片了,但是数据只存在一个例如sharp1

2、操作步骤:
注:card和cardbak是collection

use crmdb
db.card.renameCollection( "cardbak" ); #重命名备份collection
db.createCollection( "card" ); #创建new collection
db.card.ensureIndex({_id:"hashed"}) #hash索引
sh.shardCollection("crmdb.card", {_id:"hashed"})
db.cardbak.find().forEach(function(d){ db.getSiblingDB('crmdb')['card'].insert(d); }); 复制数据
db.card.getShardDistribution(); 查看分片情况

分类:数据库 | 标签: |

相关日志

评论被关闭!