1. 程式人生 > >Xtrabackup備份恢復

Xtrabackup備份恢復

mysql備份 mysql恢復 mysql增量備份 mysql Xtrabackup

完全備份+兩次增量備份 --> 新主機恢復

環境:
  CentOS7.4 x 2
  MariaDB-5.5.5
  zabbix數據
  EPEL源
  Xtrabackup工具包


一、兩臺主機分別安裝Xtrabackup

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
yum install percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm -y

#Xtrabackup包依賴於epel源一些工具包,所以使用yum安裝。

二、完全備份數據庫

當前數據庫狀態:
技術分享圖片

完全備份數據庫:

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /backup/

出現completed OK!表示備份完成
技術分享圖片
備份的數據:
技術分享圖片

三、修改數據,並執行第一次增量備份

mysql> create database 1st;

修改後的數據:
技術分享圖片
進行增量備份:

mkdir /backup/up1
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --incremental  --incremental-basedir=/backup/2018-02-27_14-44-54 /backup/up1

第一次增量備份的數據:
技術分享圖片

四、再次修改數據,進行第二次增量備份

mysql> create database 2st;
mysql> create database Xtrabackup_test;

技術分享圖片

進行第二次增量備份:

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --incremental  --incremental-basedir=/backup/up1/2018-02-27_14-48-24 /backup/up2/

技術分享圖片

三次備份後的數據:
技術分享圖片

五、恢復前準備

1.將備份數據和/etc/my.cnf文件拷貝到另一臺主機

scp -r /backup/  192.168.1.4:/root
scp /etc/my.cnf 192.168.1.4:/etc/

2.不要啟動數據庫,開始恢復前的準備工作;

#回滾未提交的事務及同步已經提交的事務至數據文件使數據文件處於一致性狀態:
innobackupex --apply-log --redo-only /root/2018-02-27_14-44-54/

技術分享圖片

3.將增量備份整合進全備份中:

innobackupex --apply-log --redo-only /root/2018-02-27_14-44-54/ --incremental-dir=/root/up1/2018-02-27_14-48-24

技術分享圖片

innobackupex --apply-log --redo-only /root/2018-02-27_14-44-54/ --incremental-dir=/root/up2/2018-02-27_14-50-03

技術分享圖片

六、開始恢復

1.確保數據目錄為空

rm -fr /var/lib/mysql

2.拷貝文件到數據目錄

innobackupex --copy-back --datadir=/var/lib/mysql  /root/2018-02-27_14-44-54/

技術分享圖片

7、啟動數據庫

修改數據庫目錄權限:

chown -R mysql.mysql /var/lib/mysql

啟動數據庫:

systemctl start mariadb

查看數據:

技術分享圖片

Xtrabackup備份恢復