MySQL数据库备份脚本(xtrabackup)

版权声明:本文为博主原创文章,未经博主允许不得转载,转载附上原文链接即可。 https://blog.csdn.net/GX_1_11_real/article/details/89306306

前言


由于近期总是想分享点基础性的东西。

下面再分享一个基于xtrabackup的mysql数据库备份脚本,可根据需求更改。

更多xtrabackup常用备份技巧请参考下列链接:
https://blog.csdn.net/GX_1_11_real/article/details/82427205



#!/bin/sh
# 此脚本是基于xtrabackup的全量备份,可设计划任务不影响服务时备份
source /etc/profile

#下列需要根据实际情况更改

PORT=3306
IP=localhost

#此参数为邮件通知的地址,未配置可注释
#MAILUSER=XXX.qq.com

DBUSER=backup
DBPASSWORD='whnf234!@#%#2..5'
TODAY=$(date +'%Y-%m-%d')
BACKUPDIR=/backup/mysql_$PORT/$TODAY
BACKUPFILE=$BACKUPDIR/full.tgz
LOGSDIR=/var/backup/mysql_$PORT/logs
LOGFILE=$LOGSDIR/mysql.$TODAY.log
SOCKETDIR=/tmp
SOCKET=$SOCKETDIR/mysql_$PORT.sock
CNFDIR=/etc/mysql_$PORT
MYCNF=$CNFDIR/my_$PORT.cnf


test -d $BACKUPDIR || mkdir -p $BACKUPDIR
test -d $LOGSDIR || mkdir -p $LOGSDIR


#设定保留的备份
find $(dirname $BACKUPDIR) -maxdepth 1 -type d -mtime +0 -exec rm -rf {} \;
find $LOGSDIR -type f -mtime +30 -exec rm -rf {} \;


DATADIR=$(mysql -S$SOCKET -u$DBUSER -p$DBPASSWORD -e "SHOW VARIABLES LIKE 'datadir'" | grep 'datadir' | awk '{print $2}')
SLOWLOG=$(mysql -S$SOCKET -u$DBUSER -p$DBPASSWORD -e "SHOW VARIABLES LIKE 'slow_query_log_file'" | grep 'slow_query_log_file' | awk '{print $2}')
mv ${DATADIR}$SLOWLOG  ${DATADIR}slow.$TODAY.log
mysqladmin -S$SOCKET -u$DBUSER -p$DBPASSWORD flush-logs

#全备并压缩,下列参数抽时间说明
BACKUP="innobackupex --no-timestamp --no-version-check --parallel=8 --safe-slave-backup --slave-info --user $DBUSER --password $DBPASSWORD --defaults-file=$MYCNF --stream=tar"

$BACKUP $BACKUPDIR 2>$LOGFILE | gzip 1>$BACKUPFILE

if [ $? -eq 0 ]; then
    echo "备份成功" | tee -a $LOGFILE
    FAILFLAG=0
else
    echo "备份失败" | tee -a $LOGFILE
    FAILFLAG=1
fi

#此为邮件发送判断,未配置关闭  
#if [ $FAILFLAG -eq 1 ]; then
#    cat $LOGFILE | mutt -s "$PORT $IP MySQL数据库备份" $MAILUSER
#fi

猜你喜欢

转载自blog.csdn.net/GX_1_11_real/article/details/89306306
今日推荐