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个小时