#mysql binlog 备份恢复数据流程#

news2025/1/9 19:26:53

模式:mysql全量备份+binlog日志完整恢复数据


首先,数据库在误操作之前必须已经开启了binlog日志功能,且binlog日志的保存周期必须大于全备份的时间周期!

所谓恢复,就是让将全备份的数据全部恢复后,再使用mysqlbinlog命令把binlog日志文件从全备份的时间点开始依次执行到误删除的时间点。而mysqlbinlog就是把binlog日志转成SQL语句的一个工具而已。


模拟数据误操作:

第一步:创建了db库,创建一个tb1表,增加1、2、3共三行数据,并使用flush logs手动刷新日志,这样新日志就会写入下一个新文件;

第二步:创建一个tb2表,但是给tb1表再添加了 4、5、6 三行数据 。然后手动全备份db库(一般都是通过脚本定时在晚上12点备份)。

第三步:给tb2添加了3、2、1 三行数据 ,再给tb1表添加 7、8、9 。

第四步:给tb1表添加 10、20、30 三行数据。 flush logs手动刷新日志。

第五步:创建tb3表,添加 100、200、300 三行数据
第六步:删除表 tb1 和tb2 和tb3 ,然后立马执行flush logs命令手动刷新日志,并查看最新的binlog日志文件的编号

第七步:分析恢复到删除表之前的操作,都需要使用哪些binlog文件

第八步:将数据恢复到误删除表 tb1 和tb2 和tb3之前的数据。

为什么要手动执行flush logs命令刷新日志:每一个binlog日志都指定大小的,当一个文件超出指定大小的时候就会写到下一个文件。手动执行flush logs命令刷新日志就是模拟全备份时间点到误删除时间点之间,模拟已经有多个binlog日志文件的情况。

本次恢复数据会使用到的命令:

(1)查看binlog日志是否开启,以及日志存放路径

show variables like 'log_%'

(2)查看所有binlog日志列表
show master logs

(3)查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值

 show master status

(4)flush刷新log日志,自此刻开始产生一个新编号的binlog日志文件

 flush logs

(5)指定展示某一个binlog文件的所有操作。

show binlog events in 'mysql-bin.00000x'
 

开始模拟:

第一步:

创建了db库,创建一个tb1表,增加1、2、3共三行数据,并使用flush logs手动刷新日志

 

第二步:创建一个tb2表,但是给tb1表再添加了 4、5、6 三行数据 。然后全备份db库

 

 全备份db库:

参数含义:

-B :指定要备份的库的名字

-F:备份完成后强制刷新binLog日志,让新的日志写入到新的文件中

-R:备份存储过程等

-x:备份每张表之前先锁表

--master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信息

mysqldump  -uroot -p  -h  127.0.0.1  -B -F  -R  -x --master-data=2  hello >/root/ddd/hello.sql

 第三步:给tb2添加了3、2、1 三行数据 ,再给tb1表添加 7、8、9 。

 tb1表和tb2表的所有数据,如下图:

第四步:给tb1表添加 10、20、30 三行数据。 并flush logs手动刷新日志。 

 第五步:创建tb3表,添加 100、200、300 三行数据

 第六步:模拟误删除表 tb1 和tb2 和tb3 ,误删除后立马执行flush logs命令手动刷新日志,并查看最新的binlog日志文件的编号

 

第七步:分析恢复到删除表之前的操作,都需要使用哪些binlog文件

(1)查看全备份数据中的binlog日志的编号和pos点,一般在备份的文件第20行上下

如下图:第22行可以看到我的此次备份文件是mysql-bin.000003,pos点是154

 

(2)根据第六步误删除后立马执行flush logs命令手动刷新日志,并查看最新的binlog日志文件编号是mysql-bin.000005,pos点是154,说明误操作所产生的的binlog日志在mysql-bin.000004这个文件中,接下来就要查看mysql-bin.000004中对应删除操作的pos点是哪一个。

(3)如下图:可以看到删除tb1表时的pos号是1128。

 

 (4)通过上边的查看,我们可以确定,要想恢复到删除表前的所有数据,要是用的日志文件为: 

  mysql-bin.000003文件全部恢复

  mysql-bin.000004文件恢复pos=4的点到pos=1128之间的操作

第八步:将数据恢复到误删除表 tb1 和tb2 和tb3之前的数据。

(1)恢复手动备份的db库的全量数据(一般都是晚上12点自动备份脚本备份)

mysql -uroot -proot  -h 127.0.0.1 hello < /root/ddd/hello.sql

(2)依次恢复

mysql-bin.000003文件和mysql-bin.000004文件的pos=4的点到pos=1128之间的数据 

全量恢复mysql-bin.000003日志中的数据

 

如下图:恢复position在4-1128之间的事件 

--start-position:从二进制日志中读取指定position 事件位置作为开始。

--stop-position:从二进制日志中读取指定position 事件位置作为事件截至

 

 


其他:


快速恢复多个binlog文件并指定pos点:

如下: /software/mysql/data/mysql-bin.00000{3,4}一次指定多个文件,--start-position=4指mysql-bin.000003的pos点, --stop-position=1128指mysql-bin.000004

mysqlbinlog  --database=db --start-position=4 --stop-position=1128 /software/mysql/data/mysql-bin.00000{3,4} |mysql -uroot -p123456 -h 127.0.0.1 -v db

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTB-Time

HTB-Time 信息收集80端口 立足pericles -> root 信息收集 80端口 有两个功能&#xff0c;一个是美化JSON数据。 一个是验证JSON&#xff0c;并且输入{“abc”:“abc”}之类的会出现报错。 Validation failed: Unhandled Java exception: com.fasterxml.jackson.core.JsonPa…

当⻉借⼒阿⾥云落地云原⽣架构转型,运维降本、效率稳定性双升

作者&#xff1a;当贝技术团队 随着业务飞速发展&#xff0c;当贝的传统 IT 资产也渐显臃肿&#xff0c;为了避免制约发展的瓶颈&#xff0c;痛定思痛&#xff0c;技术团队果断变革&#xff1a;核心业务云原生化之后&#xff0c;运维效率、整体稳定性和研发效率均得到了全面提…

网络基础知识

网络基础知识 一、什么是二层互通与三层互通&#xff1f;1.1 二层网络互通1.2 三层网络互通 二、什么是Overlay网络&#xff1f;2.1 Underlay网络2.2 Overlay网络2.3 Underlay网络 vs Overlay网络 三、什么是SNMP&#xff1f;3.1 SNMP概念3.2 为什么需要SNMP&#xff1f;3.3 SN…

基于ubuntu18.04.6 LTS服务器安装nvidia驱动

1对于一个刚刚配置的服务器&#xff0c;首先nvidia-smi&#xff0c;自然无法显示Driver Version、最高cuda版本等信息。 nvidia-smi: command not found 需要我们自己安装nvidia驱动 2禁用老驱动 禁用自带nouveau驱动 sudo vim /etc/modprobe.d/blacklist.conf 打开后在CONF文…

本地配置nacos例子

nacos的加载顺序 0、application.properties 1、bootstrap.properties 2、bootstrap-{profile}.properties #本地启动 nacos的配置文件的生成规则&#xff0c;当我正常启动项目时 nacos的配置文件名字生成规则为 ${spring.application.name}.yaml spring:application:name…

面试redis之两大金刚,你懂吗

前言 Redis持久化&#xff0c;一个老掉牙的问题&#xff0c;但是面试官就是喜欢问。这也是我们学Redis必会的一个知识点。Redis作为内存数据库&#xff0c;它工作时&#xff0c;数据都保存在内存里&#xff0c;这也是它为什么很快的一个原因。但存到内存里肯定是有丢数据的风险…

为什么我们能判断声音的远近

想象一下&#xff0c;当我们走在路上时&#xff0c;听到了头顶的鸟儿在树梢间的叫声&#xff0c;即使无法透过浓密的树叶看见它&#xff0c;也可以大致知道鸟儿的距离。此时身后传来由远到近自行车铃铛声&#xff0c;我们并不需要回过头去看&#xff0c;便为它让开了道路。这些…

查找文件路径——whereis、which、locate、find命令

目录标题 whereis命令——通过环境变量查找所有文件&#xff08;包括可执行文件&#xff09;which命令——查找系统命令文件与whereis命令区别 locate命令——全局搜索find命令&#xff08;全盘搜索&#xff09;find命令中的参数及作用按照文件名搜索按照文件大小搜索按照修改时…

离散数学-考纲版-02-谓词

文章目录 2. 谓词参考2.1 命题2.1 个体谓词和量词2.1.1 个体2.1.2 谓词2.1.3 量词引入个体域符号化量词真值确定谓词符号化举例示例一示例二示例三示例四 2.3谓词合式公式2.3.1 四类符号2.3.2 项2.3.3 合式公式 2.4 自由变元与约束变元2.4.1 定义2.4.2 判定2.4.3 两个规则2.4.4…

【京东】商品详情页+商品列表数据采集

作为国内最大的电商平台之一&#xff0c;京东数据采集具有多个维度。 有人需要采集商品信息&#xff0c;包括品类、品牌、产品名、价格、销量等字段&#xff0c;以了解商品销售状况、热门商品属性&#xff0c;进行市场扩大和重要决策&#xff1b; 有人需要采集产品评论&…

Android OpenGL 渲染相机预览画面显示体系

OpenGL能进行高效得渲染图形图像&#xff0c;并支持各种复杂的特效和动画。 而在 Android 当中&#xff0c;运用的是OpenGL ES&#xff0c;它是OpenGL的一个轻量级版本&#xff0c;专门用于在移动设备、游戏控制台、嵌入式系统等嵌入式环境中使用。 它可以做相机滤镜或者图片…

基于html+css的图片展示31

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

yield用法理解,配有代码块和解析

包含 yield 关键字的函数&#xff0c;是一个生成器 yield和return的区别 1、return是返回return关键字的值&#xff0c;被调用一次就返回一次&#xff0c;return只能放在一个函数代码块的最后面&#xff0c;运行到return的时候&#xff0c;就结束循环&#xff0c;结束这个函数…

IO、存储、硬盘、文件系统相关常识

目录 IO 文件系统 存储 存储这些数据的硬盘 IO io分为io设备和io接口, 我们日常生活中的打印机, 固态硬盘等都是io设备. IO&#xff08;Input-Output&#xff09;是指计算机中输入输出的相关操作&#xff0c;包括数据的读取、存储、传输和显示等。存储是指将数据保存在计算…

美国肝素钠专用树脂,医药肝素钠提取工艺专用树脂

具有控制孔径的大孔强碱性Ⅰ型阴离子交换树脂 Tulsimer A-72 MP 是一款具有便于颜色和有机物去除的控制孔径的&#xff0c;专门开发的大孔强碱性Ⅰ型阴离子交换树脂。 Tulsimer A-72 MP专门应用于去除COD以及其他有机物等。 Tulsimer A-72 MP 由于其本身的大孔特性而显示出…

电巢携手中国自动化学会:计算机能有感情史了

4月22日&#xff0c;为了促进模式识别、数据挖掘和计算机视觉等相关领域从业者进一步了解领域内最新发展动态与前沿技术进展&#xff0c;由中国自动化学会主办&#xff0c;中国自动化学会模式识别与机器智能&#xff08;CAA-PRMI&#xff09;专委会、中国计算机学会&#xff08…

Python OpenCV 蓝图:6~7

原文&#xff1a;OpenCV with Python Blueprints 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 计算机视觉 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 当别人说你没有底线的时候&#xff0c;你最好真…

【Cartopy基础入门】如何更好的确定边界显示

原文作者&#xff1a;我辈理想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 Cartopy基础入门 【Cartopy基础入门】Cartopy的安装 【Cartopy基础入门】Geojson数据的加载 【Cartopy基础入门】如何更好的确定边界显示 文章目录 Ca…

苯酚吸附树脂

苯酚作为一种重要的化工原料&#xff0c;主要用于生产酚醛树脂&#xff0c;双酚A&#xff0c;己内酰胺&#xff0c;壬基酚&#xff0c;水杨酸等&#xff0c;此外还可以做溶剂&#xff0c;试剂盒消毒剂等&#xff0c;在合成纤维&#xff0c;合成橡胶&#xff0c;塑料&#xff0c…

我国采矿采石设备制造行业发展现状与部分产品市场分析

一、行业基本概述 采矿采石设备制造&#xff0c;指地下或露天&#xff0c;用于对金属、煤炭、石油、化工等各种矿石或建筑用石的开采设备制造&#xff0c;以及矿石筛选、分类、分离、洗选、轧碎或类似加工工艺使用的专用机械的制造。 根据观研报告网发布的《 中国采矿采石设备…