首页/数据/备份与容灾速查/mysqldump 记录 binlog 位点
数据库与云备份56 条

mysqldump 记录 binlog 位点

导出时把备份对应的 binlog 位点写入产物(--source-data=2 以注释形式记录),作为后续日志回放的起点,是逻辑备份做时间点恢复的关键。

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

记录 binlog 位点是什么

在逻辑备份中记录 binlog 坐标,是让这份备份成为时间点恢复起点的关键:产物里会写入备份对应的一致性时刻与日志文件名、位点,恢复时从这里向后回放即可。没有位点信息时,备份只能回到导出完成的时刻,精细恢复能力无从谈起。

基本信息

作用标记备份一致性时间点对应的日志坐标
配合工具mysqlbinlog 从该坐标向后回放
参数取值1 生成可执行语句,2 生成注释(更稳妥)
取位点机制工具内部短暂加锁并与事务快照协调

带位点导出与查看

带位点导出与查看
mysqldump -u root -p --single-transaction --source-data=2 --databases appdb > appdb.sql
grep -n "CHANGE REPLICATION SOURCE TO" appdb.sql   # 位点以注释行记录
# MySQL 8.0.26 之前参数名为 --master-data=2,当前版本仍兼容但会提示弃用

取值含义

取值产物形态适用情形
0不记录位点只做数据搬迁,不需要时间点恢复
1生成可执行语句直接把备份放到从库上使用
2生成注释行备份与恢复场景更稳妥

使用要点

  • 位点记录与事务快照必须配套:只记录位点而数据不一致,回放起点就不可信
  • 产物中的位点要能与保留的日志文件对齐,日志提前清理会让坐标失去意义
  • 恢复前先核对坐标对应的日志文件是否仍在归档中存在
  • 参数更名后老脚本仍能运行,但应逐步迁移到新名称以免将来升级受阻
  • 位点信息建议同时抄录到备份台账,避免产物损坏后坐标也随之丢失
取位点需要短暂读锁;与一致性快照参数联用时由工具内部协调,无需手工执行全局读锁语句。
回放前确认中间没有日志文件被手工删除或按过期策略清理,否则恢复链会在中途断档,时间点恢复只能停在断点之前。

易错点

  • 8.0.26 起参数更名,老脚本在新版本会收到弃用提示,长期应迁移到新名称
  • 回放前确认中间没有 binlog 被手工删除或过期清理,否则恢复链断裂
  • 只记录位点而备份本身不一致,回放起点错误会让后续数据全部偏移
  • 把位点信息只留在产物内部,产物损坏后坐标一并丢失,应另存台账

数据来源与参考

  • MySQL 8.0 Reference Manual(--source-data / --master-data)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌