我们的应用程序会记录大量数据,因此我们必须将数据存档并每周将其从生产计算机上移除一次。现在这是一个手动过程,但我正在自动化它。基本上,我使用'mongodump'并压缩输出,然后将其移动到云中并删除生产机器上记录的数据。
我的问题是在删除数据库中的所有文件之前,如何确保mongodump成功?下面的基本伪代码:
if(mongodumpIsSuccessful)
{
//delete all document in log collection
}
else
{
//handle failed mongodump
}
我查看了文档,但似乎找不到任何东西。有没有更好的方法来完成我不想使用mongodump的尝试?谢谢。它
答案 0 :(得分:0)
我正在为转储部分使用bash脚本,然后,如果成功,则通过Java应用程序执行删除(因为在我们的用例中,我们需要从几个相关集合中删除)。
mongodump --db ${DB} --host ${HOST} --collection $1 \
--out ${ARCHIVE_PATH} \
--query <query> \
>> $LOG 2>&1
if [ $? -ne 0 ]; then
echo "mongodump failed for collection $1, exiting" &>> $LOG
cat $LOG | mail -s "$HOST/$DB mongo archive & delete" -r ${FROM} ${MAILTO}
exit 1
fi
java -cp ".:lib/*" DeleteBeforeDate ${DATE} ${DB} ${HOST} >> $LOG 2>&1
RESULT=$?
if [ $RESULT -eq 0 ]; then
rm $LOG
else
cat $LOG | mail -s "$HOST/$DB mongo archive & delete" -r ${FROM} ${MAILTO}
rm $LOG
exit ${RESULT}
fi
exit 0