Mariadb使用mysqldump结合GTID特性恢复从库
一 试验介绍
有时想利用主库的备份搭建一个新从库,或者覆盖从库的数据,有两种方式。
方法一:利用mariabackup进行备份恢复
详细请参考https://blog.****.net/yabingshi_tech/article/details/108887577中的‘2.3 将主库上的数据恢复到从库上’
方法二:利用mysqldump进行备份恢复
这里使用第二种方法。
二 试验步骤
2.1 在从库上远程备份主库
mysqldump -h 192.168.144.125 -u root -p --master-data=1 --gtid --single-transaction --all-databases > /backup/master_all.bak_202010201530
备份脚本中会包含gtid相关信息:
2.2 在从库上恢复数据
stop slave; #新搭建的主库不用stop slave。该步骤仅限于已配置过主从复制的从库
reset master;
/*
如果不执行reset master,后面直接start slave,show slave status会看到有报错:
Last_SQL_Error: An attempt was made to binlog GTID 0-1-10 which would create an out-of-order sequence number with existing GTID 0-2-140, and gtid strict mode is enabled
*/
#恢复数据
mysql -u root -p < master_all.bak_202010201530
2.3 change master to主库进行复制
CHANGE MASTER TO MASTER_HOST="192.168.144.125", MASTER_PORT=3306, MASTER_USER="ReplUser", MASTER_PASSWORD="密码", MASTER_USE_GTID=slave_pos;
2.4 start slave
2.5 show slave status \G;检查主从复制状态
确保 Slave_IO_Running及Slave_SQL_Running值都为Yes