简单粗暴通过 Binlog 日志来恢复 MySQL 数据
引言
Binlog 日志的主要作用:
1、增量备份。
2、主从复制。
操作步骤
1、登录 MySQL -> 执行 show variables like '%log_bin%'; 查询 binlog 状态。
提示: log_bin => on 说明已经开始 binlog。

2、准备测试数据
// 创建 `test` 数据库
CREATE DATABASE `test`;
// 创建 `user` 数据表
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(25) DEFAULT NULL,
`age` int(4) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
// 插入测试数据
BEGIN;
INSERT INTO `user` VALUES (1, 'liuyi', 20);
INSERT INTO `user` VALUES (2, 'chener', 21);
INSERT INTO `user` VALUES (3, 'zhangsan', 22);
INSERT INTO `user` VALUES (4, 'lisi', 23);
INSERT INTO `user` VALUES (5, 'wangwu', 24);
COMMIT;
3、备份数据

4、备份数据之后,执行 flush logs 重新生成一个 binlog 日志,用来记录被备份之后的操作。

5、执行更新操作,将 ID 为 5 的记录 age 修改成 30。

6、由于误删除,将数据表 user 删除掉了。

7、开始将之前的备份数据恢复到数据库。

8、但是,我们发现之前的更新的数据已经丢失了。

9、查询出 binlog 日志 binllog.000002。

10、找到更新操作的 position (位置点)。

11、使用 binlog 进行数据恢复。

12、再次查看数据,已经将数据恢复了。

简单粗暴通过 Binlog 日志来恢复 MySQL 数据的更多相关文章
- mysql通过binlog日志来恢复数据
简介 在生产的过程中有这么一个业务场景:比如我在2016-11-19 09:30:00 通过mysqldump的方式备份了数据库,但是在2016-11-19 10:30:00的时候数据库崩溃了,如果通 ...
- load data 方式导入的数据不可以用binlog日志进行恢复,因为binlog里面不产生insert sql语句。
QQ群里面有人问起这个问题: 用load data 导入数据的时候,在binlog文件中记录的不是insert 语句,这样的话,如果用load data 导入数据,当需要恢复数据库的时候 bi ...
- 利用日志文件恢复MYSQL数据库
利用日志文件恢复MYSQL数据库 650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic ...
- mysql 开启binlog日志,恢复误删的表、数据、mysql库
linux下开启mysql的binlog日志功能 1.配置mysql配置文件my.cnf(内容如下). #配置文件储存的位置log-bin=mysql-bin#5.7以及以上版本需要配置这一行(保证唯 ...
- innobackupex基于binlog日志的恢复 -- 模拟slave恢复
说明:一般来说,如果恢复的binlog量不大,可以使用此方法来恢复:mysqlbinlog /data/mysqlbak/binlogbak/restoredb-bin.000018 |mysql - ...
- innobackupex基于binlog日志的恢复 -- 使用mysqlbinlog恢复
备份先做一次完整备份: innobackupex --defaults-file=/etc/my.cnf --user root --password chengce243 /data/mysqlba ...
- 通过.frm和.ibd恢复mysql数据
.frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索 ...
- linux 通过scp 复制备份恢复mysql数据表
最近客户有个需求,小弟对于运维的东西也是半瓶醋,所以就果断的摸索了下.折磨了一个晚上终于算是搞定了.因为是两个不同的服务器,本来想用ftp,无奈小弟不是很熟悉,所以就用了scp,但是scp有个问题就是 ...
- 通过.ibd和.frm恢复mysql数据
背景:因为机器损坏,数据库的索引文件什么的都损坏了.只留下了一个mysql的data目录… 此方法恢复数据的前提:建表用的innodb索引 备注:如果mysql的目录还都在,可以先尝试,将mysq ...
- 使用xb文件恢复mysql数据
1.安装工具Percona XtraBackup MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3,安装指导请参见官方文档Percona XtraBackup 2. ...
随机推荐
- Cert Manager 申请SSL证书流程及相关概念-二
中英文对照表 英文 英文 - K8S CRD 中文 备注 certificates Certificate 证书 certificates.cert-manager.io/v1 certificate ...
- Spring Cloud Config:外部集中化配置管理
Spring Cloud Config:外部集中化配置管理 SpringCloud学习教程 SpringCloud Spring Cloud Config 可以为微服务架构中的应用提供集中化的外部配置 ...
- mysql 必知必会整理—sql 正则表达[五]
前言 简单整理一下sql 正则表达式. 正文 正则表达式是用来匹配文本的特殊的串(字符集合).如果你想从一个文本文件中提取电话号码,可以使用正则表达式.如果你需要查找名字中间有数字的所有文件,可以使用 ...
- Pytorch-tensor维度的扩展,挤压,扩张
数据本身不发生改变,数据的访问方式发生了改变 1.维度的扩展 函数:unsqueeze() # a是一个4维的 a = torch.randn(4, 3, 28, 28) print('a.shape ...
- C#判断窗体是否被遮挡 - 开源研究系列文章
上次发布了托盘窗体的显示与隐藏的博文:,但是在测试窗体最大化的时候发现窗体没有隐藏,调试了下知道是窗体是否被遮挡这个函数的判断有问题.于是就研究了该代码,然后联系了该操作类的作者,也是博客园的园友,然 ...
- 物联网浏览器(IoTBrowser)-整合机器学习yolo框架实现车牌识别
最近一段时间在研究AI技术在.Net平台的使用,目前AI绝大部分是使用Python开发,偶然一次在头条看到一篇ML.NET的介绍,是Net平台下开放源代码的跨平台机器学习框架.ML.NET详细介绍 h ...
- Java面试题:细数ThreadLocal大坑,内存泄露本可避免
一.背景ThreadLocal是Java中用于解决多线程共享变量导致的线程安全问题的一种机制.它为每个线程分配一个独立的变量副本,从而避免了线程间的数据竞争.这个我们从上一篇文章<Java面试题 ...
- 第三課:信道学习Source Connect Reader & Destinations File Writer
第一步: 切换到主信道(Channels)界面,右键点击新建信道(New Channel) 第二步 : 下面是设置一些信道概要(Summary)信息 其中summary(概要) 界面主要包含 信道名称 ...
- 力扣1107(MySQL)-每日新用户统计(中等)
题目: Traffic 表: 该表没有主键,它可能有重复的行.activity 列是 ENUM 类型,可能取 ('login', 'logout', 'jobs', 'groups', 'homepa ...
- selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.的解决办法
跟着视频学习python爬取网页信息,结果出现如下问题: 在网页上搜索各种资料,最终解决该问题,所以记录一下: 1.查看自己浏览器的版本号,点击"三个点--帮助--关于Google Chro ...