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

相关内容

热门资讯

南钢股份申请煤气监控系统相关专... 7月22日消息,国家知识产权局信息显示,南京钢铁股份有限公司申请一项名为“一种煤气区域智能报警可视化...
南钢股份申请带钢板型控制方法相... 7月22日消息,国家知识产权局信息显示,南京钢铁股份有限公司申请一项名为“一种超高强带钢的板型控制方...
山东钢铁取得联轴器找正支架相关... 7月22日消息,国家知识产权局信息显示,山东钢铁股份有限公司申请一项名为“一种联轴器找正定位旋转支架...
调研速递|东山精密接待易方达等... 苏州东山精密制造股份有限公司(以下简称“东山精密”)于2026年7月21日下午通过线上会议形式接待了...
本钢板材取得高强钢相关专利,调... 7月22日消息,国家知识产权局信息显示,本钢板材股份有限公司申请一项名为“一种汽车用420MPa级镀...