MySQL误操作删除后,怎么恢复数据?
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误操作删除后,怎么恢复数据?的更多相关文章
- MySQL误操作后如何快速恢复数据
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...
- MySQL 误操作后如何快速恢复数据~!~!~
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如这还是线上环境核心业务数据,那这事就闹大了 ...
- MySQL误操作后如何快速恢复数据?
摘要: 利用binlog闪回误操作数据. 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了.假如 ...
- MySQL 误操作后数据恢复(update,delete忘加where条件)【转】
在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句 写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者 ...
- binlog2sql实现MySQL误操作的恢复
对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的 ...
- MySQL误操作后如何快速回滚(转)
本文转自http://www.cnblogs.com/dfcao/p/6147970.html#undefined 感谢作者 基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,My ...
- MySQL binlog2sql实现MySQL误操作的恢复
对于MySQL数据库中的误操作删除数据的恢复问题,可以使用基于MySQL中binlog做到类似于闪回或者生成反向操作的SQL语句来实现,是MySQL中一个非常实用的功能.原理不难理解,基于MySQL的 ...
- 解决在mysql表中删除自增id数据后,再添加数据时,id不会自增1的问题
https://blog.csdn.net/shaojunbo24/article/details/50036859 问题:mysql表中删除自增id数据后,再添加数据时,id不会紧接.比如:自增id ...
- mysql误操作后通过binlog恢复,同时解决tmp目录满的问题
注意: 本文的恢复,并不是基于恢复某个时间点的全量备份后的增量恢复,而是指在现有数据库基础上基于binlog的恢复.适用于较小的数据误操作. 提取日志文件为sql语句: /usr-ext/local/ ...
随机推荐
- linux虚拟机关机、重启命令
linux虚拟机关机.重启命令 一.shutdown 1.shutdown -h now :立即关机 2.shutdown -h 10:53:到10:53关机 3.shutdown -h +10 ...
- 制作一个老旧C118的GSM便携式测试设备
对于OsmocomBB也是被国内外大神玩得不亦乐乎.什么重定向攻击,中间人攻击.都是N年前的东西咯.当然鄙人不会这些.对于地下市场无非就是获取对方短信小则“老.虎.机”,大则支付宝.某日翻了翻“咸”鱼 ...
- 运动控制之一_PID控制理论
PID算法是早期发展起来的控制算法,该算法因其简单.鲁棒性强且可靠性高而被广泛地应用于过程控制和运动控制中. 常规的PID控制系统原理框图如下所示: PID控制系统原理图 误差信号Err(t)输入到控 ...
- 2018-软工机试-B- 梵高先生
B. 梵高先生 单点时限: 1.0 sec 内存限制: 256 MB 谁的父亲死了 请你告诉我如何悲伤 谁的爱人走了 请你告诉我如何遗忘 ——李志<梵高先生> 2009年的最后一天 在义乌 ...
- .net 程序 动态 控制IIS 站点域名绑定
第一步:引用 导入 System.EnterpriseServices及System.DirectoryServices 两个引用 程序引用: using System.DirectoryServic ...
- 使用nginx反向代理实现多端口映射(未解决)
问题: 想实现访问在同一个主机上实现多个域名访问, 如用 blog.xxx.com访问博客(使用8000端口), app.xxx.com访问其他应用(使用8080端口): 不同的服务用URL区分,不用 ...
- RxJS核心概念之Subjet在angular2+上的应用
Subject,在RxJS中是一类特殊的Observable(可观察对象),它可像多个Observer(观察者)推送值.每一个Subject也可以作为Observer(观察者) Subject同样也是 ...
- Fiddler 抓包的基本介绍
一.什么是Fiddler? Fiddler是一种常见的抓包分析软件,我们可以使用它对HTTP请求进行分析,并模拟对应的HTTP请求. 二.Fiddler抓包实现的原理 Fiddler就相当于某二手车直 ...
- Qt学习资料
网址:http://www.qter.org/portal.php?mod=list&catid=18 qt开源社区 (门户)里面有在线学习资料(讲的比较粗略 但是进程比较快 适用于快速学习) ...
- ServletContext、ServletRequest和HttpSession的生命周期
学习web的Listener监听器的时,监听域对象创建的监听器.通过监听器重新分析着三个对象的生命周期,清晰明了. 首先域对象的监听器有三个ServletContextListene.ServletR ...