MYSQL--基础--07--使用binlog来恢复数据

MYSQL–基础–07–使用binlog来恢复数据


1、数据准备

 
CREATE TABLE `course`  (
  `id` bigint(0) NOT NULL AUTO_INCREMENT COMMENT '课程id',
  `name` varchar(10)  DEFAULT NULL COMMENT '课程名称',
  `tid` bigint(0)  DEFAULT NULL COMMENT '教师id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB   COMMENT = '课程表'  ;
 
INSERT INTO `course` VALUES (1, '语文', 2);
INSERT INTO `course` VALUES (2, '数学', 1);
INSERT INTO `course` VALUES (3, '英语', 3);

2、数据恢复

假设我们做了一个删除的操作,我们想恢复数据

delete from course where id=3;

在这里插入图片描述

2.1、查看当前日志

show master status;

在这里插入图片描述

2.2、刷新binlog日志,生成一个新的日志

我们先来刷新binlog日志,生成一个新的日志,那么我们之后所要操做的内容都会被记录到新的日志文件中,我们只需要对旧的日志做恢复就行了

flush logs;
  
SHOW MASTER STATUS;


在这里插入图片描述

在这里插入图片描述

2.3、查看旧日志

2.3.1、方式1

SHOW BINLOG EVENTS IN 'binlog.000001';

在这里插入图片描述

2.3.2、查看旧日志-方式2

root@e453d8892584:~# mysqlbinlog -vv  '/var/lib/mysql/binlog.000001';


在这里插入图片描述

2.4、数据恢复–从建库前恢复

目的

我们直接恢复删除前的所有数据

注意

恢复前,先刷新日志,产生新日志binlog.000003,
不让恢复数据的日志写到 binlog.000002,而是写到binlog.000003。
方便之后恢复binlog.000002

查看恢复的起始点和结束点

我们看到delete_rows 结束点是2001这个点,起始点是在1806这个点,我们可以把操作的这些数据删除到我们上次备份的内容,然后通过执行binlog来进行恢复,当然恢复到1806这个点之前。

在这里插入图片描述

在这里插入图片描述

执行操作
mysqlbinlog  --start-position=156 --stop-position=1806   /var/lib/mysql/binlog.000001  | mysql -uroot -p
因为我是从创建数据库前开始恢复,所以我需要先将数据库删掉,不然会报以下错误

在这里插入图片描述

恢复的数据

在这里插入图片描述

2.5、恢复删除后的操作

我们发现,删除数据后,我们插入的数据没显示,这个时候需要通过同样的方法,使用binlog.000002 日志来恢复

在这里插入图片描述

在这里插入图片描述

通过上面的日志文件,确认开始点和结束点

在这里插入图片描述

恢复数据
mysqlbinlog  --start-position=311 --stop-position=766   /var/lib/mysql/binlog.000002  | mysql -uroot -p

在这里插入图片描述

恢复后的结果

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值