首页/数据/备份与容灾速查/mysqldump 对象与 GTID 选项
数据库与云备份56 条

mysqldump 对象与 GTID 选项

补全导出对象与 GTID 行为:--routines / --events / --triggers 覆盖存储程序对象,--set-gtid-purged 决定产物是否携带 GTID 语句。

备份与容灾速查数据更新于 2026-10-13

mysqldump 对象与 GTID 选项是什么

默认导出只覆盖表与数据,存储过程、函数、事件与触发器需要显式声明才会包含;而是否写入全局事务标识语句,取决于产物要导入到哪里。这两组选项决定了备份的完整性以及能不能顺畅地恢复到目标实例,属于生产脚本的必备项。

常用补充选项

选项作用
存储程序导出存储过程与函数
事件导出事件调度器对象
触发器导出触发器,默认已含,显式写出更清晰
全局事务标识控制产物是否携带标识语句,按目标环境选择
二进制输出二进制列以十六进制输出,规避字符集问题

基本信息

默认行为只导出表结构、数据与触发器
易漏对象存储过程、函数与事件调度器对象
标识语句导入到已有数据的实例时需要谨慎处理
授权对象账号与权限不随单库备份导出,需单独处理

完整对象导出

完整对象导出
mysqldump -u root -p --single-transaction --set-gtid-purged=OFF \
  --routines --events --triggers --databases appdb > appdb-full.sql
# 含二进制列时加上十六进制输出
mysqldump -u root -p --hex-blob --databases appdb > appdb-blob.sql

使用要点

  • 按目标环境选择标识语句的处理方式,混用会让导入在中途报错
  • 存储程序与事件要显式导出,否则恢复后依赖它们的定时任务与接口会失效
  • 含二进制列的表加上十六进制输出,避免字符集转换造成数据损坏
  • 账号与授权单独备份并优先恢复,避免导入数据时权限不足
  • 导出后核对对象数量:表、过程、事件与触发器都要与源端一致
把带全局事务标识信息的产物导入到已有数据的实例可能直接报错,需按目标环境选择是否写入标识语句。

易漏对象检查单

  • 存储过程与函数:业务逻辑常写在这里,漏掉会导致接口报错
  • 事件调度器对象:定时任务依赖它们,恢复后不生效很难排查
  • 触发器:影响写入行为,缺失会造成数据校验规则失效
  • 账号与授权:不随单库备份导出,需要单独备份并优先恢复

易错点

  • 默认不导出存储过程与事件,只恢复数据表会缺失业务依赖对象
  • 权限对象与数据分开导出时,先恢复账号与权限再导数据,避免中途权限不足
  • 产物携带的标识语句与目标实例状态冲突,导入直接中断
  • 含二进制列的表未使用十六进制输出,导入后数据出现损坏

数据来源与参考

  • MySQL 8.0 Reference Manual(mysqldump 选项)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌