mongodb撤销集合分片
2019年08月16日 16:39:41 WFkwYu 阅读数 31更多
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
mongodb撤销集合分片
基本步骤:
停止所有有关和mongodb连接的应用程序
导出需要撤销的集合数据
禁用分片的自动平衡
删除该集合
导入集合数据
开启分片的自动平衡
1、停止所有有关和mongodb连接的应用程序(根据实际情况而定,此步忽略)
2、导出需要撤销的集合数据
$ ./bin/mongodump -h 127.0.0.1:30000 -u mongodb_backup_user -p mongodb_backup_passwd -d dbname -c collection -o /data/backup/mongod_bak/20190624-collection/
/data/mongodb/bin/mongodump -h 127.0.0.1:27017 -u myleguan -p myleguan2018 -d myleguan -c dy_challenge -o /data/mongod_bak/dy_challenge/
3、禁用分片的自动平衡
> use config
> db.settings.update( { _id: "balancer" }, { $set : { stopped: true } } , true );
> db.printShardingStatus()
1
2
3
4、删除集合
> use admin
> sh.status();
> use nswcms
> show collections;
> db.表名.drop(); -----db.collection.drop();
> show collections;
> sh.status();
1
2
3
4
5
6
7
5、导入集合
$ ./bin/mongorestore -h 127.0.0.1:30000 -u mongodb_restore_user -p mongodb_restore_passwd -d dbname /data/backup/mongod_bak/20190624-collection/collection
/data/mongodb/bin/mongorestore -h 127.0.0.1:27017 -u myleguan -p myleguan2018 -d myleguan -c dy_challenge_bak /data/mongod_bak/dy_challenge/myleguan/dy_challenge.bson --authenticationDatabase myleguan
执行 db.printShardingStatus() ,查看分片概要
6、开启分片的自动平衡
> use admin
> sh.setBalancerState(true)
> sh.status()
1
2
3
好了,这就是mongodb撤销集合分片的方法了,如有问题可与博主一起交流讨论!