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

场景

我们经常会采用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

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

恢复完成!

你可能感兴趣的:(Mysql,经典实战案例,数据库,mysql)