【发布时间】:2013-07-22 17:59:26
【问题描述】:
我的 mongodb 应该每天运行一次备份。它由一个主设备和两个从设备运行。
我需要备份其中一个(因为它们只是副本)
最简单的方法是仅在一个实例上运行备份脚本。但是如果这个实例关闭了怎么办?所以我认为最好在主服务器上运行备份脚本,因为总是有一个主服务器,即使其他主服务器之一关闭。
所以我需要在 cron.daily 中调整我的备份脚本,以询问 mongodb 是否是当前的 master。
我该怎么做?
【问题讨论】:
我的 mongodb 应该每天运行一次备份。它由一个主设备和两个从设备运行。
我需要备份其中一个(因为它们只是副本)
最简单的方法是仅在一个实例上运行备份脚本。但是如果这个实例关闭了怎么办?所以我认为最好在主服务器上运行备份脚本,因为总是有一个主服务器,即使其他主服务器之一关闭。
所以我需要在 cron.daily 中调整我的备份脚本,以询问 mongodb 是否是当前的 master。
我该怎么做?
【问题讨论】:
您可以使用--eval 选项到mongo 来执行此操作:
MASTER=`mongo --quiet --eval "db.isMaster().ismaster"`
然后在你的shell脚本中测试MASTER == "true"。
【讨论】: