【MySQL】MySQL 5.6多线程复制和GTIDs的补充

在上一篇文章中,写了为啥推荐MySQL在开启多线程复制的时候要开启GTID。
现在来看看如何操作。

1.主从产生gaps
你并不希望在开启了多线程复制和GTIDs的从库看到以下报错:

这GTIDs清单表示什么含义?

只要你知道Executed_Gtid_Set跟踪的是所有执行过的事务的GTID就很容易理解了,且MTS是允许出现执行gaps的。

过一会再执行show slave status,你会发现gap位置发生了变化:

如果你停止的对主库的写,所有的gap会逐渐被填充追赶上来。

2.处理复制错误
跳过对应的GTID即可。
执行show slave status:

该跳过那个事务的GTID呢?可能是1381aa44-9a60-11e4-b6d8-94dbc999324d:1052770

这也可以通过Last_SQL_Error field来确认:
Last_SQL_Error: Worker 0 failed executing transaction ‘1381aa44-9a60-11e4-b6d8-94dbc999324d:1052770’ […]

知道GTID之后,就可以跳过事务并重启复制了(后面要解决不一致的问题)

3.备份
对于开启了GTID的多线程复制,备份不是什么难的问题。
如果是使用xtrabackup,只要加上–slave-info选项:

在新的实例上使用该备份创建从库:

如果是使用mysqldump,加上选项–dump-slave

也可以使用–master-data替代–dump-slave

Original: https://www.cnblogs.com/abclife/p/16546163.html
Author: abce
Title: 【MySQL】MySQL 5.6多线程复制和GTIDs的补充

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/33029/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总