第45章:MongoDB-集群--Sharding(分片)--分片的管理

时间:2023-03-09 23:17:28
第45章:MongoDB-集群--Sharding(分片)--分片的管理
①列出所有的Shard
db.runCommand({“listshards”:1});
②查看分片信息
db.printShardingStatus();
③判断是否分片
db.runCommand({isdbgrid:1});
返回ok为1的就是分片
④查看集群信息摘要

sh.status()命令可以查看分片、数据库和分片集合的摘要信息,如果块的数量少的话,还会给出块的信息,否则它只给出集合的片键,以及每个分片的块数。

⑤查看连接统计

可使用connPoolStats命令来查看mongos和mongod之间的连接信息,如:db.adminCommand({"connPoolStats":1});

⑥检查配置信息

1:config.shards :记录着所有分片的信息

2:config.databases :记录集群中所有数据库的信息

3:config.collections :记录所有分片集合的信息

4:config.chunks :记录集合中所有块的信息

5:config.changelog :记录集群的操作

6:config.tags :记录分片的标签

第45章:MongoDB-集群--Sharding(分片)--分片的管理

⑦限制连接数量

一个mongos或者mongod最多允许20000个连接,可在mongos的命令行配置中使用maxConns选项来控制mongos能创建的连接数量。

⑧添加分片服务器
这个前面学过了,就是addShard命令
⑨删除分片

通常来说,不应从集群中删除分片,即使加多了,也可以留在那儿,以后会用得上,如果非要删除分片的话,可以按照如下操作:

1:首先保证均衡器是打开的,因为删除分片的时候,均衡器会负责将待删除分片的数据迁移至其它分片

2:执行removeShard命令,示例如下:

use admin 最好切换到mongos的admin数据库再操作,然后:

db.runCommand({"removeShard":"myrep2"});

如需要查看删除情况,再次执行上一条命令,直到remaining的chunks为0。

3:所有块完成转移过后,如果仍有数据库将该分片作为主分片,需要在删除分片前将这些数据库移除掉,通常会提示:“note” : “you need to drop or movePrimarythese databases”,示例如下:

db.adminCommand({"movePrimary":"mydb2","to":"myrep1"});

4:然后再次执行removeShard命令,直到状态显示completed