在GTID环境中根据主库备份恢复从库

试验环境:

主库 192.168.3.202

备库 192.168.3.203

开启了GTID模式。

 

假如从库和主库差异较大,想要根据主库的备份恢复从库。

需要做如下步骤。

 

一 备份主库

mysqldump -u root -p --single-transaction --all-databases --master-data > AllDB.bak   #必须得加上master-data参数,否则会丢数据。

scp AllDB.bak 192.168.3.203:/download/

 

二 在从库上恢复数据

2.1 修改备份文件

在CHANGE MASTER TO MASTER_LOG_FILE=……,MASTER_LOG_POS=……前加一句:

change master to master_auto_position=0;

否则在恢复数据的时候会报错:

ERROR 1776 (HY000) at line 30: Parameters MASTER_LOG_FILE, MASTER_LOG_POS, RELAY_LOG_FILE and RELAY_LOG_POS cannot be set when MASTER_AUTO_POSITION is active.

2.2 关闭主从复制

stop slave;

2.3 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.3.1 先记录下相关信息(show master status)以备后患

在GTID环境中根据主库备份恢复从库_第1张图片

 

2.3.2 reset master

reset master;

2.4 恢复数据

mysql -u root -p < AllDB.bak

2.5 启动主从复制

START SLAVE;

2.6 检查主从复制是否正常

show slave status

2.7 启动auto position

stop slave;

CHANGE MASTER TO MASTER_HOST='192.168.3.202',MASTER_USER='RepUser',MASTER_PASSWORD='123456' ,MASTER_PORT=3307,master_auto_position=1;

start slave;

show slave status \G;   #检查主从是否正常

你可能感兴趣的:(MySql,学习,MySql,备份恢复,Mysql,主从复制)