mysql恢复dump文件_详解三种方法快速从mysqldump文件中恢复XX表

本文介绍了如何从一个大型的MySQL dump文件中恢复特定表,包括使用awk和sed命令按表顺序截取数据,并提供了一种直接恢复单表的方法。详细步骤包括查看show tables的顺序,然后通过awk或sed操作筛选出目标表的数据,最后执行source命令进行恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

这里以一份备份文件50G的文件来恢复,假设要恢复其中一张表,如果做全库恢复不太现实。下面使用正则匹配的方式去把需要恢复的表数据拿出来,然后进行恢复。

注意前两种方法show tables的表顺序要和mysqldump时的顺序相同

先看一下show tables的顺序:

0a1e770ff0454e89fcb307ce2b629b04.png

1、基于awk截取顺序恢复

顺序恢复calendar表到zt_dept表

awk '/^-- Table structure for table .calendar./,/^-- Table structure for table .zt_dept./{print}' zentao20200505-233001.sql > /data/t1.sql

9871b57c1cfb8e22c9c59e9baa9f9948.png

2、基于sed截取顺序恢复

顺序恢复calendar表到zt_dept表

cat zentao20200505-233001.sql | sed -n -e '/Table structure for table .calendar./,/Table structure for table .zt_dept./p'> /data/t2.sql

b017996eb48aa6f08ec2a4dc07039b5a.png

3、基于sed单表恢复sed -n -e '/DROP TABLE.*`calendar`/,/UNLOCK TABLES/p' zentao20200505-233001.sql > /data/t3.sql

82f47ec1fd46ab3ca3f9464c7ff0b3aa.png

最后做数据恢复时直接source /data/tables.sql即可。

cec57fe9b49f0963edd0be9dc0af3cbf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值