我目前有一个mongoDB设置,其中包括一个mongos服务器,一个配置服务器,以及每个3个mongod(主从)服务器的2个分片。我想确保当我关闭它们时它们会干净地关闭,以免丢失任何排队的数据或服务器确定要写入的分片等等。
关闭MongoDB服务器群集的当前最佳做法是什么?
哪种顺序最好关闭,发出fsync,写锁等等。
我想编写一个脚本来自动执行此操作,以便于备份,新代码推送以及其他任何需要数据库处于一致状态的内容。
答案 0 :(得分:3)
这些最佳做法仍然在被清除。
根据您的设置,我将如何进行服务器维护。
<强>备份强>
在每个副本集中查找非主要内容。执行fsync & lock。复制,tar,备份。解锁数据库。
您应该能够在副本集上成功完成此操作。如果你真的很担心,你可以做fsync&amp;锁定然后关机。
<强>按压强>
您可能希望在某些时候压缩数据。最简单的方法是再次执行fsync&amp;锁定然后执行db.repairDatabase()。修复命令基本上会为您执行“碎片整理/压缩”。如上所述,这也可以在关闭时关闭。
代码推送
理想情况下,在代码推送方面需要保持一致。最糟糕的是,您需要管理索引创建/删除。但这确实需要单独管理,因为您不希望开发人员只是在生产数据库上随机添加索引。
<强>监控强>
这是一个更复杂的主题,但你可能想要注意诸如“谁是主人”,“每个节点上的写入吞吐量”,“我使用多少RAM”,“多少数据”等内容在节点之间转换“。现在这样做的工具有限,所以期望自己动手。