mysql 第三十五篇文章~xtarbackup增量備份以及策略
一 簡介: 今天咱們來探討下增量備份的策略
二 背景: 隨著數據量的日益增長,全備已經不現實了,所以探討並測試了增量備份策略
三 具體策略: 1 一周為界限,一天做全備,其他時間以全備為基礎進行增量備份
2 一周為界限,進行打包,然後上傳到備份服務器
四 具體腳本:
第一部分 參數變量初始化
#!/bin/bash
#config
xingqi=`date +%w`
DATE=`date +%Y%m%d%H`
DATEyst=`date +"%Y%m%d%H" -d "-24hour"`
DISKSIZE=`df -h|grep ‘9[0-9]%‘`
dirname="/backup/database"
IP=`/sbin/ifconfig eth0 | grep ‘inet addr‘ | cut -d: -f2 | awk ‘{ print $1}‘|cut -d‘.‘ -f 3,4`
user="aaa"
password="ccc"
pwd=$dirname
第二部分 全備
function fullbackup() {
if [ -z "$DISKSIZE" ];then
mkdir -p $pwd
filename1=$DATE"_full_"$IP
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$password --no-timestamp --socket=/tmp/mysql.sock --slave-info $pwd/$filename1 > /dev/null
sleep 2
else
echo " the disk is full "
fi
第三部分 第一次增量備份
function incrementalbackup(){
filename1=$DATEyst"_full_"$IP
filename2=$DATE"_incremental_"$IP
if [ -z "$DISKSIZE" ];then
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$password --no-timestamp --socket=/tmp/mysql.sock --slave-info --incremental-basedir=$pwd/$filename1 --incremental $pwd/$filename2 > /dev/null
sleep 2
else
echo "the disk is full "
fi
}
第四部分 第二次增量備份
function incrementalbackup_1(){
filename1=$DATEyst"_incremental_"$IP
filename2=$DATE"_incremental_"$IP
if [ -z "$DISKSIZE" ];then
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$password --no-timestamp --socket=/tmp/mysql.sock --slave-info --incremental-basedir=$pwd/$filename1 --incremental $pwd/$filename2 > /dev/null
sleep 2
else
echo "the disk is full "
fi
第五部分 統一打包
function tarbackup(){
cd /backup/database
tar -czf $DATEyst.tar.gz fullfile_xtra/
rm -rf database/
}
第六 部分 調用
if [ $xingqi = 2 ];then
tarbackup
fullbackup
elif [ $xingqi = 3 ];then
incrementalbackup
echo "incrementalbackup 1"
elif [ $xingqi =1 ];then
incrementalbackup_1
else
incrementalbackup_1
echo "incrementalbackup n"
fi
五 增量恢復步驟
1 先恢復 全量備份
innobackupex --apply-log --redo-only BASE-DIR
2 恢復增量備份 1
innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1
3 恢復增量備份 2
innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2
六 註意點:
備份:
1 備份腳本沒有生成時間戳目錄,因為有時間戳目錄會增大腳本編寫難度
2 備份腳本修改一些參數即可使用,是根據星期進行判斷執行增量還是全量備份,全量備份前會把上一次的備份全套打包
還原
1 全量恢復+增量恢復 可以靈活進行配合 ,全量恢復是基礎 切記
2 選取目標的增量恢復 不能加read-only
七 差不多就這樣了,有問題留言
mysql 第三十五篇文章~xtarbackup增量備份以及策略