首页/数据/数据库速查/mysqldump 的 GTID 处理(--set-gtid-purged)
备份与恢复56 条

mysqldump 的 GTID 处理(--set-gtid-purged)

GTID 环境备份必须评估该参数:AUTO/ON 会写入 gtid_executed 信息,OFF/COMMENTED 则剥离,选择错误会导致导入报错或从库位点异常。

数据库速查数据更新于 2026-10-12
取 值OFF / ON / AUTO(默认)/ COMMENTED(8.0.17+)
回滚恢复建议 OFF 或 COMMENTED,避免改动目标实例 GTID 集
建从库ON 或 AUTO,让备份携带 gtid_executed 以便自动定位

两种典型选择

两种典型选择
# 本实例回滚/迁移到无 GTID 环境:剥离 GTID
mysqldump -uroot -p --set-gtid-purged=OFF --all-databases > all.sql
# 建从库:携带 GTID 集合
mysqldump -uroot -p --set-gtid-purged=ON --all-databases > all_for_replica.sql
云数据库(RDS/云 MySQL)通常禁用 SET @@GLOBAL.GTID_PURGED,备份脚本一般固定 OFF。

易错点

  • 目标实例已有数据时导入含 SET GTID_PURGED 的备份会直接报错:GTID_PURGED can only be set when GTID_EXECUTED is empty
  • AUTO 的判断依赖服务端 GTID 状态,行为不直观;脚本里建议显式写出取值

数据来源与参考

  • MySQL 8.0 Reference Manual: mysqldump --set-gtid-purged

相关工具

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