Mysql-经典实战案例(7):如何从mysqldump的全备中恢复单表

本文介绍了如何通过mysqldump的全量备份文件针对误删或误改的单表进行恢复,包括提取表结构、插入语句,以及针对删除和大量误修改两种场景的具体操作步骤。

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

场景

我们经常会采用mysqldump的备份方式,对mysql数据库进行每日的全量备份。当业务出现单表被误删或者误更新的现象,恢复全量备份十分消耗时间,那我们如何通过mysqldump备份文件,进行单表恢复呢?

1、从全备备份片full.sql,挖出表名city的表结构,并输出到文件create.sql

# sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `city`/!d;q' full.sql > create.sql

2、从全备备份片full.sql,挖出所有insert语句,并输出到文件data.sql

# grep -i 'INSERT INTO `city`' full.sqll > data.sql 

场景一:业务单表被删除

处理思路:在生产库中直接恢复

进入业务数据库中

mysql -uroot -p

use datadb;

建表

source /tmp/create.sql

重新插入数据

source /dmp/data.sql

恢复完成!

场景二:表内数据被大量误修改

处理思路:新建临时库,将新表恢复到临时库中

新建库

mysql -uroot -p

create database temp;

use temp;

新建表结构

source /tmp/create.sql

重新插入数据

source /dmp/data.sql

最后通过两表关联,将恢复出来的历史数据更新到当前业务表

恢复完成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值