彻底关闭Sharded MongoDB集群

时间:2010-12-02 04:59:25

标签: mongodb cluster-analysis sharding

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

关闭MongoDB服务器群集的当前最佳做法是什么?

哪种顺序最好关闭,发出fsync,写锁等等。

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

1 个答案:

答案 0 :(得分:3)

这些最佳做法仍然在被清除。

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

<强>备份

在每个副本集中查找非主要内容。执行fsync & lock。复制,tar,备份。解锁数据库。

您应该能够在副本集上成功完成此操作。如果你真的很担心,你可以做fsync&amp;锁定然后关机。

<强>按压

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

代码推送

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

<强>监控

这是一个更复杂的主题,但你可能想要注意诸如“谁是主人”,“每个节点上的写入吞吐量”,“我使用多少RAM”,“多少数据”等内容在节点之间转换“。现在这样做的工具有限,所以期望自己动手。