MySQL误操作删除后,怎么恢复数据?
登陆查数据库
mysql> select * from abc.stad;
+----+-----------+
| id | name |
+----+-----------+
| 1 | abc1 |
| 2 | abc2 |
+----+-----------+

0点全量备份
[root@M ~]# mkdir /opt/backup
[root@M ~]# mysqldump -uroot -p123456 -F -B --master-data=2 abc|gzip >/opt/backup/quanbei_$(date +%F).sql.gz
[root@M ~]# ll /opt/backup/quanbei_2018-11-20.sql.gz
-rw-r--r--. 1 root root 942 Nov 20 11:08 /opt/backup/quanbei_2018-11-20.sql.gz

写入数据
mysql> insert into abc.stad(name) values('abc123');
mysql> insert into abc.stad(name) values('abc134');
mysql> select * from stad;
+----+-----------+
| id | name |
+----+-----------+
| 1 | abc1 |
| 2 | abc2 |
| 3 | abc123 |
| 4 | abc134 |
+----+-----------+

模拟误操作,把库删除
mysql> drop database abc;

发现故障,排查问题检查全备份
[root@M ~]# ll /opt/backup/quanbei_2018-11-20.sql.gz
-rw-r--r--. 1 root root 942 Nov 20 11:08 /opt/backup/quanbei_2018-11-20.sql.gz
[root@M ~]# cd /opt/backup/
[root@M backup]# gzip -d quanbei_2018-11-20.sql.gz
[root@M backup]# ll
-rw-r--r--. 1 root root 2776 Nov 20 11:08 quanbei_2018-11-20.sql
[root@M backup]# grep -i "CHANGE" quanbei_2018-11-20.sql #检查mysqlbinlog确认
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000017', MASTER_LOG_POS=120;

检查增量的binlog
[root@M backup]# ll /var/lib/mysql/mysql-bin.000017
-rw-rw----. 1 mysql mysql 789 Nov 20 11:13 /var/lib/mysql/mysql-bin.000017

刷新binlog,可以确认恢复的目标,只需要回复mysql-bin.000017即可!
[root@M ~]# mysqladmin -uroot -p123456 flush-logs;
[root@M backup]# ll /var/lib/mysql/
-rw-rw----. 1 mysql mysql 656137 Nov 20 11:06 mysql-bin.000015
-rw-rw----. 1 mysql mysql 167 Nov 20 11:08 mysql-bin.000016
-rw-rw----. 1 mysql mysql 836 Nov 20 11:22 mysql-bin.000017
-rw-rw----. 1 mysql mysql 120 Nov 20 11:22 mysql-bin.000018

把binlog拷贝至其他地方,方便操作,保留binlog
[root@M backup]# cp /var/lib/mysql/mysql-bin.000017 /opt/backup/
[root@M backup]# ll /opt/backup/
total 8
-rw-r-----. 1 root root 836 Nov 20 11:24 mysql-bin.000017
-rw-r--r--. 1 root root 2776 Nov 20 11:08 quanbei_2018-11-20.sql

整理汇总binlog,删除不需要的sql语句
[root@M backup]# mysqlbinlog /var/lib/mysql/mysql-bin.000017 >bin.sql
[root@M backup]# vim bin.sql
drop database abc #把这一行的数据删除,不然就白恢复了

对外不写入的情况下:
[root@M backup]# mysql -uroot -p123456 <quanbei_2018-11-20.sql #恢复全备份
[root@M backup]# mysql -uroot -p123456 abc <bin.sql #恢复增量备份

查看数据是否恢复成功!
mysql> select * from abc.stad;
+----+-----------+
| id | name |
+----+-----------+
| 1 | abc1 |
| 2 | abc2 |
| 3 | abc123 |
| 4 | abc134 |
+----+-----------+

确认完毕,恢复成功!!!!!!

MySQL误操作删除后,怎么恢复数据?的更多相关文章

  1. MySQL误操作后如何快速恢复数据

    基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...

  2. MySQL 误操作后如何快速恢复数据~!~!~

    基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...

  3. MySQL误操作后如何快速恢复数据?

    摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如 ...

  4. MySQL 误操作后数据恢复(update,delete忘加where条件)【转】

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句 写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者 ...

  5. binlog2sql实现MySQL误操作的恢复

    对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的 ...

  6. MySQL误操作后如何快速回滚(转)

    本文转自http://www.cnblogs.com/dfcao/p/6147970.html#undefined 感谢作者 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,My ...

  7. MySQL binlog2sql实现MySQL误操作的恢复

    对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的 ...

  8. 解决在mysql表中删除自增id数据后,再添加数据时,id不会自增1的问题

    https://blog.csdn.net/shaojunbo24/article/details/50036859 问题:mysql表中删除自增id数据后,再添加数据时,id不会紧接.比如:自增id ...

  9. mysql误操作后通过binlog恢复,同时解决tmp目录满的问题

    注意: 本文的恢复,并不是基于恢复某个时间点的全量备份后的增量恢复,而是指在现有数据库基础上基于binlog的恢复.适用于较小的数据误操作. 提取日志文件为sql语句: /usr-ext/local/ ...

随机推荐

  1. linux虚拟机关机、重启命令

    linux虚拟机关机.重启命令   一.shutdown 1.shutdown -h now :立即关机 2.shutdown -h 10:53:到10:53关机 3.shutdown -h +10 ...

  2. 制作一个老旧C118的GSM便携式测试设备

    对于OsmocomBB也是被国内外大神玩得不亦乐乎.什么重定向攻击,中间人攻击.都是N年前的东西咯.当然鄙人不会这些.对于地下市场无非就是获取对方短信小则“老.虎.机”,大则支付宝.某日翻了翻“咸”鱼 ...

  3. 运动控制之一_PID控制理论

    PID算法是早期发展起来的控制算法,该算法因其简单.鲁棒性强且可靠性高而被广泛地应用于过程控制和运动控制中. 常规的PID控制系统原理框图如下所示: PID控制系统原理图 误差信号Err(t)输入到控 ...

  4. 2018-软工机试-B- 梵高先生

    B. 梵高先生 单点时限: 1.0 sec 内存限制: 256 MB 谁的父亲死了 请你告诉我如何悲伤 谁的爱人走了 请你告诉我如何遗忘 ——李志<梵高先生> 2009年的最后一天 在义乌 ...

  5. .net 程序 动态 控制IIS 站点域名绑定

    第一步:引用 导入 System.EnterpriseServices及System.DirectoryServices 两个引用 程序引用: using System.DirectoryServic ...

  6. 使用nginx反向代理实现多端口映射(未解决)

    问题: 想实现访问在同一个主机上实现多个域名访问, 如用 blog.xxx.com访问博客(使用8000端口), app.xxx.com访问其他应用(使用8080端口): 不同的服务用URL区分,不用 ...

  7. RxJS核心概念之Subjet在angular2+上的应用

    Subject,在RxJS中是一类特殊的Observable(可观察对象),它可像多个Observer(观察者)推送值.每一个Subject也可以作为Observer(观察者) Subject同样也是 ...

  8. Fiddler 抓包的基本介绍

    一.什么是Fiddler? Fiddler是一种常见的抓包分析软件,我们可以使用它对HTTP请求进行分析,并模拟对应的HTTP请求. 二.Fiddler抓包实现的原理 Fiddler就相当于某二手车直 ...

  9. Qt学习资料

    网址:http://www.qter.org/portal.php?mod=list&catid=18 qt开源社区 (门户)里面有在线学习资料(讲的比较粗略 但是进程比较快 适用于快速学习) ...

  10. ServletContext、ServletRequest和HttpSession的生命周期

    学习web的Listener监听器的时,监听域对象创建的监听器.通过监听器重新分析着三个对象的生命周期,清晰明了. 首先域对象的监听器有三个ServletContextListene.ServletR ...