文章目录
-
-
- 一、登录MongoDB查询数据库及集合分片情况
- 二、登录MongoDB先创建副本数据库并设置数据库及集合分片功能
- 三、登录MongoDB查询emop_slinkmain数据库main_repetition集合和
- [四、使用mongodump压缩备份emop_slinkmain数据库中的main_repetition集合和shard_repetition 集合](#四、使用mongodump压缩备份emop_slinkmain数据库中的main_repetition集合和shard_repetition 集合)
- [五、使用mongorestore解压恢复emop_slinkmain数据库中的main_repetition集合和shard_repetition 集合](#五、使用mongorestore解压恢复emop_slinkmain数据库中的main_repetition集合和shard_repetition 集合)
- 六、登录MongoDB新旧集合数据行数是否一样
- 七、删除库、删除集合、清空集合所有数据
-
提示:MongoDB分片集群数据库名称不能直接重命名(MongoDB副本集或MongoDB单机可以直接重命名数据库名称),如果MongoDB分片集群数据库名称需要重命名,则需要创建一个新的数据库并把数据库备份导入。
MongoDB分片集群主机规划
主机名称 | 主机IP | CPU | 内存 | mongos端口 | config端口 | share1端口 | share2端口 | share3端口 | 操作系统及软件版本 |
---|---|---|---|---|---|---|---|---|---|
mongodb01 | 192.168.91.61 | 2*4 | 16GB | 27017 | 27019 | 27101 | 27102 | 27103 | CentOS 7.9 mongo 4.4.29 mongos 4.4.29 mongod 4.4.29 mongosh 2.2.29 |
mongodb02 | 192.168.91.62 | 2*4 | 16GB | 27017 | 27019 | 27101 | 27102 | 27103 | CentOS 7.9 mongo 4.4.29 mongos 4.4.29 mongod 4.4.29 mongosh 2.2.29 |
mongodb03 | 192.168.91.63 | 2*4 | 16GB | 27017 | 27019 | 27101 | 27102 | 27103 | CentOS 7.9 mongo 4.4.29 mongos 4.4.29 mongod 4.4.29 mongosh 2.2.29 |
实验场景:
现在需要把emop_elinkmain数据库中main_repetition集合和shard_repetition 集合复制到另外一个新的数据库emop_elinkmain_new进行测试(同一个MonogDB分片集群操作)。
一、登录MongoDB查询数据库及集合分片情况
bash
mongosh --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111"
### 查看分片情况
sh.status();
二、登录MongoDB先创建副本数据库并设置数据库及集合分片功能
bash
mongosh --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111"
### 进入到admin数据库
use admin
### 创建副本数据库分片功能(默认自动分片)
db.runCommand( { enablesharding : "emop_elinkmain_new" } );
### 设置副本数据库main_repetition集合和hard_repetition 集合分片功能,_id为片键使用hashed哈希算法
db.runCommand({ shardcollection : "emop_elinkmain_new.main_repetition",key : {"_id": "hashed"}} );
db.runCommand({ shardcollection : "emop_elinkmain_new.shard_repetition",key : {"_id": "hashed"}} );
### 查看分片情况
sh.status();
三、登录MongoDB查询emop_slinkmain数据库main_repetition集合和
bash
shard_repetition 集合数据行数
mongosh --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111"
### 进入到emop_elinkmain旧数据库查看main_repetition、shard_repetition三个集合的数据行数
use emop_elinkmain
db.main_repetition.stats().count;
db.shard_repetition.stats().count;
四、使用mongodump压缩备份emop_slinkmain数据库中的main_repetition集合和shard_repetition 集合
bash
mongosh --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111"
mongodump --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111" --authenticationDatabase admin -d emop_elinkmain -c main_repetition -o /data/backup/ --gzip
mongodump --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111" --authenticationDatabase admin -d emop_elinkmain -c shard_repetition -o /data/backup/ --gzip
五、使用mongorestore解压恢复emop_slinkmain数据库中的main_repetition集合和shard_repetition 集合
bash
mongosh --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111"
mongorestore --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111" --authenticationDatabase admin -d emop_elinkmain_new -c main_repetition --dir=/data/backup/emop_elinkmain/main_repetition.bson.gz --gzip
mongorestore --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111" --authenticationDatabase admin -d emop_elinkmain_new -c shard_repetition --dir=/data/backup/emop_elinkmain/shard_repetition.bson.gz --gzip
六、登录MongoDB新旧集合数据行数是否一样
bash
mongosh --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111"
### 进入到emop_elinkmain_new新数据库查看main_repetition、shard_repetition三个集合的数据行数
use emop_elinkmain_new
db.main_repetition.stats().count;
db.shard_repetition.stats().count;
七、删除库、删除集合、清空集合所有数据
bash
mongosh --host 192.168.91.61 --port 27017 -u "root" -p "AAAaaa111"
### 删除emop_elinkmain数据库(所有集合都会删除)
use emop_elinkmain
db.dropDatabase()
### 删除emop_elinkmain数据库main_repetition集合、shard_repetition集合
use emop_elinkmain
db. main_repetition.drop()
db. shard_repetition.drop()
### 清空emop_elinkmain数据库main_repetition集合和shard_repetition集合所有数据
use emop_elinkmain
db. main_repetition.deleteMany({})
db. shard_repetition.deleteMany({})