MongoDB:如何在删除集合之前确保mongodump在归档过程中取得成功?

时间:2014-04-07 18:25:31

标签: mongodb mongodump

我们的应用程序会记录大量数据,因此我们必须将数据存档并每周将其从生产计算机上移除一次。现在这是一个手动过程,但我正在自动化它。基本上,我使用'mongodump'并压缩输出,然后将其移动到云中并删除生产机器上记录的数据。

我的问题是在删除数据库中的所有文件之前,如何确保mongodump成功?下面的基本伪代码:

if(mongodumpIsSuccessful)
    {
        //delete all document in log collection
    }

else
    {
        //handle failed mongodump
    }

我查看了文档,但似乎找不到任何东西。有没有更好的方法来完成我不想使用mongodump的尝试?谢谢。它

1 个答案:

答案 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