定期备份数据库脚本

#!/bin/bash
MasterIp=*
USER=root
PORT=3306
PASSWD=000000
DATE=`date +%Y-%m-%d`
#DATE_NOW=`date +%Y-%m-%d.%H%M`
DATE_NOW=`date +%Y-%m-%d`
OLDDATE=`date +%Y-%m-%d -d "30 days ago"` 
#全表备份
BACKUPDIR=/data/mysql_backup/fulltable
#单表tb_trcevt备份
datapath='/data/mysql_backup/tb_trcevt'
logpath='/data/mysql_backup/log'
backtable=tb_trcevt
backtable_db=bim

#binlog
BINLOG=/data/binlogserver
DATA_DIR_binlog=/data/mysql/binlog
PATH=/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH

function stop() {
   ps uax | grep mysqlbinlog | grep raw | awk '{print $2}' | xargs kill
}

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

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

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

cd ${BACKUPDIR}/
echo ”备份时间为${DATE},开始----” >> ${logpath}/dbback.log
mysqladmin -u${USER} -p${PASSWD} flush-logs
#mysqldump -u${USER} -p${PASSWD} -h${MasterIp} --flush-logs -A -R -E --triggers --master-data=2 --delete-master-logs  --single-transaction > full_${DATE_NOW}.sql
#mysqldump -u${USER} -p${PASSWD} -h${MasterIp} --flush-logs -A -R -E --triggers --master-data=2   --single-transaction > full_${DATE_NOW}.sql
mysqlpump -u${USER} -p${PASSWD} -h${MasterIp}  --single-transaction --default-character-set=utf8 --compress-output=LZ4 --default-parallelism=3  -A --routines --events --triggers > full_${DATE_NOW}.sql

if [[ $? == 0 ]];then
        cd $BACKUPDIR
        #为节约硬盘空间,将数据库压缩
        tar zcvf full_${DATE_NOW}.tar.gz full_${DATE_NOW}.sql > /dev/null 2>&1
        #删除原始文件,只留压缩后文件
        rm -f full_${DATE_NOW}.sql
        echo "数据库备份数据成功!!" >> ${logpath}/dbback.log
else
        echo "数据库备份数据失败!!" >> ${logpath}/error.log
fi

cd ${BACKUPDIR}/
echo ”备份时间为${DATE},开始----” >> ${logpath}/tableback.log

mysqldump  -t $backtable_db -h${VIP} --set-gtid-purged=OFF -u${USER} -p${PASSWD} --tables  ${backtable} >${datapath}/${backtable}.sql
mysql -u${USER} -p${PASSWD} -h${VIP} -D $backtable_db  -e 'TRUNCATE TABLE tb_trcevt'

if [[ $? == 0 ]];then
        cd $datapath
        #为节约硬盘空间,将数据库压缩
        tar zcvf ${backtime}${backtable}.tar.gz ${backtable}.sql > /dev/null 2>&1
        #删除原始文件,只留压缩后文件
        rm -f ${datapath}/${backtable}.sql
        echo "数据库备份${backtable}表数据成功!!" >> ${logpath}/tableback.log
else
        echo "数据库备份${backtable}表数据失败!!" >> ${logpath}/table_error.log
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤舞飘伶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值