1、安装xtrabackup
需要注意MySQL8.0版本xtrabackup必须要大于等于数据库版本
首先上传安装包percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
yum localinstall -y percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm
2、备份主库数据(关注锁问题同时注意备份目录磁盘是否足够,最少保证跟数据库的数据量一致)
8.0需要有备份权限。没有则授(GRANT BACKUP_ADMIN ON *.* TO 'root';)
mkdir /tmp/backup/
xtrabackup --no-defaults --defaults-file=/mysq/my.cnf -uroot -p密码 -P3306 --backup --target-dir=/tmp/backup/
cd /tmp/backup/
tar zcvf backup.tar.gz /tmp/backup/
3、把主库数据导入到备库上
scp /tmp/backup/backup.tar.gz 备库Ip:/tmp/
4、执行如下命令进行 apply log 操作。
tar xf /tmp/backup.tar.gz
xtrabackup --prepare --target-dir=/etc/my.cnf
5、导入数据(此用户密码为目标端)
关闭备库并创建备份目录(等备库运行正常了可以删除)
pkill mysqld
mkdir /tmp/mysql.bak/
mv /data/mysql/data/* /tmp/mysql.bak/
把备份文件恢复到数据目录内
mv /tmp/backup/* /data/mysql/data/
chown -R mysql.mysql /data/mysql
6、启动数据库
mysqld_safe --defaults-file=/data/mysql/data/backup-my.cnf --user=mysql &
7、查看搭建备库的GTID
查看主备库GTID是否一致
主备库执行show master status\G
对比主备库GTID如果一致直接执行步骤8
不一致则对比数据量或者/data/mysql/data/xtrabackup_slave_info 文件是否跟备库显示不一致(观察备库是否有被误写等)
如果能确认主备库数据一致。则可以执行如下操作。
reset master;
set global gtid_purged='备份信息内的GTID';
8、搭建主备关系
change master to master_host='主机',
master_port=’端口’,
master_user=’用户’,
master_password=’密码’;
MASTER_AUTO_POSITION=1;
9、启动主从并检查主备关系
启动主备
start slave;
show slave status\G