Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
干净地关闭分片MongoDB群集_Mongodb_Cluster Analysis_Sharding - Fatal编程技术网

干净地关闭分片MongoDB群集

干净地关闭分片MongoDB群集,mongodb,cluster-analysis,sharding,Mongodb,Cluster Analysis,Sharding,我目前有一个mongoDB设置,其中包括一个mongos服务器、一个配置服务器和3个mongod(主从)服务器的2个碎片。我希望确保当我关闭它们时,它们会干净地关闭,以免丢失队列中的任何数据,或者在服务器确定要写入的碎片时,等等 关闭MongoDB服务器集群的当前最佳实践是什么 关闭、发出fsync、写锁等的最佳顺序是什么 我想编写一个脚本来自动执行此操作,以方便备份、新代码推送,以及任何其他需要数据库处于一致状态的操作。这些最佳实践仍在清理中 根据您的设置,我将如何进行服务器维护 备份 在每个

我目前有一个mongoDB设置,其中包括一个mongos服务器、一个配置服务器和3个mongod(主从)服务器的2个碎片。我希望确保当我关闭它们时,它们会干净地关闭,以免丢失队列中的任何数据,或者在服务器确定要写入的碎片时,等等

关闭MongoDB服务器集群的当前最佳实践是什么

关闭、发出fsync、写锁等的最佳顺序是什么


我想编写一个脚本来自动执行此操作,以方便备份、新代码推送,以及任何其他需要数据库处于一致状态的操作。

这些最佳实践仍在清理中

根据您的设置,我将如何进行服务器维护

备份

在每个副本集中查找非主副本。执行一项任务。拷贝,tar,备份。解锁数据库

您应该能够在副本集上成功地执行此操作。如果你真的担心,你可以做fsync&lock,然后关机

压缩

您可能希望在某个时候压缩数据。最简单的方法是再次执行fsync&lock,然后执行db.repairDatabase()。修复命令基本上会为您执行“碎片整理/压缩”。如上所述,这也可以在关机时关闭

代码推送

理想情况下,在代码推送方面几乎没有什么需要保持一致的地方。最糟糕的情况是,您需要管理索引的创建/删除。但这确实需要单独管理,因为您不希望开发人员只是在生产数据库上随机添加索引

监控


这是一个更复杂的主题,但您可能需要注意“谁是主控者”、“每个节点上的写入吞吐量”、“我使用了多少RAM”、“节点之间移动了多少数据”等内容。目前用于执行此操作的工具有限,因此请自行启动。

我不确定您的确切需求,但我相信最好的做法是不关闭任何碎片。如果出于备份目的,最好取下从服务器并备份它们,这不是一个选项吗?这是什么意思“每个3个mongod(主从)服务器的2个分片”你说的是2个分片,其中每个分片由一个3节点副本集组成?是的,这就是我的意思,很抱歉。