3

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

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

最好按照哪个顺序关闭、发出 fsync、写锁等。

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

4

1 回答 1

3

这些最佳实践仍在真正被清除。

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

备份

在每个副本集中找到一个非主副本。执行fsync & lock。复制、tar、备份。解锁数据库。

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

压缩

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

代码推送

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

监控

这是一个更复杂的话题,但您可能需要关注诸如“谁是主节点”、“每个节点上的写入吞吐量”、“我使用了多少 RAM”、“有多少数据在节点”。目前执行此操作的工具有限,因此请自行开发。

于 2010-12-02T20:51:39.230 回答