试验环境:
主库 192.168.3.202
备库 192.168.3.203
开启了GTID模式。
假如从库和主库差异较大,想要根据主库的备份恢复从库。
需要做如下步骤。
一 备份主库
mysqldump -u root -p --single-transaction --all-databases --master-data=2 > AllDB.bak
#检查备份文件中是否包含SET @@GLOBAL.GTID_PURGED=……内容:
cat 备份文件 | grep 'GTID_PURGE'
scp AllDB.bak 192.168.3.203:/download/
二 在从库上恢复数据
2.1 关闭主从复制
stop slave;
2.2 reset master清空@@GLOBAL.GTID_PURGED
否则会导入数据的时候会报错:
ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.
2.2.1 先记录下相关信息(show master status)以备后患
2.2.2 reset master
reset master;
2.3 恢复数据
mysql -u root -p < AllDB.bak
2.4 启动主从复制
START SLAVE;
2.5 检查主从复制是否正常
show slave status