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相关信息:

Mariadb使用mysqldump结合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