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

gtid_executed 与 gtid_purged 语义

gtid_executed:本实例已执行的全部 GTID 集;gtid_purged:已被 binlog 清理但仍需声明的 GTID 集(新从库的起点)。两者配合决定「谁还缺什么事务」。

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

查看与理解

查看与理解
SELECT @@GLOBAL.gtid_executed;   -- 已执行全集
SELECT @@GLOBAL.gtid_purged;     -- 已清理(从库建点)
-- 新建从库时(XTRA 场景):
SET GLOBAL gtid_purged = '3a7f1e3b-...:1-5000000';
gtid_executed含已执行全部事务;用于 AUTO_POSITION 差集
gtid_purgedbinlog 中已不存在的事务也必须算「源端已有」
风险手工 SET gtid_purged 错了会导致数据静默缺失
只有空实例(无任何业务数据)才可安全设置 gtid_purged;执行前用 gtid_subset 校验。

易错点

  • 给非空实例补 gtid_purged:数据与 GTID 声明不一致,复制静默跳事务
  • 只看 executed 不看 purged:新从库起点判断错误,从头重放引发新旧数据冲突

数据来源与参考

  • MySQL 8.0 Reference Manual: GTID Sets

相关工具

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