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