mysql、mongoDB自动化备份脚本与恢复命令

mysql自动备份脚本

vim /var/tool/mysqlbackup.sh



#!/bin/bash
shijie=`date +%Y%m%d%H`
backDatabaseDB=database$shijie.sql
backDatabaseFile=database$shijie.tar.gz
cd /var/mysql/back/ 
/usr/local/mysql/bin/mysqldump  -uroot -p123456 --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob --single-transaction database > $backDatabaseDB
tar czf  $backDatabaseFile  $backDatabaseDB
rm $backDatabaseDB -rf 

定时任务

00 * * * * root  /var/tool/mysql/backup.sh   #每小时0分执行
00 5    * * *   root   find /var/mysql/back/ -mtime +0 -type f -exec rm -f {} \; #每天5点整删除24小时以前的文件

mongo自动备份脚本

#!/bin/bash
shijie=`date +%Y%m%d%H`
backmongodbFile=mongodb$shijie.tar.gz
cd /var/mongo/back/
/usr/local/mongo/bin/mongodump -h 127.0.0.1 --port 27017 -u mongo -p 123456  -d my_mongodb -o my_mongodb_dump/
tar czf $backmongodbFile  my_mongodb_dump/
rm my_mongodb_dump -rf 

定时执行与删除与mysql类似

备份后恢复 mysql恢复:

mysql -uroot -p 123456 database < database.sql

mongo恢复:

/usr/local/mongo/bin/mongorestore -d my_mongodb my_mongodb_dump/my_mongodb/*            指向每个文件
/usr/local/mongo/bin/mongorestore -h 127.0.0.1 --port 27017 -- drop --directoryperdb my_mongodb_dump/my_mongodb 指向一个目录

解释:加--drop 参数会在导入数据前先清空数据