mongodb数据库自动备份

来源:互联网 发布:中国淘宝第一村 编辑:程序博客网 时间:2024/06/06 00:22

        数据对我们现在应用系统越来越重要,这就驱使我们必须去做的一件事就是冗余备份,保证数据的完整性和可恢复性。既然如此重要,我们就必须去备份,但如果手动去做的话,不仅浪费时间,也可能导致数据丢失。最好的方式当然是自动实现备份,本次主要说mongodb数据库的自动备份。

       实现思路:

      1)创建备份文件存放的文件夹

              2)编译脚本实现备份

              3)设置定时任务实现定时备份


1、创建mongodb备份目录

       mkdir -p /mongodb/data/mongodb_bak/mongodb/data/mongodb_bak (临时备份文件存放地址)

       mkdir -p /mongodb/data/mongodb_bak/mongodb/data/mongodb_list  (备份文件存放地址)

       

2、新建mongodb数据库备份脚本

 

1.#!/bin/bash  2.#backup MongoDB  3.  4.#mongodump命令路径  5.DUMP=/usr/local/mongodb/bin/mongodump  6.#临时备份目录  7.OUT_DIR=/mongodb/data/mongodb_bak/mongodb_bak_now  8.#备份存放路径  9.TAR_DIR=/mongodb/data/mongodb_bak/mongodb_bak_list  10.#获取当前系统时间  11.DATE=`date +%Y_%m_%d`  12.#数据库账号  13.DB_USER=user  14.#数据库密码  15.DB_PASS=123  16.#DAYS=15代表删除15天前的备份,即只保留近15天的备份  17.DAYS=15  18.#最终保存的数据库备份文件  19.TAR_BAK="mongodb_bak_$DATE.tar.gz"  20.  21.cd $OUT_DIR  22.rm -rf $OUT_DIR/*  23.mkdir -p $OUT_DIR/$DATE  24.#备份全部数据库  25.$DUMP -h 15.62.32.112:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE  26.#压缩为.tar.gz格式  27.tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE  28.#删除15天前的备份文件  29.find $TAR_DIR/ -mtime +$DAYS -delete  30.  31.exit  

3、修改文件属性

chmod +x mongoDB_bak.sh


4、修改/etc/crontab,添加定时任务

       vi /etc/crontab

      

#每星期六晚上0:0开始执行MongoDB数据库备份脚本0 0 * * 6 root /mongodb/data/mongodb_bak/mongoDB_bak.sh 




原创粉丝点击