生产上很实用的xtrabackup备份脚本,值得收藏

小编前几天给大家分享了一篇有关xtrabackup 的一些基础知识,大家可以看看那篇文章。

那今天在给大家分享一个 生产上很实用的xtrabackup备份脚本。活不多说,上才艺。。

#!/bin/sh
####################################################
##
## xtrabackup_full script
## 
####################################################
export PATH=$PATH:$HOME/bin:/home/fxkj/percona-xtrabackup-2.4.6-Linux-x86_64/bin/
MSNAME=app
BAKDIR=/fxkj/backupdb
BAKFILE=$MSNAME-`date +%Y%m%d%H%M`
LOGFILE=$MSNAME-`date +%Y%m%d%H%M`.log
REMOTE_HOST=192.168.22.1
REMOTE_BAKDIR=/data/fxkj-mysqlbackup
MYCNF=/etc/my.cnf
ROOTPWD=11223344
SOCKET=/usr/local/mysql/mysql.sock

innobackupex --defaults-file=$MYCNF --user=root --password=$ROOTPWD --socket=$SOCKET \
--lock-wait-threshold=40 \   #该选项表示运行了多久的时间的sql当做长查询;对于长查询最多再等待 --lock-wait-timeout 秒。
--lock-wait-query-type=all \ #该参数允许用户指定,哪类的SQL语句是需要Flush table with read lock等待的
--lock-wait-timeout=180 \    #一旦Flush table with read lock被阻塞超过预定时间,则XtraBackup出错返回退出,
--kill-long-queries-timeout=20 \  #该选项表示发出FTWRL之后,再等待多时秒,如果还有长查询,那么就将其kill掉
--kill-long-query-type=all \    #默认值为ALL,如果选择Select,只有Select语句会被Kill,如果Flush table with read lock是被Update语句阻塞,则XtraBackup不会处理。
--stream=tar \               #流式和压缩备份,支持的流传输模式将备份以特殊的tar或xbstream格式发送到STDOUT,而不是将文件复制到备份目录。
--tmpdir=$BAKDIR $BAKDIR 2>$BAKDIR/$LOGFILE \
|ssh fxkj@$REMOTE_HOST "gzip ->$REMOTE_BAKDIR/$BAKFILE.tar.gz"

# check backup log
CHECKOK=`tail -1 $BAKDIR/$LOGFILE | grep "completed OK\!" | wc -l`
if [ $CHECKOK -ne 1 ]
then
  echo "[ WARNING ] Backup failed!"
  exit
fi
scp $BAKDIR/$LOGFILE fxkj@$REMOTE_HOST:$REMOTE_BAKDIR
# clean backup piece, delete 7 day before
ssh fxkj@$REMOTE_HOST "find $REMOTE_BAKDIR/$MSNAME* -mtime +2 -type f -maxdepth 1 | xargs rm -rf {}"
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容