西数超哥博客
运维经验教程分享

分别基于innobackupex备份工具的mysql全量备份和增量备份shell脚本

之前有过一个基于innobackupex备份mysql文章,不是很简单实用。这里是一个更为简单的脚本,可以实现分别基于innobackupex备份工具的mysql全量备份和增量备份。
注意:
1,线上用的时候请注意将自己的用户名和密码都设置对,这里password密码我暂时用xxxxxx代替。当然,你也可以建立专用于备份用的数据库用户并设置权限。
2,根据情况设置一个任务计划。
mysql全量备份脚本如下

#!/bin/bash
#author:21yunwei
logfile="/home/mysqlbak/mysql_full_bak_time.log"
backuplogfile="/home/mysqlbak/mysqlbackup.log"
mysql_bakdir="/home/mysqlbak/"
user=root
password=xxxxxx

[ ! -d $mysql_bakdir  ] &&  mkdir -p $mysql_bakdir
[ ! -f  $logfile ] && touch  $logfile

innobackupex --defaults-file=/etc/my.cnf --user=${user} --password=${password} --compress –-parallel=4 –-throttle=400 --stream=tar ${mysql_bakdir} 2>&1 >> $backuplogfile
reset=$?
finishtime=`date +%Y%m%d_%H%M%S`
[ ${reset} -eq 0 ] && echo  "Mysql fullbakup  finished, time: $finishtime">>  $logfile || echo "Mysql fullbakup failed,please check time:$finishtime" >>  $logfile

mysql增量备份脚本如下:

#!/bin/bash
#author:21yunwei
time=`date -d '-3 day' +%Y-%m-%d`
logfile="/home/mysqlbak/mysql_full_bak_time.log"
mysql_bakdir="/home/mysqlbak/"
user=root
password=xxxxxx
lastfullbakdir=`ls /home/mysqlbak/ |grep ${time}`

[ ! -d $mysql_bakdir  ] &&  mkdir -p $mysql_bakdir
[ ! -d  $logfile ] && touch  $logfile

innobackupex --defaults-file=/etc/my.cnf --user=${user} --password=${password} --incremental-basedir=${mysql_bakdir}/${lastfullbakdir}  --incremental ${mysql_bakdir}
finishtime=`date +%Y%m%d_%H%M%S`
[ $? -eq 0 ] && echo  "Mysql fullbakup  finished, time: $finishtime">>   $logfile || echo "Mysql fullbakup failed,please check time:$finishtime">>  $logfile

转载请注明:西数超哥博客www.ysidc.top» 分别基于innobackupex备份工具的mysql全量备份和增量备份shell脚本

https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » 分别基于innobackupex备份工具的mysql全量备份和增量备份shell脚本