-
监控策略:使用MongoDB提供的监控工具,如
mongostat
和mongotop
,来捕获数据库操作类型的计数,以及实例的读写活动。这些工具可以帮助你了解服务器上的负载分布和数据库活动是否符合预期。 -
配置服务器:配置数据库保留一个地图识别哪些文件是哪个分片。集群在分片之间移动块时会更新此映射。当无法访问配置服务器时,某些分片操作将变得不可用。因此,需要监控配置服务器,以确保群集保持良好的平衡并且
mongos
实例可以重新启动。 -
平衡和块分布:最有效的分片群集部署会均衡分片之间的块。MongoDB具有一个后台平衡器进程,用于分配数据,以确保始终在各个分片之间最佳地分配块。通过
db.printShardingStatus()
或sh.status()
命令可以返回整个集群的概述,包括数据库名称和块列表。 -
耗时长的锁:检查数据库的锁定状态,使用
mongo shell
连接到mongos
实例,并发出相关命令来查看分片数据库上的所有未完成锁。 -
存储节点看门狗程序:从MongoDB 4.2开始,MongoDB社区版和企业版均提供了Storage Node Watchdog存储节点看门狗。这个看门狗程序监视MongoDB目录以检测文件系统无响应的情况。
-
检查集群状态:使用
sh.status()
查看分片信息、数据库信息、集合信息。如果数据块较多时,使用sh.status(true)
来获取更详细的信息。同时,检查配置信息,确保配置服务器运行正常。 -
监控命令:使用
mongostat
命令来实时监控MongoDB的状态,例如使用mongostat --host 127.0.0.1 --port 27017 -n 3
来获取状态信息。 -
副本集状态:使用
rs.status()
命令来检查副本集的状态,确保副本集正常运行,并且数据同步正常。 -
集群的自动分片和迁移:检查集群是否能够自动进行数据的拆分和迁移,这是分片集群正常运行的重要指标。
-
重新启动分片集群:了解如何正确地停止和启动分片集群,包括配置服务器、分片副本集和
mongos
路由器,以及验证集群可访问性。