生产如何定时备份数据库

1.在生产服务器下面,在 /mydata/mysqlBackUp/bin/
目录下新建backup.sh文件,文件内容如下:

#!/bin/bash
DATE=`date +%Y-%m-%d`
cd /home/backup/

##配置全局变量
#数据库信息
MYSQL="mysql -uroot -p123456 -hlocalhost"
#数据库用户名
dbuser="root"
#数据库密码
dbpasswd="123456"
#数据库名
dbname="mysql"
#日志备份路径
logpath="/home/backup"
#数据备份路径
datapath="/home/backup"



##开始备份时间
DAT=`date +%H:%M:%S`
echo "===========$DATE========">>${logpath}/backup.log
echo "start bak:$DAT">> ${logpath}/backup.log


##删除7天之前的备份文件
find /home/backup/ -mtime +6 -name "*.bz2"|xargs rm -f

## 循环备份每个数据库里面的表
cat $dbname|while read db
do
 ##开通下面两个可支持重跑
 #rm -f $DATE.$db.bz2
 rm -rf $db
 
 mkdir "$db"
 cd $db

 for table in `$MYSQL $db -e "show tables"|sed '1d'`
 do
  #echo "$table" > $table.sql
  mysqldump -u$dbuser -p$dbpasswd $db $table > $table.sql;
 done
 ct=`ls|wc -l`
 cd ../

 echo "$db   count:    $ct" >> ${logpath}/backup.log
 tar -jcvf $DATE.$db.bz2 $db
# rm -rf $db
done

DAT=`date +%H:%M:%S`
echo "end time :  $DAT" >> ${logpath}/backup.log
echo "                               " >> ${logpath}/backup.log

2.设置定时备份任务: crontab -e

00 03 * * *  /mydata/mysqlBackUp/bin/backup.sh

3.查看定时备份任务: crontab -l

说明:

  1. 备份压缩文件存放目录: /mydata/mysqlBackUp

  2. 备份文件命名规则: {备份日期}.{数据库名}.bz2

  3. 备份最新sql文件存放目录: /mydata/mysqlBackUp/{数据库名}

  4. 备份日志文件: /mydata/mysqlBackUp/log/backup.log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值