首页/数据/备份与容灾速查/MySQL 单表恢复实战

MySQL 单表恢复实战

生产库误删单表时:把备份恢复到临时实例,取出目标表数据再导回生产,用最小影响面完成恢复。

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

临时实例恢复单表

临时实例恢复单表
# 1) 把全量备份恢复到临时库
mysql -u root -p -e "CREATE DATABASE appdb_rescue"
mysql -u root -p appdb_rescue < /backup/appdb-full.sql

# 2) 从临时库导出目标表
mysqldump -u root -p appdb_rescue orders > /tmp/orders-rescue.sql

# 3) 导回生产库(先确认表结构一致)
mysql -u root -p appdb < /tmp/orders-rescue.sql
影响面只动目标表,其余数据不动
数据时点恢复的是备份时点数据,备份之后的新增需结合 binlog 补齐
替代路径表大时可在临时实例修复后用 XtraBackup 传输表空间,但步骤更复杂
导回生产前先停写目标表或安排窗口:恢复进行中的新写入会被覆盖或冲突。

易错点

  • 直接在生产库执行部分恢复:覆盖与锁表风险落在生产上
  • 忘记用 binlog 补齐备份之后的数据:恢复完成却少了近期交易

数据来源与参考

  • MySQL 8.0 Reference Manual(mysqldump 单表导出)
  • 数据库恢复实践(单表恢复流程)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌