千家信息网

MongoDB将collection变为shard collection

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,MongoDB随着业务量增长,可以把之前不是分片的集合变为分片集合,但是要注意的是,一旦指定shard key以后就无法直接更改了。下面为从添加shard server到shard key具体操作步骤
千家信息网最后更新 2026年11月02日MongoDB将collection变为shard collection

MongoDB随着业务量增长,可以把之前不是分片的集合变为分片集合,但是要注意的是,一旦指定shard key以后就无法直接更改了。下面为从添加shard server到shard key具体操作步骤

1)添加shard server
添加情境:

  • 1.1)数据存储目录不够
  • 1.2)无法满足当前生产写操作
  • 1.3)chunk太多

3)将集合变为分片集合

添加分片的键需要创建索引,否则报错please create an index that starts with the shard key before sharding

根据上面错误提示要在分片key上面创建索引,该索引要在对应库下建立,如果在mongos的admin库下建立会报错:"errmsg" : "{ configs1/10.9.33.70:26017,10.9.161.65:26017: \"result without error message returned : {}\" }"

4)手动迁移数据

如果开启balance,数据会自动打散。如果没有开启,头一次需要自己手动迁下数据:
5
)删除分片集合的分片

sh.setBalancerState(true);保证balance是开启的,才会将被删除的分片上的数据会自动迁移到其他分片上,draining" : true, --正在迁移数据

这个命令可以重复执行以便查看迁移的状态,remaining 字段表示剩余数据块的数量

6)删除未分片的主分片

数据库未分片,该数据库就会选择一个分片作为主分片。Db.collection.stats()中"primary" : "mg-test-shard01"显示就是主分片,删除这个主分片,需要先将集合主分片改为其他分片,然后才能删除主分片

点击(此处)折叠或打开

  1. db.runCommand( { movePrimary: "db_name", to: "new_shard" })
  2. db.runCommand({removeshard:"mg-test-shard01/10.9.161.65:27019,10.9.33.70:27019"})


数据 索引 数据库 不够 业务 业务量 命令 字段 就是 情境 手动 数量 正在 步骤 状态 目录 错误 会报 先将 保证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 北京路客互联网科技有限公司 为想互联网科技怎么样 国智互联网科技 易通互联网络科技有限公司 顺网科技2021年互联网排名 互联网科技生活的内容 青岛中康互联网医疗科技有限公司 科技互联网的估值 移动互联网科技股 崇明区互联网教育科技诚信经营 千方科技属于互联网企业吗 互联网科技与大数据专业 互联网科技如何创业 广州富喜互联网络科技 云南省自由互联网科技有限公司 全球科技与互联网公司市值变化 互联网高科技行业有哪些企业 互联网公司属于科技吗 互联网大会出现的黑科技 江苏根荣互联网科技 互联网科技开发公司 高科技与互联网 互联网还是高科技吗 互联网行业科技股 互联网科技创新的路径 本届互联网大会上的黑科技 陕西云淼互联网科技公司 长沙渺峰互联网科技有限公司 陕西彩京云互联网科技有限公司
0