首页/数据/数据库速查/从逻辑备份中恢复单表
备份与恢复56 条

从逻辑备份中恢复单表

只有整库 dump 但要救一张表:先找表在文件中的起止行区间,抽取到临时库验证后再进生产;mydumper 目录备份可直接定位单表文件。

数据库速查数据更新于 2026-10-12

从 mysqldump 提取单表

从 mysqldump 提取单表
# 1) 定位表片段(结构+数据以两个分隔注释为界)
grep -n "Table structure for table" all.sql | sed -n '/orders/p'
# 2) 抽取该表区间到文件(示例行号 1200-1580)
sed -n '1200,1580p' all.sql > orders_extract.sql
# 3) 恢复到临时库验证
mysql -uroot -p tmp_restore < orders_extract.sql
# 4) 确认后导出进生产(或直接重放)
mysqldump -uroot -p tmp_restore orders | mysql -uroot -p appdb
区间边界"Table structure for table" 与 "Dumping data for table" 注释
mydumper备份目录中每表独立文件,定位即用
验证临时库先恢复再进生产
sed 行号法对文件重新生成极敏感;更稳的是用 awk 匹配表名边界(脚本化)。

易错点

  • 把带 DROP TABLE 的片段直接进生产:先删后建,操作前务必开事务或改片段
  • 抽取区间越界:手工行号易错,抽取后先检查文件头尾注释

数据来源与参考

  • MySQL 8.0 Reference Manual: mysqldump 输出格式

相关工具

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