首页/数据/数据库速查/时间点恢复(PITR)全流程
备份与恢复56 条

时间点恢复(PITR)全流程

标准流程:全备恢复到新实例 → 用归档 binlog 重放到目标时间点 → 校验业务数据 → 切流;目标时间点要精确到秒或具体事务边界。

数据库速查数据更新于 2026-10-12
  • ① 恢复最近全备(或全备+增量链)到隔离实例
  • ② 确定目标时间点(事故操作的时间戳/位点)
  • ③ 重放 binlog 到目标点前一条语句
  • ④ 校验关键表数据与业务日志
  • ⑤ 应用侧切流/导回数据

重放示例

重放示例
# 恢复到 2026-10-12 09:30:00 之前
mysqlbinlog --stop-datetime="2026-10-12 09:29:59" \
  /data/binlog_archive/mysql-bin.000045 \
  /data/binlog_archive/mysql-bin.000046 \
  | mysql -uroot -p -h drill-host -P3307
不要在故障主库上直接重放做验证;先恢复到新实例核对无误再切流。

易错点

  • 目标时间点越过事故语句:把误删数据又执行了一遍,PITR 前先确认边界
  • 忘记 binlog 头部格式差异(5.7/8.0)导致重放语法报错,工具版本要对齐

数据来源与参考

  • MySQL 8.0 Reference Manual: Point-in-Time Recovery

相关工具

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