Mariadb 通过binlog恢复删除(drop table)的数据
时间:2021-07-27
本文章向大家介绍Mariadb 通过binlog恢复删除(drop table)的数据,主要包括Mariadb 通过binlog恢复删除(drop table)的数据使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
首先要在数据库中开启binlog,在配置文件中加入这一句。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mariadb/mariadb.log pid-file=/run/mariadb/mariadb.pid log-bin=mysql-bin
用此命令可以查看是否启用:show variables like '%sql_log_bin%';
在数据库中添加测试数据库及测试表:
MariaDB [test]> create table t3(id int ,name varchar(50)); Query OK, 0 rows affected (0.008 sec) MariaDB [test]> insert into t3 values(1,'11111111111'); Query OK, 1 row affected (0.002 sec) MariaDB [test]> insert into t3 values(2,'11111111'); Query OK, 1 row affected (0.013 sec) MariaDB [test]> insert into t3 values(3,'11aa111111'); Query OK, 1 row affected (0.002 sec) MariaDB [test]> insert into t3 values(4,'11aa111'); Query OK, 1 row affected (0.002 sec) MariaDB [test]> insert into t3 values(4,'11aa111'); Query OK, 1 row affected (0.001 sec) MariaDB [test]> select * from t3; +------+-------------+ | id | name | +------+-------------+ | 1 | 11111111111 | | 2 | 11111111 | | 3 | 11aa111111 | | 4 | 11aa111 | | 4 | 11aa111 | +------+-------------+ 5 rows in set (0.001 sec) MariaDB [test]> delete from t3 where id=4; Query OK, 2 rows affected (0.002 sec) MariaDB [test]> select * from t3; +------+-------------+ | id | name | +------+-------------+ | 1 | 11111111111 | | 2 | 11111111 | | 3 | 11aa111111 | +------+-------------+ 3 rows in set (0.000 sec)
查看binlog记录的详细信息:
MariaDB [test]> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000001 | 2782 | | mysql-bin.000002 | 385 | +------------------+-----------+ 2 rows in set (0.002 sec) MariaDB [test]> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 385 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.000 sec) MariaDB [test]> show binlog events in 'mysql-bin.000002'; +------------------+-----+-------------------+-----------+-------------+------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+-----+-------------------+-----------+-------------+------------------------------------------------+ | mysql-bin.000002 | 4 | Format_desc | 1 | 256 | Server ver: 10.3.27-MariaDB-log, Binlog ver: 4 | | mysql-bin.000002 | 256 | Gtid_list | 1 | 299 | [0-1-654] | | mysql-bin.000002 | 299 | Binlog_checkpoint | 1 | 342 | mysql-bin.000001 | | mysql-bin.000002 | 342 | Binlog_checkpoint | 1 | 385 | mysql-bin.000002 | +------------------+-----+-------------------+-----------+-------------+------------------------------------------------+ 4 rows in set (0.001 sec) MariaDB [test]> show binlog events in 'mysql-bin.000001'; +------------------+------+-------------------+-----------+-------------+-------------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+------+-------------------+-----------+-------------+-------------------------------------------------------+ | mysql-bin.000001 | 4 | Format_desc | 1 | 256 | Server ver: 10.3.27-MariaDB-log, Binlog ver: 4 | | mysql-bin.000001 | 256 | Gtid_list | 1 | 299 | [0-1-643] | | mysql-bin.000001 | 299 | Binlog_checkpoint | 1 | 342 | mysql-bin.000001 | | mysql-bin.000001 | 342 | Gtid | 1 | 384 | BEGIN GTID 0-1-644 | | mysql-bin.000001 | 384 | Annotate_rows | 1 | 439 | insert into t2 values(2,'aaaaa') | | mysql-bin.000001 | 439 | Table_map | 1 | 487 | table_id: 20 (test.t2) | | mysql-bin.000001 | 487 | Write_rows_v1 | 1 | 531 | table_id: 20 flags: STMT_END_F | | mysql-bin.000001 | 531 | Xid | 1 | 562 | COMMIT /* xid=9 */ | | mysql-bin.000001 | 562 | Gtid | 1 | 604 | BEGIN GTID 0-1-645 | | mysql-bin.000001 | 604 | Annotate_rows | 1 | 659 | insert into t2 values(3,'bbaaa') | | mysql-bin.000001 | 659 | Table_map | 1 | 707 | table_id: 20 (test.t2) | | mysql-bin.000001 | 707 | Write_rows_v1 | 1 | 751 | table_id: 20 flags: STMT_END_F | | mysql-bin.000001 | 751 | Xid | 1 | 782 | COMMIT /* xid=10 */ | | mysql-bin.000001 | 782 | Gtid | 1 | 824 | BEGIN GTID 0-1-646 | | mysql-bin.000001 | 824 | Annotate_rows | 1 | 882 | insert into t2 values(4,'baaabaaa') | | mysql-bin.000001 | 882 | Table_map | 1 | 930 | table_id: 20 (test.t2) | | mysql-bin.000001 | 930 | Write_rows_v1 | 1 | 977 | table_id: 20 flags: STMT_END_F | | mysql-bin.000001 | 977 | Xid | 1 | 1008 | COMMIT /* xid=11 */ | | mysql-bin.000001 | 1008 | Gtid | 1 | 1050 | BEGIN GTID 0-1-647 | | mysql-bin.000001 | 1050 | Annotate_rows | 1 | 1098 | delete from t2 where id=1 | | mysql-bin.000001 | 1098 | Table_map | 1 | 1146 | table_id: 20 (test.t2) | | mysql-bin.000001 | 1146 | Delete_rows_v1 | 1 | 1190 | table_id: 20 flags: STMT_END_F | | mysql-bin.000001 | 1190 | Xid | 1 | 1221 | COMMIT /* xid=13 */ | | mysql-bin.000001 | 1221 | Gtid | 1 | 1263 | GTID 0-1-648 | | mysql-bin.000001 | 1263 | Query | 1 | 1371 | use `test`; create table t3(id int ,name varchar(50)) | | mysql-bin.000001 | 1371 | Gtid | 1 | 1413 | BEGIN GTID 0-1-649 | | mysql-bin.000001 | 1413 | Annotate_rows | 1 | 1474 | insert into t3 values(1,'11111111111') | | mysql-bin.000001 | 1474 | Table_map | 1 | 1522 | table_id: 21 (test.t3) | | mysql-bin.000001 | 1522 | Write_rows_v1 | 1 | 1572 | table_id: 21 flags: STMT_END_F | | mysql-bin.000001 | 1572 | Xid | 1 | 1603 | COMMIT /* xid=23 */ | | mysql-bin.000001 | 1603 | Gtid | 1 | 1645 | BEGIN GTID 0-1-650 | | mysql-bin.000001 | 1645 | Annotate_rows | 1 | 1703 | insert into t3 values(2,'11111111') | | mysql-bin.000001 | 1703 | Table_map | 1 | 1751 | table_id: 21 (test.t3) | | mysql-bin.000001 | 1751 | Write_rows_v1 | 1 | 1798 | table_id: 21 flags: STMT_END_F | | mysql-bin.000001 | 1798 | Xid | 1 | 1829 | COMMIT /* xid=24 */ | | mysql-bin.000001 | 1829 | Gtid | 1 | 1871 | BEGIN GTID 0-1-651 | | mysql-bin.000001 | 1871 | Annotate_rows | 1 | 1931 | insert into t3 values(3,'11aa111111') | | mysql-bin.000001 | 1931 | Table_map | 1 | 1979 | table_id: 21 (test.t3) | | mysql-bin.000001 | 1979 | Write_rows_v1 | 1 | 2028 | table_id: 21 flags: STMT_END_F | | mysql-bin.000001 | 2028 | Xid | 1 | 2059 | COMMIT /* xid=25 */ | | mysql-bin.000001 | 2059 | Gtid | 1 | 2101 | BEGIN GTID 0-1-652 | | mysql-bin.000001 | 2101 | Annotate_rows | 1 | 2158 | insert into t3 values(4,'11aa111') | | mysql-bin.000001 | 2158 | Table_map | 1 | 2206 | table_id: 21 (test.t3) | | mysql-bin.000001 | 2206 | Write_rows_v1 | 1 | 2252 | table_id: 21 flags: STMT_END_F | | mysql-bin.000001 | 2252 | Xid | 1 | 2283 | COMMIT /* xid=26 */ | | mysql-bin.000001 | 2283 | Gtid | 1 | 2325 | BEGIN GTID 0-1-653 | | mysql-bin.000001 | 2325 | Annotate_rows | 1 | 2382 | insert into t3 values(4,'11aa111') | | mysql-bin.000001 | 2382 | Table_map | 1 | 2430 | table_id: 21 (test.t3) | | mysql-bin.000001 | 2430 | Write_rows_v1 | 1 | 2476 | table_id: 21 flags: STMT_END_F | | mysql-bin.000001 | 2476 | Xid | 1 | 2507 | COMMIT /* xid=27 */ | | mysql-bin.000001 | 2507 | Gtid | 1 | 2549 | BEGIN GTID 0-1-654 | | mysql-bin.000001 | 2549 | Annotate_rows | 1 | 2597 | delete from t3 where id=4 | | mysql-bin.000001 | 2597 | Table_map | 1 | 2645 | table_id: 21 (test.t3) | | mysql-bin.000001 | 2645 | Delete_rows_v1 | 1 | 2704 | table_id: 21 flags: STMT_END_F | | mysql-bin.000001 | 2704 | Xid | 1 | 2735 | COMMIT /* xid=29 */ | | mysql-bin.000001 | 2735 | Rotate | 1 | 2782 | mysql-bin.000002;pos=4 | +------------------+------+-------------------+-----------+-------------+-------------------------------------------------------+ 56 rows in set (0.001 sec)
测试删表
MariaDB [test]> drop table t3; Query OK, 0 rows affected (0.017 sec) MariaDB [test]> select * from t3; ERROR 1146 (42S02): Table 'test.t3' doesn't exist
通过binlog文件恢复相关的SQL语句:
[root@localhost mysql]# mysqlbinlog --start-position=1263 --stop-position=2476 mysql-bin.000001 > t3.sql
停止记录相关日志:
MariaDB [test]> set sql_log_bin=0; Query OK, 0 rows affected (0.001 sec)
执行恢复文件中的相关语句:
MariaDB [test]> source /var/lib/mysql/t3.sql Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (0.000 sec) Query OK, 0 rows affected (0.000 sec) Database changed
测试恢复情况:
MariaDB [test]> show tables; +----------------+ | Tables_in_test | +----------------+ | t | | t2 | | t3 | +----------------+ 3 rows in set (0.001 sec) MariaDB [test]> select * from t3; +------+-------------+ | id | name | +------+-------------+ | 1 | 11111111111 | | 2 | 11111111 | | 3 | 11aa111111 | | 4 | 11aa111 | +------+-------------+ 4 rows in set (0.001 sec)
恢复日志记录模式:
MariaDB [test]> set sql_log_bin=1; Query OK, 0 rows affected (0.001 sec)
原文地址:https://www.cnblogs.com/zhongjicainiao/p/15066341.html
- 如何动态加载js?
- 【自然框架】数据访问之精雕细琢(一)存储过程的参数
- 100w条记录分页,可以有多快?—— DataReader分页与SQL语句分页的对比测试(在线演示)
- Mimikatz小实验:黄金票据+dcsync
- 【自然框架】n级下拉列表框的原理
- 【自然框架】分享 n级联动下拉列表框
- GSM Hacking Part ②:使用SDR捕获GSM网络数据并解密
- 【自然框架】之数据访问 —— 再小的类库也需要设计。
- 【自然框架】之表单控件(一)实体类(Class)VS 字典(Dictionary)
- 跨平台后门Mokes现已加入OS X豪华午餐
- 【问底】严澜:数据挖掘入门——分词
- 机器学习-简单线性回归教程
- NSA(美国国安局)泄漏Exploit分析
- 详解Windows Shim的攻防利用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原理+代码|Python基于主成分分析的客户信贷评级实战
- Python办公自动化 | 从PPT到Word
- linux命令行参数getopts参数二选一
- 黎巴嫩首都爆炸能量有多大?物理学家看视频计算:300吨TNT!
- OracleDG 环境主备业务数据不同步备库报ORA-600错误的处理过程
- Xcode清理模拟器文件
- 【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】六、FFmpeg简单合成MP4:视屏解封与重新封装
- 32.opengl高级光照-延迟着色法
- Tsunami:一款功能强大的通用网络安全扫描工具
- Hive查看表/分区更新时间
- 直接通过手机抓取GPS的qxdm日志
- uniapp常用提示框uni.showToast(OBJECT)
- MySQL 索引(3)
- TS 设计模式04 - 适配器模式
- WebRTC | 原理、架构、框架目录、运行机制、核心类、PeerConnection调用过程等详解