先来聊聊MySQL的binlog文件解析

news2024/11/24 3:14:02

先来聊聊MySQL的binlog文件解析

    • 简介
    • MySQL binlog的三种工作模式
    • binlog相关参数
    • mysqlbinlog解析工具

看腻了文章就来听听视频讲解吧:https://www.bilibili.com/video/BV1F94y1s7xe/

简介

MySQL的binlog日志是用来记录MySQL对数据库有变更操作的记录,包括DDL和DML,除了select或show等查询类语句不会被binlog日志记录,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。

binlog文件类型:

  • 二进制索引文件(后缀名为.index)
  • 日志文件(后缀名为.00000*),记录数据库所有的DDL和DML(除了查询语句select)语句事件

image.png

用途:
主要用于数据库的主从复制和数据恢复

  • 主从复制:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
  • 数据恢复:通过使用mysqlbinlog工具来恢复数据。

MySQL binlog的三种工作模式

  • statement格式,生产环境不建议使用
    优点:不需要记录每一行的变化,减少了binlog日志量,节约I/O,提高性能
    缺点:使用特殊函数或跨库操作时容易丢失数据
  • row格式,生产环境建议使用
    优点:记录每行数据被修改的情况,安全性高
    缺点:会产生大量binlog,网络开销也较大
  • mixed格式,生产环境不建议使用
    MySQL5.1的一个过渡版本,DDL语句会记录成statement,DML会记录成row

binlog相关参数

-- binlog开关
mysql> show variables like 'log_bin%';
+---------------------------------+-------------------------------+
| Variable_name                   | Value                          
+---------------------------------+-------------------------------+
| log_bin                         | ON                              
| log_bin_basename                | /mysqldata/data/mysql-bin      
| log_bin_index                   | /mysqldata/data/mysql-bin.index
| log_bin_trust_function_creators | OFF                            
| log_bin_use_v1_row_events       | OFF                             
+---------------------------------+-------------------------------+
5 rows in set (0.00 sec)
-- binlog工作模式
mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
1 row in set (0.00 sec)
-- binlog文件大小,1073741824/1024/1024/1024=1GB
mysql> show variables like 'max_binlog_size';
+-----------------+------------+
| Variable_name   | Value      |
+-----------------+------------+
| max_binlog_size | 1073741824 |
+-----------------+------------+
1 row in set (0.00 sec)
-- 安全参数 :binlog过期天数自动清理,建议全备周期2倍
mysql> show variables like 'expire_logs_days';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| expire_logs_days | 0     |
+------------------+-------+
-- 查看biglog日志文件所在点,最后一个为当前binlog日志文件
mysql> show master logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000012 |      8736 |
| mysql-bin.000013 |      3087 |
+------------------+-----------+
2 rows in set (0.00 sec)

-- 重新生成一个binlog日志
mysql> flush logs;
-- 重置(清空)所有binlog日志(慎用)
mysql> reset master;

mysqlbinlog解析工具

mysqlbinlog解析工具是安装MySQL时自带的,一款用于将MySQL的binlog日志转换成“SQL语句”,默认情况下binlog日志是二进制文件,无法直接查看。

# 解析binlog文件,打印误操作SQL前后各10行,选择要恢复的结束位点 # at xxoo
mysqlbinlog -v -v mysql-bin.000002 | grep "DROP xxoo" -A 10 -B 10

# 统计DML操作频繁的表(ROW模式统计的是行数,statement模式统计的是次数)
[root@db01 data]# mysqlbinlog --no-defaults --base64-output=decode-rows -v -v mysql-bin.000012 | awk '/###/{if($0~/UPDATE|INSERT|DELETE/)count[$2" "$NF]++}END{for(i in count)print i,"\t",count[i]}' | column -t | sort -k3nr | more
INSERT  `mdb`.`t12`  9
UPDATE  `mdb`.`t12`  5
DELETE  `mdb`.`t12`  3

下回预告:mysqlbinlog解析工具如何做数据恢复

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

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

相关文章

TCP为什么是三次握手

TCP:Transmission Controll Protocol:传输控制协议;面向连接、可靠的、基于字节流的传输层协议 ​ 面向连接:客户端和服务端进行连接的协议 ​ 可靠性:保证信息能够从发送端到达接收端;这是…

四川玖璨电子商务有限公司抖音电商界的领跑者

在当今的电商市场中,四川玖璨电子商务有限公司以其卓越的表现和领先的地位,被广大消费者和业内人士所认可。作为抖音电商领跑者,该公司以其精湛的产品和服务,创新的营销策略,及客户至上的理念,成为这个充满…

Spring学习笔记12 面向切面编程AOP

Spring学习笔记11 GoF代理模式_biubiubiu0706的博客-CSDN博客 AOP(Aspect Oriented Programming):面向切面编程,面向方面编程. AOP是对OOP的补充延申.底层使用动态代理实现. Spring的AOP使用的动态代理是:JDK动态代理_CGLIB动态代理技术.Spring在这两种动态代理中灵活切换.如…

Lua多脚本执行

--全局变量 a 1 b "123"for i 1,2 doc "Holens" endprint(c) print("*************************************1")--本地变量(局部变量) for i 1,2 dolocal d "Holens2"print(d) end print(d)function F1( ..…

没有 RunInstallerAttribute.Yes 的公共安装程序

安装window服务时报“没有 RunInstallerAttribute.Yes 的公共安装程序”的问题

Pytorch单机多卡分布式训练

Pytorch单机多卡分布式训练 数据并行: DP和DDP 这两个都是pytorch下实现多GPU训练的库,DP是pytorch以前实现的库,现在官方更推荐使用DDP,即使是单机训练也比DP快。 DataParallel(DP) 只支持单进程多线程…

Aqara秋季品鉴会众新品亮相 空间智能全面进化

9月26日,全球IoT独角兽Aqara以“空间智能,全面进化”为主题在北京三里屯CHAO酒店举办了秋季品鉴会。会上正式发布了方舟智慧中枢M3、卡农智能墙壁开关Z1 Pro、银河系列高端灯具V1以及具备全新功能升级的场景传感器FP2,方舟技术升级至2.0版本。…

浅谈Deep Learning 与 Machine Learning 与Artificial Intelligence

文章目录 三者的联系与区别 三者的联系与区别 “Deep Learning is a kind of Machine Learning, and Machine Learning is a kind of Artificial Intelligence.” 人工智能(AI),机器学习(Machine Learning,简称ML&am…

玩转 CODING 自动化助手,助力高效研发!

点击链接了解详情 在日常工作中,您是否会遇到下面的情况: 作为研发人员,从需求拆分出来的开发子任务完成时,还要手动修改需求为完成状态,不仅耗时还容易遗漏; 作为产品经理,每天都要关注需求/任…

游戏开发过程中需要注意哪些问题呢?

游戏开发是一个复杂的过程,需要注意多个方面的问题。以下是一些需要特别关注的关键问题: 游戏设计: 确定游戏的核心玩法和目标受众。 制定详细的游戏设计文档,包括角色、关卡设计、游戏机制和故事情节。 技术选择:…

项目04-基于Docker的Prometheus+Grafana+AlertManager的飞书监控报警平台

文章目录 一.项目介绍1.流程图2.拓扑图3.详细介绍 二.前期准备1.项目环境2.IP划分 三. 项目步骤1.ansible部署软件环境1.1 安装ansible环境1.2 建立免密通道1.3 批量部署docker 2 部署nginx、MySQL以及cadvisor、exporter节点2.1 在nginx节点服务器上面配置nginx、node_exporte…

高效批量剪辑的秘诀与技巧,虚化背景技巧在视频剪辑中的应用与创意

你是否曾经为了制作一个高质量的视频而感到烦恼?视频剪辑是一项繁琐的工作,但是使用批量剪辑工具可以让这个过程变得更加高效。今天,我们将向您介绍一款强大的批量剪辑工具——视频工厂,帮助您轻松制作高质量视频。 首先&#xff…

linux中mysql启动失败以及数据迁移

背影:服务启动失败:报错数据库连接太多导致mysql挂了 解决过程: 在任何部署信息都不知道的前提下(因为是被临时拉来解决的): 1、通过【find / -name mysql】或者【whereis mysql】查找(ps&am…

两表查询常用SQL

1、两个表:table_a和table_b,求两表的交集,关键字:INNER JOIN SELECT a.*,b.* FROM table_a AS a INNER JOIN table_b AS b ON a.idb.id; 2、两个表:table_a和table_b,table_a为主表&#xff0…

新旅程、新经营丨神策 2023 数据驱动大会 10 月 27-28 日北京见

以数据驱动为手段 以客户旅程为抓手 实现更好的数字化客户经营 「新旅程、新经营,决胜数字化」 神策 2023 数据驱动大会 报名通道正式开启 识别二维码立即报名 历经八载,神策数据驱动大会已成为国内数字化转型和营销科技领域的年度盛会!本届大…

这个国庆场景下的创意数据应用,体现了数字经济时代的商业价值

在生成式AI爆火的2023年,数据协作和数据交换的商业价值越来越明显。大模型的训练正需要海量跨领域数据的“投喂”,才能真正创造商业价值涌现的奇迹。而如何在保护数据安全的前提下,有效发挥数据资产的商业价值,成为企业数字化亟需…

[异构图-论文阅读]Heterogeneous Graph Transformer

这篇论文介绍了一种用于建模Web规模异构图的异构图变换器(HGT)架构。以下是主要的要点: 摘要和引言 (第1页) 异构图被用来抽象和建模复杂系统,其中不同类型的对象以各种方式相互作用。许多现有的图神经网络(GNNs)主要针对同构图设计,无法有效表示异构结构。HGT通过设计…

【力扣2656】K个元素的最大和

👑专栏内容:力扣刷题⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、题目描述二、题目分析 一、题目描述 题目链接:K个元素的最大和 给你一个下标从 0 开始的整数数组 nums 和…

【kkFileView】源码编译打包构建镜像部署

目录 官网使用源码构建镜像k8s启动yaml参考使用介绍 官网 官网: http://kkfileview.keking.cn/zh-cn/index.html在线文档: http://kkfileview.keking.cn/zh-cn/docs/home.html源码地址: https://gitee.com/kekingcn/file-online-preview发行版下载页面: https://gitee.com/kek…

数据分析技能点-正态分布和其他变量分布

在数据驱动的世界里,了解和解释数据分布是至关重要的。不同类型的数据分布,如正态分布、二项分布和泊松分布,具有不同的特性和应用场景。这些分布不仅在统计学和数据科学中有广泛应用,而且在日常生活和商业决策中也起着关键作用。 文章目录 正态分布正态分布和偏差其他常见…