mysql xtrabackup增量備份

2021-12-30 00:17:46 字數 3205 閱讀 5871

mysql xtrabackup增量備份

mysql 增量備份策略 周一全備,其他增量備份,根據業務需要,設定保留日期,如保留一月。

增量備份步驟;

1 建立全備 

2 根據全備目錄,建立增量備份

3 第二次增量備份根據第一次增量備份目錄,依次類推

下面是今天寫的增量備份指令碼,先在自己的測試機上跑幾天。

#!/bin/sh

begintime=`date +"%y-%m-%d %h:%m:%s"`

format_time=`date +"%y-%m-%d_%h:%m:%s"`

week=`date +%w`

port=3306

#ip=

backdir=/backup

file_cnf=/etc/my.cnf

user_name=root

passwd=

out_log=$datadir/xtraback_log_$format_time

time_cost=$backdir/xtraback_time.txt

if [ ! -d "$backdir" ]; then

mkdir -p $backdir

fi if [ -d "$backdir/rec5" ];then

rm -rf $backdir-bak

mv $backdir $backdir-bak

mkdir $backdir

fi#full backup

if [ ! -d "$backdir/full" ];then

echo "#####start full backup at $begintime to directory full" >>$time_cost

innobackupex --defaults-file=$file_cnf --no-lock --no-timestamp --user=$user_name --port=3306 $backdir/full 1>$out_log-full 2>&1

tar -zcvf $backdir/full.tar.gz $backdir/full

break;

elif [ ! -d "$backdir/rec0" ];then

echo "######start 0 incremental backup at $begintime to directory rec0" >>$time_cost

innobackupex --default-file=$file_cnf --no-lock --no-timestamp --user=$user_name --port=$port --incremental --incremental-basedir=$backdir/full $backdir/rec0 1> $out_log-rec0 2>&1

break;

elif [ ! -d "$backdir/rec1" ];then

echo "#######start 1 incremental backup at $begintime to directory rec1" >>$time_cost

innobackupex --defaults-file=$file_cnf --no-lock --no-timestamp --user=$user_name --port=port --incremental --incremental-basedir=$backdir/full $backdir/rec1 1>$out_log-rec1 2>&1

break;

elif [ ! -d "$backdir/rec2" ]; then

echo "######start 2 incremental backup at $begintime to directory rec2" >>$time_cost

innobackupex --defaults-file=$file_cnf --no-lock --no-timestamp --user=$user_name --port=port --incremental --incremental-basedir=$backdir/rec1 $backdir/rec2 1> $out_log-rec2 2>&1

break;

elif [ ! -d "$backdir/rec3" ]; then

echo "#######start 3 incremental backup at $begintime to directory rec3" >$time_cost

innobackupex --defaults-file=$file_cnf --no-lock --no-timestamp --user=root --port=port --incremental --incremental-basedir=$/backdir/rec2 $backdir/rec3 1> $out_log-rec3 2>&1

break;

elif [! -d "$backdir/rec4" ];then

echo "########start 4 incremental backup at $begintime to directory rec4" >>$time_cost

innobackupex --defaults-file=$file_cnf --no-lock --no-timestamp --user=root --port=port --incremental --incremental-basedir=$backdir/rec4 1> $out_log-rec4 2>&1

break;

elif [ ! -d "$backdir/rec5" ];then

echo "#######start 5 incremental backup at $begintime to directory rec5" >>$time_cost \

innobackupex --defaults-file=$file_cnf --no-lock --no-timestamp --user=$user_name --port=port --incremental --incremental-basedir=$backdir/rec4 $backdir/rec5 1> $out_log-rec5 2>&1

break;

fi還原步驟 

1 關閉例項

2 應用日誌,如有增量,先恢復全備,然後再逐個恢復增量日誌

3 copy資料到目錄 

4 修改資料檔案許可權,chown、chmod 

5 啟動

innobackupex備份(全備 增量備)與恢復

安裝教程請檢視這篇文章 innobackupex備份選項 user 指定資料庫備份使用者 password 指定資料庫備份使用者密碼 port 指定資料庫埠 host 指定備份主機 socket 指定socket檔案路徑 databases 備份指定資料庫,多個空格隔開,如 databases db...

pg rewind增量同步備庫

在資料庫變得比較大時,例如上tb,如果部署了postgresql primary standby 流複製或者log shipping ha.當發生了failover,old primary節點可能因為某些原因需要重新同步資料.在廣域網上,由於網路異常也可能造成standby節點落後主節點,導致需要重...

mysql增量備份幾種 mysql的增量備份

一 啟用 binary log 修改 mysql server 的系統設定檔案 eg.etc my.cnf 在 mysqld 區塊中加上 log bin mysql bin 選項,然後重新啟動 mysql server,例如 mysqld log bin 啟用後你應該可以在 mysql 的 data...