Xtrabackup備份恢復
阿新 • • 發佈:2018-04-06
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備份恢復