提示:建议每次对数据库进行修改时都做下备份

注意:以下Mysql开启的是row格式的binlog日志,确定到误操作具体时间可能有些麻烦,默认的格式就能很快找出来。这里开启row的原因是还有一种更快的方法实现误操作数据回滚(binlog2sql工具或用python脚本生成反向sql语句),以下介绍的为最常规方法。

1.发现生产主页打不开,并确定是数据库误操作更新了某个表格引起,大概误操作时间为2018-04-03 15:49——2018-04-03 15:55(每次数据库操作前都通过脚本进行了备份,记录的备份时间后面一段大概就是误操作时间,此处备份时间在15:48)

2.vim /etc/my.cnf 注释binlog日志,防止数据恢复时再次被记录

#binlog_do_db=xxx
#max_binlog_size = 100M
#binlog_format = row
#binlog_row_image = full

3.先恢复误操作之前的备份xx.sql

mysql -uroot -p  -S /var/lib/mysql/mysql.sock <xxx.sql

4.导出当前binlog日志以便确定具体误操作时间

mysqlbinlog --start-datetime='2018-04-03 15:49:00' --stop-datetime='2018-04-03 15:55:00' mysql-bin. >test.txt

5.vim test.txt 确认具体误操作位置时间(红色部分)

# at
# :: server id end_log_pos CRC32 0x1b094e96 Table_map: `xxx`.`xxx` mapped to number
# at
# :: server id end_log_pos CRC32 0xa5ba6d25 Update_rows: table id flags: STMT_END_F BINLOG '
NTLDWhMBAAAAMgAAAPIAAAAAAEYAAAAAAAEABHNwMnAABHRlc3QAAgMPAi0AA5ZOCRs=
NTLDWh8BAAAAOQAAACsBAAAAAEYAAAAAAAEAAgAC///8AwAAAAVkYW5uefwDAAAABGxvbmclbbql
'/*!*/;
# at
# :: server id end_log_pos CRC32 0xad17ed0c Xid =
COMMIT/*!*/;
# at
# :: server id end_log_pos CRC32 0x6a703d5a Query thread_id= exec_time= error_code=
SET TIMESTAMP=/*!*/;

6.恢复binlog增量记录部分(15:50:13为误操作时间,从15:51:05开始为后续正常操作),增量恢复分两个部分,15:48:00——15:50:05(日志上看误操作之前最新数据时间)和15:51:00——现在

mysqlbinlog --start-datetime='2018-04-03 15:48:00'  --stop-datetime='2018-04-03 15:51:05'  mysql-bin.000xxx |mysql -uroot -p

mysqlbinlog --start-datetime='2018-04-03 15:51:00' mysql-bin.000xxx |mysql -uroot -p

7.确认数据恢复情况,重新开启binlog日志再重启Mysql

记一次生产mysql数据误操作恢复过程的更多相关文章

  1. delete、update忘加where条件误操作恢复过程演示

    update.delete没有带where条件,误操作,如何恢复呢? 我现在有一张学生表,我要把小于60更新成不及格. mysql> select * from student; +----+- ...

  2. 背景:表A数据误操作,被delete了,恢复。

    SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-18', 'YYYY/MM/DD') select ...

  3. MySQL 数据表操作

    MySQL 数据表操作 创建MySQL数据表需要以下信息: -表名: -表字段名: -定义每个表字段: 一.创建数据表 1)mysql> create  table  table_name (c ...

  4. mysql 数据表操作 目录

    mysql 数据表操作 存储引擎介绍 mysql 使用存储引擎 mysql 数据表的增删改查 mysql 数据类型 mysql 约束条件

  5. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……

    热门资讯 1.Stackoverflow 2020年度报告出炉!开发者最喜爱的数据库是什么?[摘要]2020年2月,近6.5万名开发者参与了 Stackoverflow 的 2020 年度调查,这份报 ...

  6. mysql数据表操作&库操作

    首先登陆mysql:mysql -uroot -proot -P3306 -h127.0.0.1 查看所有的库:show databases; 进入一个库:use database; 显示所在的库:s ...

  7. mongo 误操作恢复数据

    场景:我往同一个集合里面插入 三条数据  aa:aa  bb:bb  cc:cc .后来我后悔了,不想插入 bb:bb,通过oplog重放过滤好 bb:bb这条数据. 原理: 1.通过 oplog.r ...

  8. 数据误操作,删库跑路?教你使用ApexSQLLog工具从 SQLServer日志恢复数据!

    前几天同事不小心误操作,将SQLServer库的一张表的一个状态字段给刷成了一个统一状态,由于是update执行所以原来的相关状态无法确定.发生这种事情的时候我的小伙伴背后 一凉,估计心里里面想这怕是 ...

  9. Oracle数据库常见的误操作恢复方法(上)

    实验环境:Linux6.4 + Oracle 11g 面向读者:Oracle开发维护人员 概要: 1.误操作drop了emp表 2.误操作delete了emp表 3.误操作delete了emp表的部分 ...

随机推荐

  1. 转://如何增加linux根目录的磁盘空间(基于LVM)?

    问题引出: 在测试过程中替换so文件,报磁盘空间不足的错误. ▲问题分析: 由于当时系统部署架构的考虑,把软件和数据库部署在了同一台机器上,并且给了30G的磁盘空间.系统上占用磁盘空间的有2部分,一是 ...

  2. 第1章 Linux内核简介

    1.1 Unix的历史 unix的优点 简介,没有繁冗的系统调用 所有东西都被当成了文件对待,对文件和对设备的操作是通过同样的系统调用的接口实现的 内核和相关工具使用C编写,具有很高的可移至性 创建新 ...

  3. 【vue】vue +element 搭建项目,在使用InputNumber 计数器时遇到的问题

    自己遇到的坑: InputNumber 计数器的change事件定义时如果不传入参数value,会产生this.num不同步的问题 <template> <el-input-numb ...

  4. Python中关于if __name__=='__main__'的问题

    先举一个简单的例子: 这里有两个.py的文件,a.py和b.py a.py内容为: b.py的内容为: 当执行b.py时结果为: 也就是将a.py文件里的内容执行一边,b.py里的内容执行一边,这显然 ...

  5. 手动安装 Eclipse 插件 Viplugin

    对 Vimer 来说,切换到 Eclipse 环境,传统的码code方式明显降低效率,Viplugin 是一款类 Vi 模拟器,能实现 Vi 的基本编辑功能. 安装方法 (适用于Windows 和 L ...

  6. open-falcon之使用mail-provider发邮件(支持smtp SSL协议)

    一.首先确定go语言安装环境配置好 1.进入官网下载源码包 https://golang.org/dl/ 2.解压缩,配置环境变量 在/etc/profile最后加上export PATH=$PATH ...

  7. Generative Adversarial Nets[EBGAN]

    0. 背景 Junbo Zhao等人提出的"基于能量的GAN"网络,其将判别器视为一个能量函数而不需要明显的概率解释,该函数可以是一个可训练的损失函数.能量函数是将靠近真实数据流形 ...

  8. Generative Adversarial Nets[iGAN]

    本文来自<Generative Visual Manipulation on the Natural Image Manifold>,是大神Jun-Yan Zhu在2016年9月的作品. ...

  9. notpad++常用操作与快捷键

    1.列编辑模式 按住alt+shift进入列编辑模式

  10. .NET Core Community 第二个千星项目诞生:Util

    本文所有打赏将全数捐赠于 NCC(NCC 的资金目前由 倾竹大人 负责管理),请注明捐赠于 NCC.捐赠情况将由倾竹大人另行公示. 项目简介 作为一款旨在提升小型团队开发输出能力.提高团队效率.降低项 ...