mysqlbinlog恢复数据

# 查看当前binlog状态

show master status\G;

# mysql中查看指定binlog信息

show binlog events in ‘mysql-bin.000010‘;

# 查询指定时间段内/位置的删除语句

mysqlbinlog --no-defaults --start-datetime=‘2020-03-03 07:00:00‘ --stop-datetime=‘2020-03-03 07:30:00‘ mysql-bin.000003 -d dbname -v | grep DELETE -A 5
mysqlbinlog --start-position=331 --stop-position=465 --database=test mysql-bin.000014  -v 

# 恢复

mysqlbinlog --start-position=331 --stop-position=465 --database=test mysql-bin.000014  -v --skip-gtids | mysql -v test

#  将delete语句恢复成insert

mysqlbinlog --database=test mysql-bin.000014  --start-position=331 --stop-position=465 -v --base64-output=deco
de-rows | sed -n ‘/###/p‘ | sed -n ‘s/###//p‘ > test.sql

实例: 恢复delete语句删除的数据(本实例表只有3列,结合实际自行修改)

mysqlbinlog --database=test mysql-bin.000014  --start-position=331 --stop-position=465 -v --base64-output=decode-rows | sed -n ‘/###/p‘ | sed -n ‘s/###//p‘ > test.sql

sed ‘s/DELETE FROM/insert into/g‘ test.sql | sed ‘s/WHERE/select/g‘ | sed ‘s/@3.*/\0;/g‘ | sed ‘s/@[1-2].*/\0,/g‘ | sed ‘s/[^@]\(.*\)=//g‘ > execSQL.sql

source execSQL.sql

原文地址:https://www.cnblogs.com/ray-mmss/p/12404900.html

时间: 2024-11-17 10:26:02

mysqlbinlog恢复数据的相关文章

mysqlbinlog 恢复数据的四种方法

mysqlbinlog 命令 作用:mysqlbinlog 是用来解析mysql的binlog日志的. [[email protected] data]# file mysql-bin.000001 mysql-bin.000001: MySQL replication log [[email protected] data]# mysqlbinlog日志无法直接用cat 查看,需要用mysqlbinlog命令转换为普通文件才能查看 也只有用mysqlbinlog命令把binlog日志转化为普通

使用mysqlbinlog恢复数据

一.开启bin-log 1.安装mysql [[email protected] ~]# yum -y install mysql mysql-devel mysql-server 2.开启bin-log功能 [[email protected] ~]# vi /etc/my.cnf       1 [mysqld]       2 datadir=/var/lib/mysql       3 socket=/var/lib/mysql/mysql.sock       4 user=mysql

不能再手贱了,用mysqlbinlog恢复数据

今天本地部署一个新项目,结果不小心把另外一个库的表全删了,当时那个心啊,用了一些硬盘恢复的工具也没找回来,只好想别的办法了,还好记录了binlog,总算是把数据都还原了.以后真的要看清楚再删,还好是本地的文章库,不是服务器上的库,要不真就麻烦了,不过也正是因为是自己电脑上的库,从来不备份的,所以恢复起来也确实麻烦.在这里记录一下. 先确认你的MYSQL有没有启用bin日志,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin,可以自定义一个目录和前缀名,比如/data

[转] 使用 MYSQLBINLOG 来恢复数据

使用 MYSQLBINLOG 来恢复数据 2009-04-05 12:47:05 标签:mysql mysqlbinlog 恢复 数据库 数据 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/146259 BINLOG就是一个记录SQL语句的过程,和普通的LOG一样.不过只是她是二进制存储,普通的是十进制存储罢了.1.配置文件里要写的东西:[mysqld]log-bin=

使用 MYSQLBINLOG 来恢复数据

2009-04-05 12:47:05 标签:mysql mysqlbinlog 恢复 数据库 数据 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/146259 BINLOG就是一个记录SQL语句的过程,和普通的LOG一样.不过只是她是二进制存储,普通的是十进制存储罢了.1.配置文件里要写的东西:[mysqld]log-bin=mysql-bin(名字可以改成自己的,如

mysqlbinlog恢复误删数据

概述 代码bug,在处理上传出现异常时执行了DELETE FROM t_resource WHERE resource_id = ? OR parent_id = ?因为OR条件导致用户的上传的所有数据被清空了. show 查看是否有开启log-bin备份 show variables like 'log_bin' 欣慰的是,已经开启了二进制日志备份.那接下来就简单多了,找到这个二进制日志,找到这个节点,去恢复它.执行这个命令,查看正在写入的二进制日志是哪个文件 show master stat

MySQL binlog日志恢复数据

我们了解了MySQL 的 binlog 日志的开启方式以及 binlog 日志的一些原理和常用操作,我们知道,binlog 有两大作用,一个是使用 binlog 恢复数据,另一个就是用来做主从复制.本篇笔记就是来记录如何使用 binlog 日志来做数据恢复.当然了,使用 binlog 日志所恢复的数据只能是部分数据,并不能够使用 binlog 日志来做数据库的备份,如果想要做数据库备份,依然要使用我们传统的备份方法,而 binlog 可以作为增量备份. 视频链接:http://www.ronco

SHELL脚本提取binlog delete语句 供恢复数据

binlog日志 如下:/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!40019 SET @@session.max_insert_delayed_threads=0*/;/*!50003 SET @[email protected]@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER /*!*/;# at 120#160111 16:37:29 server id 333336  end_log_pos

mysql通过binlog来恢复数据

mysql通过binlog来恢复数据  一.什么是binlog 1.binlog基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中: 二进制日志的信息: 文件位置:默认存放位置为数据库文件所在目录下 文件的命名方式: 名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog) 2.配置binlog,在配置文件my.cnf中设置,并重启mysql 3.状态的查看:mysql> show variab