mongodb数据库自动备份

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




你可能感兴趣的:(---数据库)