完全备份+两次增量备份 --> 新主机恢复

环境:
  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安装。

二、完全备份数据库

当前数据库状态:
Xtrabackup备份恢复_第1张图片

完全备份数据库:

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

出现completed OK!表示备份完成
Xtrabackup备份恢复_第2张图片
备份的数据:
Xtrabackup备份恢复

三、修改数据,并执行第一次增量备份

mysql> create database 1st;

修改后的数据:
Xtrabackup备份恢复_第3张图片
进行增量备份:

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

第一次增量备份的数据:
Xtrabackup备份恢复_第4张图片

四、再次修改数据,进行第二次增量备份

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

Xtrabackup备份恢复_第5张图片

进行第二次增量备份:

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

Xtrabackup备份恢复_第6张图片

三次备份后的数据:
Xtrabackup备份恢复_第7张图片

五、恢复前准备

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/

Xtrabackup备份恢复_第8张图片

3.将增量备份整合进全备份中:

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

Xtrabackup备份恢复

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

Xtrabackup备份恢复

六、开始恢复

1.确保数据目录为空

rm -fr /var/lib/mysql

2.拷贝文件到数据目录

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

Xtrabackup备份恢复

7、启动数据库

修改数据库目录权限:

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

启动数据库:

systemctl start mariadb

查看数据:

Xtrabackup备份恢复_第9张图片