首页 > 其他分享 >删库了不用跑路!binlog恢复数据实操

删库了不用跑路!binlog恢复数据实操

时间:2024-08-07 15:29:09浏览次数:7  
标签:binlog -- 恢复 道友 删库 实操 mysql 数据

各位道友大家好呀!

想必道友们或多或少都听说过MySQL的binlog的作用,它记录了数据库整个的生命周期,可用于恢复数据或者从库同步数据。

那么如果发生了数据库误删,具体该怎样恢复数据呢?

下面就以一个例子来给道友们演示一下,让我们开始吧!do it!

数据备份

首先,数据库要定时进行备份,因为如果需要恢复数据,可以缩小binlog执行范围

mysqldump -uroot -p --master-data=2 --single-transaction -A > /www/server/data/fanrencode-back.sql

参数master-data为2可以记录更多的细节,比如位置信息,方便binlog --start-position定位

binlog恢复数据

模拟误删操作

首先,新增一条测试数据,然后对库进行备份


然后我们又新增了数据,但是不小心把表给清空了

那么我们该怎么恢复数据呢?

有条件的话先在测试库里执行,没问题再在生产执行。

恢复数据

1.执行备份的文件

可以看到数据已经恢复成mysqldump备份时的数据了

2.执行binlog

查看mysqldump备份的文件的结束位置,如图可知是1969

注意这个MASTER_LOG_POS在文件的最上面,用PgUp翻到最上面即可。

然后查询mysql-bin.000011这个binlog文件,直接vim查看的话会乱码,所以我们把文件以明文的形式(-vv)输出到另一个test.binlog文件

/www/server/mysql/bin/mysqlbinlog mysql-bin.000011 -vv > test.binlog

如果提示unknown variable 'default-character-set=utf8'.错误,则需要在mysqlbinlog 后面加上--no-defaults参数

然后再vim查看就不乱码了,由图可知truncate操作的位置在902120

然后执行恢复操作

/www/server/mysql/bin/mysqlbinlog  --start-position=1969 --stop-position=902120 /www/server/data/mysql-bin.000011 | mysql -uroot -p

这样就完成了数据的恢复

当当,是不是还挺简单的,各位道友实操起来若有参差欢迎给小道留言~

标签:binlog,--,恢复,道友,删库,实操,mysql,数据
From: https://www.cnblogs.com/GilbertDu/p/18347112

相关文章

  • MySQL 备库可以设置 sync_binlog 非 1 吗?【转】
    众所周知,防止断电丢失Binlog、故障恢复过程丢失数据,MySQL主库必须设置sync_binlog=1。那么作为备库可以例外吗?我们的第一反应当然是不行,既然主库会丢数据,备库自然一样。但其实不然,备库丢了数据是可以重新从主库上复制的,只要这个复制的位置和备库本身数据的位置一致就OK了,它......
  • AI绘画最强SD(Stable Diffusion)玩法实操教学案例及商业变现项目分享
    AI绘画现在越来越火爆了,很多人无论大人小孩都在玩,还有的很多电商老板也在使用辅助生成产品主图和详情页,可以说是非常的实用。而其中最让人追捧和好评的就是SD(StableDiffusion)这款AI绘图软件了,StableDiffusion是一款基于深度学习的图像生成工具,它可以根据文本描述生成高质......
  • [图文直播]Jenkins单分支流水线任务实操
    前言去年的时候,工作角色被定义为去做中台服务,虽然这个工作并不是我职业规划的主线,但正好也借此机会,去解决掉我“闭环能力”中一个暂时缺失的环节,我对自己的定位一直都是要做一个“极限单兵”,希望在地质专业软件这个相对细分的领域,做到自己能完全闭环下面的各个阶段。项目启动->......
  • go-zero 微服务框架集成 gorm 实操
    目录1.config的结构体2.配置文件声明3.添加svcContext4.定义你的相关表或者模型作为服务,肯定要和数据库交互的,所以在go-zero框架里集成数据库的操作是必不可少的,今天看看go-zero的rpc应用如何集成gorm框架。总体的思路分这几步:定义你的配置项结构体定义你的配置......
  • 使用Canal监听Binlog将数据发送到RocketMQ
    文章目录一、部署RocketMQ二、部署MySQL1、开启mysql的binlog写入功能2、创建一个有相关权限的mysqlslave账号三、部署Canal1、修改conf/canal.properties配置文件2、修改conf/example/instance.properties配置文件四、实际操作一、部署RocketMQwin11部署Rocke......
  • 2024零基础·短视频图文带货实战课:0基础从破圈到爆单实操(35节课)
    课程大纲老号如何转型?新号如何搭建?如何做账号定位?如何选品?如何创作短视频图文?如何出单?适用人群想要学习短视频图文带货的小伙伴想要了解短视频图文成功核心玩法想要掌握智能AI剪辑短视频和图文的技巧课程目录00.学前必读mov.mp401.新号如何搭建账户?mov.mp402......
  • 2024零基础·短视频图文带货实战课:0基础从破圈到爆单实操(35节课)
    课程大纲老号如何转型?新号如何搭建?如何做账号定位?如何选品?如何创作短视频图文?如何出单?适用人群想要学习短视频图文带货的小伙伴想要了解短视频图文成功核心玩法想要掌握智能AI剪辑短视频和图文的技巧课程目录00.学前必读mov.mp401.新号如何搭建账户?mov.mp402......
  • golang etcd容器构建与客户端操作踩坑实操
    目录1.问题说明2.etcd容器构建3.goalngetcd客户端实现1.问题说明在用go-zero实现相关服务时一直报错,从报错信息看应该是etcd的容器有问题,应该是之前的构建哪里出错了,所以重新构建etcd容器应用。记录下主要的踩坑情况:1.连接etcd容器没有问题,但是写入数据时一直报......
  • MySQL 主从复制,常见的binlog错误及解决方法
    在主从复制架构下,MySQL通过binlog来实现主从数据的一致性。 MySQL主从复制主要有以下步骤1.master将改变记录到binarylog中2.slaveio_thread去请求主库的binlog,并将得到的binlog日志写到relaylog中3.slavesql_thread重做relaylog中的事件 除了作为MySQL主从复制......
  • skynet 实操篇
    文章目录概述demo启动文件skynet_start配置文件main.luastart函数thread_workerskynet_context_message_dispatchskynet_mq_popdispatch_message小结概述上一篇写完skynet入门篇,这一篇写点实操性质的。demo对于一个开源框架,大部分都有他们自己的demo。先来看下这......