MySQL OCP888题解043-GTID模式下如何解决主键冲突问题
创始人
2024-05-30 04:21:41

文章目录

  • 1、原题
    • 1.1、英文原题
    • 1.2、答案
  • 2、题目解析
    • 2.1、题干解析
  • 3、知识点
    • 3.1、知识点1:GTID模式下跳过一个事务的方法
  • 4、总结

1、原题

1.1、英文原题

A simple master-to-slave replication is currently being used. This information is extracted from the SHOW SLAVE STATUS output:

You execute a “SHOW CREATE TABLE mytable” on the slave:

You have issued a STOP SLAVE command. You have determined that it is safe to skip the transaction in this case. One or more statements are required before you can issue a START SLAVE command to resolve the duplicate key error.
Which statement should be used?
A、SET GTID_NEXT=“CONSISTENCY”;BEGIN; COMMIT;SET GTID_NEXT=“AUTOMATIC”;
B、SET GTID_NEXT=“5da6b4f5-6f60-11e8-b2d6-0010e05f3e06:8”; BEGIN; COMMIT;SET GTID_NEXT=“AUTOMATIC”;
C、SET GLOBAL SQL_SKIP_SLAVE_COUNTER=1
D、SET GLOBAL enforce_gtid_consistency=ON
E、SET GTID_EXECUTED=“5da6b4f5-6f60-11e8-b2d6-0010e05f3e06:8”;

1.2、答案

B

2、题目解析

2.1、题干解析

本题考察的是GTID复制模式下,当出现主键重复问题时,如何解决。

3、知识点

3.1、知识点1:GTID模式下跳过一个事务的方法

如果复制由于复制的事务中的事件问题而停止,可以通过跳过复制中的失败事务来恢复复制。在跳过一个事务之前,确保复制的I/O线程和复制的SQL线程都已停止。

  1. 首先,你需要确定导致错误的复制事件。错误的细节和最后成功应用的事务都记录在性能模式表replication_applier_status_by_worker中。你可以使用mysqlbinlog来检索和显示在错误发生时被记录的事件。另外,你可以在副本上发出SHOW RELAYLOG EVENTS,或者在源上发出SHOW BINLOG EVENTS,然后在输出中搜索以该GTID开头的事务。
  2. 跳过有GTIDs的事务
SET GTID_NEXT='aaa-bbb-ccc-ddd:N';
BEGIN;
COMMIT;
SET GTID_NEXT='AUTOMATIC';

官方参考文档

4、总结

  1. GTID复制时遇到事务问题时,可以通过跳过一个事务的方法解决。

相关内容

热门资讯

玩家必看教程!智星德州扑克辅助... 玩家必看教程!智星德州扑克辅助挂多功能透视工具,好像真的是有挂(有挂详细)1、该软件可以轻松地帮助玩...
记者揭秘!wpk辅助挂多功能透... 记者揭秘!wpk辅助挂多功能透视工具,原来存在有挂(有挂猫腻)1、全新机制【wpkai辅助工具激活码...
科普!德扑圈辅助挂多功能透视工... 科普!德扑圈辅助挂多功能透视工具,总是有挂(有挂教学)1、实时德扑圈透视辅助更新:用户可以随时随地访...
玩家必备攻略!WPK辅助挂多功... 玩家必备攻略!WPK辅助挂多功能透视工具,其实存在有挂(确实有挂)1、任何WPK透视是真的假的的玩家...
分享一款!智星菠萝德州辅助挂多... 分享一款!智星菠萝德州辅助挂多功能透视工具,总是是真的有挂(有挂神器)1)智星菠萝德州辅助插件:进一...