1.事故
后台操作权限较高人员执行错误的删除语句:mysql> delete from order where order_id=1;
2.事故影响
用户看不到这个定单,且这个定单是活跃的定单
3.是故时间
4.恢复处理流程
保留现场。
mysql> delete from order where order_id=4;
Query OK, 1 row affected (0.00 sec)
记录误操作语句。
delete from order where order_id=1;
评估受影响数据库,表,和记录数。
weshop_pure,order,1行记录被删除
拷贝最近备份文件和从备份时间到当前的binlog日志文件到测试机
2016-02-29.3:18:48.db3.weshop_pure.sql.gz
mysql-bin.000039:包含从2016-02-29.3:18:48到当前的二进制日志
查看二进制中误操作语句执行的位置点
mysqlbinlog   ./mysql-bin.000039 >./mysqlbinlog.tmp
view ./mysqlbinlog.tmp
/*!*/;
# at 21729
#160229 11:23:03 server id 1  end_log_pos 21860 CRC32 0xab8e98fc        Query   thread_id=29217 exec_time=0     error_code=0
SET TIMESTAMP=1456716183/*!*/;
delete from order where order_id=4
/*!*/;
解压数据备份文件
gunzip 2016-02-29.3:18:48.db3.weshop_pure.sql.gz
在测试库中执行数据备份文件,恢复数据库到初始时间点
mysql -udba -p -h127.0.0.1 < ./2016-02-29.11:18:48.db3.weshop_pure.sql
执行binlog日志恢复到误操作之前
mysqlbinlog  --stop_position=21729 ./mysql-bin.000039 |mysql -udba -p123456 -h127.0.0.1
查看数据是否恢复
mysql> SELECT * FROM `order`;
+----------+------------------+------------------+----------+--------------+----------+------------+--------------+------------+--------------+--------------+---------------+--------------+--------------+------------+-----------+---------------+--------------+------------------+-------------+--------------+------------+--------------+---------------+------------+------------+---------------+
| order_id | order_sn         | pay_sn           | store_id | store_name   | buyer_id | buyer_name | buyer_email  | add_time   | payment_code | payment_time | finnshed_time | goods_amount | order_amount | rcb_amount | pd_amount | rebate_amount | shipping_fee | evaluation_state | order_state | refund_state | lock_state | delete_state | refund_amount | delay_time | order_from | shipping_code |
+----------+------------------+------------------+----------+--------------+----------+------------+--------------+------------+--------------+--------------+---------------+--------------+--------------+------------+-----------+---------------+--------------+------------------+-------------+--------------+------------+--------------+---------------+------------+------------+---------------+
|        2 | 8000000000050501 | 6005100574235001 |        1 | **联盟     |      363 | crj        |******3.com | 1456713480 | predeposit   |   1456713480 |    1456715975 |      1000.00 |      1000.00 |    1000.00 |      0.00 |          0.00 |         0.00 |                0 |          40 |            0 |          0 |            0 |          0.00 | 1456713523 |          1 | NULL          |
|        3 | 8000000000050601 | 5105100600824001 |        1 | **联盟     |      363 | crj        | ******3.com | 1456716008 | offline      |            0 |             0 |      1000.00 |      1000.00 |       0.00 |      0.00 |          0.00 |         0.00 |                0 |           0 |            0 |          0 |            0 |          0.00 |          0 |          1 |               |
|        4 | 8000000000050701 | 9205100601392001 |        1 | **联盟     |      363 | crj        | ******3.com | 1456716107 | predeposit   |   1456716107 |             0 |      1000.00 |      1000.00 |    1000.00 |      0.00 |          0.00 |         0.00 |                0 |          30 |            0 |          0 |            0 |          0.00 | 1456716134 |          1 | NULL          |
+----------+------------------+------------------+----------+--------------+----------+------------+--------------+------------+--------------+--------------+---------------+--------------+--------------+------------+-----------+---------------+--------------+------------------+-------------+--------------+------------+--------------+---------------+------------+------------+---------------+
3 rows in set (0.00 sec)
导出误删数据
mysqldump -udba -p -h127.0.0.1 weshop_pure --tables order --extended-insert=false --complete-insert --where='order_id=4'
......
LOCK TABLES `order` WRITE;
/*!40000 ALTER TABLE `order` DISABLE KEYS */;
INSERT INTO `order` (`order_id`, `order_sn`, `pay_sn`, `store_id`, `store_name`, `buyer_id`, `buyer_name`, `buyer_email`, `add_time`, `payment_code`, `payment_time`, `finnshed_time`, `goods_amount`, `order_amount`, `rcb_amount`, `pd_amount`, `rebate_amount`, `shipping_fee`, `evaluation_state`, `order_state`, `refund_state`, `lock_state`, `delete_state`, `refund_amount`, `delay_time`, `order_from`, `shipping_code`) VALUES (4,8000000000050701,9205100601392001,1,'**联盟',363,'crj','123E@123.com',1456716107,'predeposit',1456716107,0,1000.00,1000.00,1000.00,0.00,0.00,0.00,0,30,0,0,0,0.00,1456716134,1,NULL);
/*!40000 ALTER TABLE `order` ENABLE KEYS */;
UNLOCK TABLES;
......
拷贝insert语句到主库上执行

检查是否还原数据


5.备注
本次案例展示了delete误删除生产数据,利用dump备份和binlog日志恢复数据,其实所有的误操作都可以通过此方式恢复
应该严格控制数据库权限,最大限度降低误操作概率
养成好习惯,危险操作(delete,update,DDL)之前一定要先备份数据

mysql误删除数据恢复处理相关推荐

  1. windows下mysql误删除数据恢复

    1.进入到mysql所在的bin目录 mysql -u root -p -default-character-set=utf8 命令解释: -default-character-set:设置登录mys ...

  2. Mysql数据库误删除数据恢复成功

    Mysql数据库误删除数据恢复成功 [客户描述] 客户在网站管理后台误操作把"报表"和"代理"数据删除,因数据库只有2月份的备份,丢失近三个月的数据. [数据库 ...

  3. win32 mysql误删数据恢复_mysql误删数据恢复

    原创 mysql误删数据恢复我这里搜了一下,貌似好多方法,搜索表后是因为表太多所以看不完所以就看到了这篇文章,你看看你的数据重建了吗?或者点击按钮在目录下的文件恢复? 试试这个,如果没有的话,说明这个 ...

  4. 阿里云rds mysql数据库数据恢复到ecs中

    背景: aliyun上的rds数据库快满了,于是删除了某个备份的表 后面大boss说是有用的表,需要恢复回来,阿里云有7天内的物理全量备份(通过percona-xtrabackup备份的) 第一时间应 ...

  5. mysql误删除表后无法重建

    mysql误删除表,数据库为demo 情况:删除表problem提示不存在,新建problem表又提示已存在 解决方案 1.新建一个数据库test,执行create建表语句 2.cp 命令将test下 ...

  6. MySQL binlog 数据恢复

    不求人,MySQL Binlog数据恢复 文章目录 不求人,MySQL Binlog数据恢复 浅谈恢复形式 开启 binlog 及配置 删库跑路(搭建测试数据库,然后删除它) 起死回生(分析binlo ...

  7. 宝塔数据库mysql误删除快速恢复

    转载请注明: 藏羚骸的博客~宝塔数据库mysql误删除快速恢复. 新来的实习女大学生,在工作中,更新项目时一键清空大量数据表里的数据,是在没办法了找到我,仓皇失措泫然欲泣的,怕公司让自己承担损失,那么 ...

  8. mysql 误删除ibdata1,MySQL 误删除ibdata1之后的恢复方法

    这篇文章主要为大家详细介绍了MySQL 误删除ibdata1之后的恢复方法,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编小韵来看看吧! mysql 误删除ibd ...

  9. 误删阿里云mysql恢复数据恢复_mysql数据库误删除后的数据恢复操作说明-阿里云开发者社区...

    在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失! 然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么 ...

  10. Mysql主从异常 表被回滚_oracle表回滚到一个指定时间的操作语句 oracle 误删除数据恢复...

    -- 1. 添加恢复功能. alter table 表名 enable row movement; -- 2. 查看恢复记录 select * from 表名 as of timestamp to_t ...

最新文章

  1. 带评分的Jupyter资源列表:270个开源项目,总计24w星,帮你快速找代码
  2. C 语言 链表的创建与打印
  3. Jmeter----连接mysql数据库及常见问题处理
  4. 做科研没人带,发不了文章怎么办?
  5. python字符串数字求和_python处理字符串:将字符串中的数字相加求和
  6. ArcGIS地理坐标系与投影坐标系
  7. 一些算法题,欢迎来改进
  8. bootstrap datetimepicker 复选可删除,可规定指定日期不可选
  9. 从零开始实现ASP.NET Core MVC的插件式开发(一) - 使用ApplicationPart动态加载控制器和视图
  10. Android通知栏Notification弹出横幅显示的解决方法
  11. java 反复器_java集合类中的枚举器(反复器)
  12. c语言中可以使用setw函数吗,string和stringstream+setw()用法总结
  13. 圣诞节来了,雪花纷飞的CSS3动画,还不首页用起来
  14. 常用HTML技术 淘宝店铺装修
  15. ps去掉图片上的文字的6种方法
  16. 动圈耳机振膜_小白大讲堂: 耳机振膜材料对音质的影响
  17. 百词斩-扇贝测试评估
  18. QQ空间首页模仿制作——HTML布局练习
  19. Centos7.8虚拟机安装以及克隆后修改静态ip
  20. 【解题报告】2017-2018 8th BSUIR Open Programming Contest-C Good subset 线性基+线段树

热门文章

  1. 搜狗输入法原先能在word中输入中文,现在不行。
  2. 鸿蒙会出电脑系统吗,鸿蒙有没有可能出PC操作系统?
  3. wingide python_Python开发利器WingIDE破解方法
  4. matlab多重比较lsd法,多重比较法-LSD I 附赠统计学最全思维导图~
  5. 课堂派题库格式转换程序
  6. 安卓逆向 -- AndroidKiller介绍
  7. 资产证券化:国际借鉴与中国实践案例 读后感
  8. 博客备份工具(博主网)开发略谈
  9. 力扣刷题 DAY_84 贪心
  10. 风行python_Python是啥?竟然彻底改变了老板对我的看法……