【mysql】基于binlog数据恢复指令和坑

文章目录

  • 1.binlog相关配置
    • 是否开启binlog
    • binlog日志格式
  • 2.导出binlog日志
    • mysqlbinlog指令
      • update
      • insert
      • delete
      • binlog中的事件
  • 3.数据恢复
  • 4.特别注意的坑
    • 为什么bash脚本执行mysqlbinlog,无法找到指令
    • 为什么执行mysqlbinlog,无法数据恢复

1.binlog相关配置

binlog会记录mysql的增、删、改操作,通过binlog可以实现数据恢复、数据备份。


是否开启binlog

show  variables like '%log_bin%';#查询是否开启binlog,mysql8默认开启

在这里插入图片描述
binlog.index是binlog索引目录,记录生成的binlog日志,日志内容在,对应的binlog下,通过后缀区分。
在这里插入图片描述


binlog日志格式

show global variables like '%binlog_format%';#查询binlog格式,必须是row格式

在这里插入图片描述

2.导出binlog日志

可以通过mysqlbinlog指令,对binlog进行操作,通常我们使用这个指令将binlog导出为文本或sql。

mysqlbinlog指令

# 使用 mysqlbinlog 增量备份数据库
mysqlbinlog -v --start-datetime="2023-12-04 21:40:00" --stop-datetime="2023-12-05 00:00:00" $log_path --base64-output=decode-rows > $backup_file
# 使用 mysqlbinlog 增量备份数据库通过position
mysqlbinlog -v --start-position=258879782 --stop-position=258880137 $log_path --base64-output=decode-rows > $backup_file
  • -v :用于显示伪sql语句
  • -datetime:时间条件
  • -position:位置条件
  • $log_path:binlog日志所在的绝对路径(根据实际情况修改)
  • –base64-output=decode-rows:将Base64编码的输出解码为可读的格式
  • $backup_file:输出内容位置(根据实际情况修改)

update

在这里插入图片描述

打开输出的binlog,可以看到伪sql,通过这些我们可以找到想要的日志和操作。

insert

在这里插入图片描述

delete

在这里插入图片描述


binlog中的事件

在binlog中,begin和commit对应事务的开始和提交

在这里插入图片描述

show BINLOG EVENTS in 'binlog.000037';#显示binlog中的事件

在这里插入图片描述
完整的一条update操作(delete、insert类似)
在这里插入图片描述

3.数据恢复

在binlog中找到对应需要恢复的日志,就可以进行数据恢复
数据恢复需要从,begin位置开始,到commit位置,注意区分,是使用End_log_pos这个作为起始
在这里插入图片描述例如,在原有数据为
在这里插入图片描述

然后,update,某一个字段
在这里插入图片描述
现在想要回到,之前的数据,那么可以查询binlog,找到刚刚update的,上一条日志
在这里插入图片描述
找到错误操作的,上一条事务操作,使用begin到commit的End_log_pos作为条件,那么恢复指令为:

mysqlbinlog  --no-defaults --start-position=267706997 --stop-position=267707266 binlog.000037 | mysql -uroot -p123456

填写对应的start和end位置,在后面加上账号密码,执行,发现数据已经恢复
在这里插入图片描述

4.特别注意的坑

为什么bash脚本执行mysqlbinlog,无法找到指令

需要使用mysqlbinlog的绝对地址

 whereis mysqlbinlog # 获取绝对地址

在这里插入图片描述
改为:

/usr/local/mysql/bin/mysqlbinlog  --no-defaults --start-position=267705701 --stop-position=267705953 binlog.000037 | mysql -uroot -p

为什么执行mysqlbinlog,无法数据恢复

mysqlbinlog恢复数据,需要使用同一表的,pos信息进行恢复,如果跨表操作,可以通过查看伪sql进行辅助恢复

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/218289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【杂】解决关于mean(0)理解错误引发的程序bug

一、环境和解释器要一起配置好 invalid syntax 发生你在终端激活了一个环境,但 VSCode 依然使用之前的解释器的情况。 解释器设置影响了 VSCode 中运行 Python 脚本、调试、代码补全等功能的行为。VSCode 会根据你选择的解释器来执行这些操作。 二、关于mean&#x…

【c】序列中整数去重

数组中的元素不好直接删除&#xff0c;我们可以把重复的数做标记&#xff0c;将他赋值为0&#xff0c;然后正常打印数组&#xff0c;为0的跳过 #include<stdio.h> int main() {int n;scanf("%d",&n);int arr[n1];for(int i1;i<n;i){scanf("%d&quo…

fastadmin列表头部按钮批量上传视频

上传界面通过layui生成 index.html <a href="{:url(video/piliangadd)}" class="btn btn-success btn-piliangadd btn-dialog {:$auth->check(video/piliangadd)?:hide}" title="批量上传" ><i class="fa fa-plus">…

【力扣热题100】207. 课程表 python 拓扑排序

【力扣热题100】207. 课程表 python 拓扑排序 写在最前面207. 课程表解决方案&#xff1a;判断是否可以完成所有课程的学习方法&#xff1a;拓扑排序实现步骤Python 实现性能分析结论 写在最前面 刷一道力扣热题100吧 难度中等 https://leetcode.cn/problems/course-schedule…

关于如何解决问题?代码习惯。

警钟长鸣 从师哥身上学到的东西&#xff1a; 关于如何解决问题&#xff1f; 1、沟通&#xff1a;有效的沟通&#xff0c;将问题描述清楚&#xff0c;让老师和师哥明白你出了什么问题&#xff0c;给出建议&#xff0c;很多时候一句良言胜过自己摸索很久 2、出现问题由浅入深地…

AI 大模型时代的计算机网络通信

下午跟朋友聊天&#xff0c;聊到编码和传输&#xff0c;兴致未尽&#xff0c;有必要继续说说有损传输&#xff0c;承接 从意义中恢复而不从数据包恢复。 在 AI 大模型催化下&#xff0c;网络通信方式将完全不同&#xff0c;依赖编码的柔性&#xff0c;有损传输将比 tcp/ip 更具…

android studio 打开flutter项目 出现 dart sdk is not configured

android studio 版本 flutter版本 解决方式 1 点击Open Dart setting 2 打勾Enable Dart support for the project 3 Dart SDK path 选择flutter/bin/cache/dart-sdk 4 打勾Enable Dart support for the following modules

JVM Optimization Learning(五)

一、JVM Optimization 1、G1 G1官网说明&#xff1a;Garbage First Garbage Collector Tuning The Garbage First Garbage Collector (G1 GC) is the low-pause, server-style generational garbage collector for Java HotSpot VM. The G1 GC uses concurrent and paralle…

电子学会C/C++编程等级考试2022年09月(四级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:最长上升子序列 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … &l…

Android中的动态代理详解

在说动态代理之前&#xff0c;先来简单看下代理模式。代理是最基本的设计模式之一。它能够插入一个用来替代“实际”对象的“代理”对象&#xff0c;来提供额外的或不同的操作。这些操作通常涉及与“实际”对象的通信&#xff0c;因此“代理”对象通常充当着中间人的角色。 代…

WPF halcon 机器视觉

1 鼹鼠的故事第14集 鼹鼠与智能房 鼹鼠无意中坐进了一辆小汽车&#xff0c;小汽车开进了一所智能住宅。鼹鼠看到房主在智能房里&#xff0c;享受着现代化的服务。趁着主人看电视的时候&#xff0c;鼹鼠也享用了一顿丰盛的智能晚餐。 小编大胆的畅想&#xff0c;这些食物 前一秒…

论文解读--PointPillars- Fast Encoders for Object Detection from Point Clouds

PointPillars--点云目标检测的快速编码器 摘要 点云中的物体检测是许多机器人应用(如自动驾驶)的重要方面。在本文中&#xff0c;我们考虑将点云编码为适合下游检测流程的格式的问题。最近的文献提出了两种编码器;固定编码器往往很快&#xff0c;但牺牲了准确性&#xff0c;而…

初识计算机网络

网络通信基础 1. IP地址2.端口号3.认识协议3.1协议分层 4. 网络数据传输的基本流程4.1 五元组4.2封装和分用 1. IP地址 IP地址主要用于表示网络主机,其他网络设备的网络地址,IP地址用于定位主机的网络地址 比如:发送快递的时候,需要知道对象的收货地址,才能将包裹送到目的地. …

戴森发布全新Airstrait吹风直发器,美发科技品类再添力作

——利用气流&#xff0c;吹干的同时拉直头发&#xff0c;无需热夹板&#xff0c;头发无热损伤 &#xff08;2023年11月30日&#xff0c;上海&#xff09;戴森今日重磅发布全新美发造型产品——戴森Airstrait™吹风直发器&#xff0c;作为戴森美发科技品类的又一创新力作&…

【PCB知识】

PCB知识 1. PCB知识1.1 扩展名1.21.31.4 2.3.4.5. 1. PCB知识 1.1 扩展名 扩展名为 *.opj 的文件可以使用 Origin Project 应用程序打开。 扩展名为*.DSN文件&#xff0c;一般为isis或OrCAD电路图文件&#xff0c; OrCAD为Cadence软件组件&#xff1b; isis为Proteus软件的sc…

写给初学者的 HarmonyOS 教程 -- 状态管理(@State/@Prop/@Link 装饰器)

State 装饰的变量&#xff0c;或称为状态变量&#xff0c;一旦变量拥有了状态属性&#xff0c;就和自定义组件的渲染绑定起来。当状态改变时&#xff0c;UI 会发生对应的渲染改变&#xff08;类似 Compose 的 mutablestateof &#xff09;。 Prop 装饰的变量可以和父组件建立单…

20种常用的软件测试方法,建议先收藏再观看

软件测试在完整的项目当中算是最后一个环节&#xff0c;也是非常重要的一个环节。通过软件测试&#xff0c;我们才能得知一个程序是否符合标准。 小编整理出20种常见的软件测试方法&#xff0c;建议伙伴们先收藏再看。不敢说史上最全&#xff0c;但我办公室里十年软件测试经验…

EasyRecovery2024免费永久版手机数据恢复软件

EasyRecovery2024是一款操作安全、用户可自主操作的数据恢复方案&#xff0c;它支持从各种各样的存储介质恢复删除或者丢失的文件&#xff0c;其支持的媒体介质包括&#xff1a;硬盘驱动器、光驱、闪存、硬盘、光盘、U盘/移动硬盘、数码相机、手机以及其它多媒体移动设备。能恢…

某60区块链安全之JOP实战一学习记录

区块链安全 文章目录 区块链安全Jump Oriented Programming实战一实验目的实验环境实验工具实验原理实验内容Jump Oriented Programming实战一 实验步骤分析合约源代码漏洞Jump Oriented Programming实战一 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约中中Ju…

【Windows】永久屏蔽系统更新

永久关闭电脑更新服务 操作思路&#xff1a; 第一步 winR 输入 services.msc 回车 进入服务管理窗口第二步 进入窗口后 找到 w 开头的文件夹 并找到Windows Update 双击打开 Windows Update 将启动类型&#xff08;E&#xff09; 改为禁用 上方的 “常规” “登录” “恢…