MySQL使用binlog2sql闪回误删除数据
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,查询数据库相关配置参数root [test]> show global variables like 'binlog%format%';+---------------+-------+| Varia
千家信息网最后更新 2025年11月07日MySQL使用binlog2sql闪回误删除数据
查询数据库相关配置参数
root [test]> show global variables like 'binlog%format%';+---------------+-------+| Variable_name | Value |+---------------+-------+| binlog_format | ROW |+---------------+-------+1 row in set (0.00 sec)root [test]> show global variables like 'binlog%row%image%';+------------------+-------+| Variable_name | Value |+------------------+-------+| binlog_row_image | FULL |+------------------+-------+1 row in set (0.00 sec)root [test]> show global variables like '%log%bin%';+----------------------------------+-----------------------------------------------+| Variable_name | Value |+----------------------------------+-----------------------------------------------+| log_bin | ON || log_bin_basename | /data1/mysql_log_23306/binlog/mysql-bin || log_bin_index | /data1/mysql_log_23306/binlog/mysql-bin.index || log_bin_trust_function_creators | ON || log_bin_use_v1_row_events | OFF || log_statements_unsafe_for_binlog | ON |+----------------------------------+-----------------------------------------------+6 rows in set (0.01 sec)
安装binlog2sql
正克隆到 'binlog2sql'...remote: Counting objects: 298, done.remote: Compressing objects: 100% (4/4), done.remote: Total 298 (delta 0), reused 1 (delta 0), pack-reused 294接收对象中: 100% (298/298), 147.01 KiB | 49.00 KiB/s, done.处理 delta 中: 100% (151/151), done.[root@mysql-server binlog2sql]# source ../venv4archer/bin/activate(venv4archer) [root@mysql-server binlog2sql]# pip install -r requirements.txtRequirement already satisfied: PyMySQL==0.7.11 in /data1/venv4archer/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (0.7.11)Collecting wheel==0.29.0 (from -r requirements.txt (line 2)) Cache entry deserialization failed, entry ignored Downloading https://files.pythonhosted.org/packages/8a/e9/8468cd68b582b06ef554be0b96b59f59779627131aad48f8a5bce4b13450/wheel-0.29.0-py2.py3-none-any.whl (66kB) 100% |████████████████████████████████| 71kB 103kB/s Collecting mysql-replication==0.13 (from -r requirements.txt (line 3)) Downloading https://files.pythonhosted.org/packages/dd/23/384047702e694139e9fe75a8ba7ad007e8942fd119ebadabc32ce19f70f2/mysql-replication-0.13.tar.gzBuilding wheels for collected packages: mysql-replication Running setup.py bdist_wheel for mysql-replication ... done Stored in directory: /root/.cache/pip/wheels/91/33/05/32b16ccadd4fc566ff38af96afdeb5d57d49c2f1eff0402164Successfully built mysql-replicationInstalling collected packages: wheel, mysql-replication Found existing installation: wheel 0.31.1 Uninstalling wheel-0.31.1: Successfully uninstalled wheel-0.31.1Successfully installed mysql-replication-0.13 wheel-0.29.0
创建测试数据,并执行误删除
root [(none)]> flush logs;Query OK, 0 rows affected (0.00 sec)root [(none)]> use testDatabase changedroot [test]> create table user(id int(12) unsigned auto_increment comment 'id' primary key, name varchar(15), add_time timestamp);Query OK, 0 rows affected (0.01 sec)root [test]> insert into user(name, add_time) values('neo', '2018-09-01'), ('trinity', '2018-09-02'), ('jason', '2018-09-05');Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0root [test]> delete from user where add_time < '2018-09-05';Query OK, 2 rows affected (0.01 sec)查看二进制日志文件
root [test]> show binary logs;+------------------+-----------+| Log_name | File_size |+------------------+-----------+| mysql-bin.000002 | 2236 || mysql-bin.000003 | 201 || mysql-bin.000004 | 1218 |+------------------+-----------+3 rows in set (0.00 sec)
解析出标准SQL
(venv4archer) [root@mysql-server binlog2sql]# python binlog2sql/binlog2sql.py -uroot -p'root' -h 127.0.0.1 -P 23306 -dtest -tuser --start-file='mysql-bin.000004' --start-datetime='2018-09-14 17:00:00' --stop-datetime='2018-09-14 18:25:00' > /tmp/20180914_raw.sql(venv4archer) [root@mysql-server binlog2sql]# cat /tmp/20180914_raw.sqlUSE b'test';create table user(id int(12) unsigned auto_increment comment 'id' primary key, name varchar(15), add_time timestamp);INSERT INTO `test`.`user`(`id`, `name`, `add_time`) VALUES (1, 'neo', '2018-09-01 00:00:00'); #start 411 end 824 time 2018-09-14 18:22:33INSERT INTO `test`.`user`(`id`, `name`, `add_time`) VALUES (2, 'trinity', '2018-09-02 00:00:00'); #start 411 end 824 time 2018-09-14 18:22:33INSERT INTO `test`.`user`(`id`, `name`, `add_time`) VALUES (3, 'jason', '2018-09-05 00:00:00'); #start 411 end 824 time 2018-09-14 18:22:33DELETE FROM `test`.`user` WHERE `id`=1 AND `name`='neo' AND `add_time`='2018-09-01 00:00:00' LIMIT 1; #start 855 end 1187 time 2018-09-14 18:23:31DELETE FROM `test`.`user` WHERE `id`=2 AND `name`='trinity' AND `add_time`='2018-09-02 00:00:00' LIMIT 1; #start 855 end 1187 time 2018-09-14 18:23:31
解析出回滚SQL
(venv4archer) [root@mysql-server binlog2sql]# python binlog2sql/binlog2sql.py -uroot -p'root' -h 127.0.0.1 -P 23306 -dtest -tuser --start-file='mysql-bin.000004' --start-datetime='2018-09-14 17:00:00' --stop-datetime='2018-09-14 18:25:00' -B > /tmp/20180914_rollback.sql (venv4archer) [root@mysql-server binlog2sql]# cat //tmp/20180914_rollback.sql INSERT INTO `test`.`user`(`id`, `name`, `add_time`) VALUES (2, 'trinity', '2018-09-02 00:00:00'); #start 855 end 1187 time 2018-09-14 18:23:31INSERT INTO `test`.`user`(`id`, `name`, `add_time`) VALUES (1, 'neo', '2018-09-01 00:00:00'); #start 855 end 1187 time 2018-09-14 18:23:31DELETE FROM `test`.`user` WHERE `id`=3 AND `name`='jason' AND `add_time`='2018-09-05 00:00:00' LIMIT 1; #start 411 end 824 time 2018-09-14 18:22:33DELETE FROM `test`.`user` WHERE `id`=2 AND `name`='trinity' AND `add_time`='2018-09-02 00:00:00' LIMIT 1; #start 411 end 824 time 2018-09-14 18:22:33DELETE FROM `test`.`user` WHERE `id`=1 AND `name`='neo' AND `add_time`='2018-09-01 00:00:00' LIMIT 1; #start 411 end 824 time 2018-09-14 18:22:33
数据
二进制
参数
对象
数据库
文件
日志
标准
处理
查询
测试
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
平度分销软件开发服务公司
聊天记录服务器存储
日本学校网络安全
虹口区营销软件开发销售方法
泛微oa底层数据库
gic云数据库
安徽ai人工智能服务器
如何预防网络安全案事件
asp上传图片数据库
杭州象扑网络技术有限公司
性价比好的即时通讯软件开发
计算机应用可以学软件开发吗
哪家服务器查的不严
重视网络安全的句子
优势的数据库中间件
at&t人脸数据库下载
建立web服务器和站点发布
数据库设计原则 范式
上海先进网络技术质量
上海统一软件开发过程检测中心
坐标点如何从数据库读取呢
软件开发有价值的毕业设计
新疆互联网科技股份有限公司
pg项目软件开发
学网络技术要准备什么
重庆推广软件开发有哪些
网络技术三级需要软件吗
中国传统数据库架构
电子临床数据库公司电话
做前端开发要学数据库吗