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复制时遇到事务问题时,可以通过跳过一个事务的方法解决。

相关内容

热门资讯

AI赋能千行百业 “制造”迈上... 转自:草原云今年8月,国务院发布了《关于深入实施“人工智能+”行动的意见》,对人工智能与各行各业深度...
人保再保2025年新加坡SIR... (来源:人民保险)为深入贯彻落实党的二十届四中全会精神,积极落实推进高水平对外开放,深度服务高质量共...
多所高校调整外语学院架构 澎湃新闻记者 岳怀让近日,随着景德镇陶瓷大学在原有外国语学院基础上,整合文化研究、新闻传播、中文教育...
两个“卖铲”程序员,不营销却不...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:虎嗅APP)...
大湾区交易所科技大会(下篇):...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:财联社)财联...