1.重建原因:因从库物理机异常关机,导致数据文件损坏,修复也无法启动数据库;遂采用xtrbackup在线热备主库数据,然后拷贝到从库进行数据还原

2.xtrabakcup安装:

版本之间的区别:

8.0是针对8.0开发的,不兼容5.X的版本

2.4针对5.7开发,兼容5.6,5.5

2.3针对5.6开发,兼容5.5

2.2针对5.5开发

官方网址:http://www.percona.com/downloads/

<1>进入官网选择合适的版本

<2>选择版本及系统(Generic为源码包)

注意本机的libgcrypt的安装的版本,下载的包要与其适配,否则使用会报错rpm -qa |grep libgcrypt

<3>解压并配置环境变量

tar xf percona-xtrabackup-2.4.14-Linux-x86_64.libgcrypt183.tar.gz
mv percona-xtrabackup-2.4.14-Linux-x86_64 xtrabackup
mv xtrabackup /usr/local/
echo "export PATH=$PATH:/usr/local/xtrabackup/bin" >> /etc/profile
source /etc/profile

<4>运行xtrbackup --version检查是否安装成功

3.在主库上执行备份:

<1>.执行压缩全备份

innobackupex --defaults-file=/opt/lampp/etc/my.cnf --no-timestamp --slave-info --user=root --password=zabbix --stream=tar --extra-lsndir=/data/lsn /data/mysql_backup_2020_03_07 |gzip >/data/mysql_backup_2020_03_07.tar.gz

<2>执行增量备份

innobackupex --defaults-file=/opt/lampp/etc/my.cnf --no-timestamp --slave-info --user=root --password=zabbix --extra-lsndir=/data/lsn1 --incremental-basedir=/data/lsn --incremental /data/increment_data_2020_03_08 

<3>拷贝全备和增备文件到待恢复的主机上

scp mysql_backup_2020_03_07.tar.gz 172.21.1.4:/data
scp -r /data/increment_data_2020_03_08 172.21.1.4:/data

4.在从库上执行恢复:

<1>创建解压目录

mkdir -p /data/mysql_backup_2020_03_07

<2>解压备份文件

tar -zxvf mysql_backup_2020_03_07.tar.gz -C mysql_backup_2020_03_07

<3>停止mysql数据库

systemctl stop lampp

<4>移除原数据目录

mv /data/mysql /data/mysql_bak

重新创建数据库目录

mkdir /data/mysql

<5>进行prepare全备

innobackupex --defaults-file=/opt/lampp/etc/my.cnf --incremental --user-memory=1G --apply-log --redo-only /data/mysql_backup_2020_03_07

<6>进行prepare增备

innobackupex --defaults-file=/opt/lampp/etc/my.cnf --incremental --user-memory=1G --apply-log --redo-only /data/mysql_backup_2020_03_07 --incremental-dir=increment_data_2020_03_08

<7>再进行prepare全备

innobackupex --defaults-file=/opt/lampp/etc/my.cnf --apply-log  /data/mysql_backup_2020_03_07

<8>执行恢复

innobackupex --defaults-file=/opt/lampp/etc/my.cnf --copy-back /data/mysql_backup_2020_03_07

<9>修改数据目录的属主和属组

chown -R mysql:mysql /data/mysql

<10>启动数据库进行检验

systemctl start lampp

<11>配置主从同步

查看cat /data/mysql_backup_2020_03_07/xtrabackup_binlog_info 里面的master log信息

MariaDB [(none)]> CHANGE MASTER TO
-> MASTER_HOST='172.21.1.3',
-> MASTER_USER='sync',
-> MASTER_PASSWORD='1qaz@WSX',
-> MASTER_LOG_FILE='mysql-bin.001217',
-> MASTER_LOG_POS=478722963;
MariaDB [(none)]>start slave;

<12>在主库配置主主同步,并检查同步情况。

2020.3.7 21:00 开始全备份 数据量667G

2020.3.8 11:11 全备份完成 数据量171G

2020.3.8 13:55 开始增量备份

2020.3.8 15:04 增备完成 数据量 8.6G

prepare恢复阶段耗时大概3个小时