首页 > 数据库技术 > 详细

三、mysql增量备份

时间:2019-10-22 16:38:14      阅读:69      评论:0      收藏:0      [点我收藏+]

三、binlog备份方案

#!/usr/bin/env bash

#云商mysql数据库,expire_logs_days=30
#脚本实现将不再续写的mysqlbinlog文件生成压缩文件,做备份


#定义数据库目录和数据目录
mysqldir=/var/lib/mysql
datadir=${mysqldir}

#定义备份目录
databackupdir=/home/shenliang
BkupDir=${databackupdir}/backup

if [[ ! -d ${BkupDir} ]]; then
mkdir ${BkupDir} -p
fi

#定义邮件正文文件
emailfile=${databackupdir}/email.txt

#定义备份日志文件
logfile=${databackupdir}/mysqlbackup.log

echo "" > ${emailfile}
echo $(date +"%Y-%m-%d %H:%M:%S") >> ${emailfile}

#刷新binlog日志文件
mysqladmin -u root -p‘‘ flush-logs

cd ${datadir}
#得到二进制日志列表
filelist=`cat mysql-bin.index`
icounter=0

for file in ${filelist}
do
icounter=`expr ${icounter} + 1`
done

nextnum=0
ifile=0

for file in ${filelist}
do
binlogname=${file}
nextnum=`expr ${nextnum} + 1`

#跳过最后一个二进制日志 (数据库当前使用的二进制日志文件)
if [[ ${nextnum} -eq ${icounter} ]]; then
echo "$(date +"%Y-%m-%d %H:%M:%S") Skip lastest!" >> ${emailfile}
else
dest=${BkupDir}/${binlogname}.tar.bz2
#跳过已经备份的二进制日志文件
if [[ -e ${dest} ]]; then
echo "$(date +"%Y-%m-%d %H:%M:%S") Skip exist ${binlogname}!" >> ${emailfile}
else
#压缩并备份日志文件到备份目录
tar -jcvf ${dest} ${binlogname}
if [[ "$?" == 0 ]]; then
ifile=`expr ${ifile} + 1`
echo "$(date +"%Y-%m-%d %H:%M:%S") ${binlogname} Backup Success!" >> ${emailfile}
fi
fi
fi
done

if [[ ${ifile} -eq 0 ]]; then
echo "$(date +"%Y-%m-%d %H:%M:%S") No Binlog Backup!" >> ${emailfile}
else
echo "$(date +"%Y-%m-%d %H:%M:%S") Backup $ifile File(s)." >> ${emailfile}
echo "$(date +"%Y-%m-%d %H:%M:%S") Backup MySQL Binlog OK!" >> ${emailfile}
fi

#写日志文件
echo "-------------------------------------------------" >> ${logfile}

#发送邮件通知
cat ${emailfile} >> ${logfile}
email=shen.liang@eascs.com
#cat ${emailfile} | mail -s "Mysql Binlog Backup" ${email}

三、mysql增量备份

原文:https://www.cnblogs.com/longlongaway/p/11720565.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!