通过 MySQL 二进制日志恢复删除的记录
删除 MySQL 表中的数据
mysql> use sbtest;
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)mysql> delete from sbtest1;
Query OK, 1000 rows affected (0.21 sec)mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.00 sec)
确认时间点和当前二进制日志文件,从二进制日志中读取操作记录
mysqlbinlog \
--start-datetime="2018-09-27 15:55:00" \
--stop-datetime="2018-09-27 15:00:00" \
--base64-output=decode-rows \
--result-file=result.sql \
-v /var/lib/mysql/binlog.000022
其中的一条记录
去除不相关的内容
grep -A 5 "DELETE FROM \`sbtest\`.\`sbtest1\`" result.sql > 1.txt
提取数据
grep "=" 1.txt > 2.txt
sed -i 's/### //g' 2.txt
使用以下脚本生成 INSERT 语句
[root@mysql03 tmp]# cat r2.sh
#!/bin/bash
vs=""
while read line
don=`echo $line | awk -NF "=" '{print $1}'`v=`echo $line | awk -NF "=" '{print $2}'`if [ "$n" = "@1" ]; thenvs="INSERT INTO \`sbtest\`.\`sbtest1\` VALUES("$velif [ "$n" = "@2" ]; thenvs=$vs" , "$velif [ "$n" = "@3" ]; thenvs=$vs" , "$velif [ "$n" = "@4" ]; thenvs=$vs" , "$v");"echo $vs >> 3.txtfi
done < 2.txt
[root@mysql03 tmp]# sh r2.sh
将数据导入到 MySQL 表中
[root@mysql03 tmp]# mysql < 3.txt
mysql> select count(*) from sbtest1;
+----------+
| count(*) |
+----------+
| 1000 |
+----------+
1 row in set (0.00 sec)
转载于:https://blog.51cto.com/linux10000/2286654
通过 MySQL 二进制日志恢复删除的记录相关推荐
- 根据mysql数据库日志恢复删除数据
根据mysql数据库日志恢复删除数据 BINLOG就是一个记录SQL语句的过程,和普通的LOG一样.不过只是她是二进制存储,普通的是十进制存储罢了. 1.配置文件里要写的东西: [mysqld] lo ...
- mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库
二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...
- mysql 二进制日志后缀数字最大为多少
之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary ...
- mysql 二进制日志详解_Mysql二进制日志详解
引言 注:图片取自网络 提一下比较重要的几个: 重做日志(Redo Log):重做日志是实现mysql事务的持久性的原理之一,当新增数据时,Redo Log会备份新数据,在事务提交前,只要持久化Red ...
- mysql二进制日志内容说明_MySQL二进制日志相关问题详细说明
软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...
- 2.5.2 MySQL二进制日志介绍
MySQL二进制日志介绍 什么是 binary log 这个文件记录了mysql数据库所有的DDL和DML(除了数据查询语句 select)语句事件.用来记录数据库中发生的修改情况. 比如:数据的修改 ...
- mysql二进制日志重置_MySQL二进制日志备份和恢复详解
原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...
- mysql 二进制日志大小_mysql二进制日志。
mysql二进制日志: 命令行参数: --log-bin[=file_name] 文件名 --log-bin-index[=file]文件索引 --max_binlog_size 单个文件 ...
- mysql二进制日志的开启和使用
mysql二进制日志的开启和使用 二进制日志(BINLOG)记录了所有的ddl和dml语句,但不包括数据查询语句.语句以"事件"的形式保存,描述数据更改过程. 环境:win8 my ...
最新文章
- 《PHP和MySQL Web开发》学习之二--数据的存储与检索
- Flink从入门到精通100篇(三)-如何利用InfluxDB+Grafana搭建Flink on YARN作业监控大屏环境
- 关于高并发,我想告诉你这些!
- Spring学习(九)Spring 和数据库编程【了解】
- Hadoop学习之pig
- AAPT2 error: check logs for details.
- delphi控件切图界面闪烁_先本设计教你跳过UI小程序的七个坑
- ora-24247:网络访问被访问控制列表(ACL)拒绝
- 【英语学习】【Level 08】U02 Movie Time L2 In black and white
- BZOJ 1072 排列
- IDEA自动编译不用每次make
- 读书笔记∣元数据:用数据的数据管理你的世界 Ch.5-8
- 团队作业:《构建之法》团队学习心得
- 华为云备份会上传私密相册吗_华为、小米都是国产手机,为啥文件夹却是“英文”?哪些能删除?...
- Android-Universal-Image-Loader-master(图片浏览+缓存)
- 手机序列号和IMEI号的区别
- NodeJS开发简易图书管理系统
- 2021国赛新大陆物联网Ubuntu系统维护(中职)
- 读《Machine Learning Done Wrong》(机器学习易犯错误)有感
- SQL Server 2019下载安装教程
热门文章
- 学习 Node.js 的 6 个步骤
- 小米手机连接不上网络 或者 暂时关闭状况不佳的连接
- 进程间能否传递指针?
- 函数的返回竟然能作为左值
- 基于Spring Security的认证方式_Spring Security 的认证流程_Spring Security OAuth2.0认证授权---springcloud工作笔记123
- k8s核心技术-Helm(安装和配置仓库)---K8S_Google工作笔记0045
- 两篇transfomer 论文解读
- 简体中文Win7打开简体中文chm中文乱码解决方法
- 用phpcms如何将静态页面制作成企业网站(中)
- ftk学习记(窗口全屏设置篇)