注入空事务以修复MySQL 5.6 GTID复制不起作用

时间:2016-08-16 08:47:19

标签: mysql gtid

我按照此page

的步骤操作
STOP SLAVE;
SET GTID_NEXT="[THE GTID SET]";
BEGIN; COMMIT;
SET GTID_NEXT="AUTOMATIC";
START SLAVE;

恢复奴隶。但就我而言,gtid_set为

Retrieved_Gtid_Set: 8b6d4795-5ad3-11e6-a31f-00259077c77a:2369-2377
Executed_Gtid_Set: 8b6d4795-5ad3-11e6-a31f-00259077c77a:1-2372:2374,8be5b0ba-5ad3-11e6-a31f-0cc47a50d072:1-12

当我尝试将空事务注入从服务器并重新启动从服务器时,'slave_SQL_Running'仍然是'否'。

STOP SLAVE;
SET GTID_NEXT="8b6d4795-5ad3-11e6-a31f-00259077c77a:2377";
BEGIN; COMMIT;
SET GTID_NEXT=AUTOMATIC;
START SLAVE;

它变成了

Retrieved_Gtid_Set: 8b6d4795-5ad3-11e6-a31f-00259077c77a:2369-2377
Executed_Gtid_Set: 8b6d4795-5ad3-11e6-a31f-00259077c77a:1-2372:2374:2377,8be5b0ba-5ad3-11e6-a31f-0cc47a50d072:1-12

当新数据插入主设备时,从设备仍然无法同步到主设备。 状态变为:

Retrieved_Gtid_Set: 8b6d4795-5ad3-11e6-a31f-00259077c77a:2369-2378
Executed_Gtid_Set: 8b6d4795-5ad3-11e6-a31f-00259077c77a:1-2372:2374:2377,8be5b0ba-5ad3-11e6-a31f-0cc47a50d072:1-12

我该如何做到这一点?

我不想进行完全转储,因为有很多数据,而fulldump需要花费很多时间。

1 个答案:

答案 0 :(得分:0)

请检查以下博客文章。

https://www.abhinavbit.com/2019/05/gtid-replication-skip-transaction-using.html

在您的情况下,您应该运行以下命令来跳过sql线程错误。

STOP SLAVE;
SET GTID_NEXT="8b6d4795-5ad3-11e6-a31f-00259077c77a:2375";
BEGIN; COMMIT;
SET GTID_NEXT=AUTOMATIC;
START SLAVE;