1. mysqldump 不锁表备份数据

    1. mysqldump -uroot -proot1 --single-transaction --master-data=2 -R vfan | gzip > dump4.sql
    2. 主要起作用参数:--single-transaction
  2. 查看当前mysqldump导出数据的GTID号

    [root@TestCentos7 data]# grep GLOBAL.GTID_PURGED dump4.sql 
    SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ 'c9fba9e2-db3b-11eb-81d4-000c298d8da1:1-228';
    
  3. 从数据库导入数据

    mysql> source /data/dump4.sql
    
  4. 由于我们mysqldump的数据已经包含了在MASTER执行的 1-228 个事务,所以我们在SLAVE进行同步的时候,要忽略这些事务不再进行同步

  5. 要想跳过某些GTID,SLAVE必须保证 gtid_purged 参数为空才能正确跳过,查看当前的gtid_purged

    # 查看gtid_purged
    mysql> show global variables like '%gtid%';
    
  6. 操作gtid_purged为空 ```

    在从库上重设master信息

    mysql> reset master;

再次查看gtid_purged

mysql> show global variables like ‘%gtid%’;


7. gtid_purged为空后,开始重置SLAVE

mysql> stop slave;

mysql> reset slave all;


8. 重置后,设置跳过的GTID,并重新同步MASTER

设置跳过的gtid_purged

mysql> SET @@GLOBAL.GTID_PURGED=’c9fba9e2-db3b-11eb-81d4-000c298d8da1:1-228’;

重新开始同步

mysql> CHANGE MASTER TO MASTER_HOST=’192.168.152.253’,MASTER_USER=’copy’,MASTER_PASSWORD=’copy’,MASTER_PORT=3306,MASTER_AUTO_POSITION=1;


9. 开启SLAVE进程,查看SLAVE状态

开启slave

mysql> start slave;

查看状态

mysql> show slave status\G; ``` https://www.cnblogs.com/v-fan/p/14063030.html