首页/数据/数据库速查/复制跳错事务(GTID 与其他方式)
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条
主从复制与高可用53 条
性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

复制跳错事务(GTID 与其他方式)

跳过事务是危险但必要的能力:GTID 模式用空事务占位(SET GTID_NEXT + BEGIN/COMMIT),非 GTID 用 sql_replica_skip_counter(8.0.23+ 名),跳过要限一次一事务。

数据库速查数据更新于 2026-10-12

GTID 模式跳过

GTID 模式跳过
STOP REPLICA SQL_THREAD;
-- 从 Last_SQL_Error 中取下一个待执行 GTID(Retrieved_Gtid_Set 中最小未执行者)
SET GTID_NEXT = '3a7f1e3b-1111-2222-3333-444455556666:4711';
BEGIN;
COMMIT;
SET GTID_NEXT = 'AUTOMATIC';
START REPLICA SQL_THREAD;

非 GTID 模式跳过

非 GTID 模式跳过
STOP REPLICA SQL_THREAD;
SET GLOBAL sql_replica_skip_counter = 1;   -- 旧名 sql_slave_skip_counter
START REPLICA SQL_THREAD;
跳过即接受主从数据不一致:必须记录事务号、原因与后续补偿动作。

易错点

  • skip_counter 在 GTID 模式被禁用:用了也报错,别混用
  • 跳过一个 GTID 后从库该事务永久缺失:切换时按新主为准,旧主数据要核对

数据来源与参考

  • MySQL 8.0 Reference Manual: Skipping Transactions
  • MySQL 8.0 Reference Manual: GTID_NEXT

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌