MySQL 日志 - Binlog

文章目录

  • binlog 的格式
  • mysqbinlog 工具
  • SHOW binlog events;
  • binlog 和 redo log 对比

https://dev.mysql.com/doc/refman/8.4/en/binary-log.html

binlog 全称 BinaryLog,是 MySQL 数据库中用于记录所有更改数据库状态的事件的日志文件。它主要用于以下几个目的:

  1. 数据恢复:在数据库出现故障时,可以利用 binlog 中的记录恢复数据到一个特定的时间点。
  2. 主从复制:在主从架构中,从库可以通过读取主库的 binlog 来同步数据,实现数据的复制和备份。
  3. 审计和监控:通过分析 binlog,可以监控数据库中的数据变更,进行审计和性能分析。

binlog 的特点

  1. 二进制格式:binlog 以二进制格式存储数据,相较于文本日志更为高效。
  2. 事件驱动:记录每个数据修改操作的事件,而不是简单的 SQL 语句。
  3. 可配置性:可以根据需要配置 binlog 的格式以及其存储方式。

binlog 的格式

https://dev.mysql.com/doc/refman/8.4/en/binary-log-formats.html

MySQL 的 binlog 有三种主要的日志格式:行格式、语句格式和混合格式。每种格式都有其特点、优缺点和适用场景。

  1. 行格式(ROW):记录每一行数据的变化,而不是 SQL 语句。
    优点:更加准确,能够捕捉到具体的数据变化。在处理复杂的 SQL 语句时,能够避免语句重放带来的不一致性问题。
    缺点:日志文件可能会变得很大,因为每一行的变化都要记录。对于大批量的操作,性能开销较大。
    使用场景:适合对数据一致性要求高的场景,尤其是涉及到复杂的业务逻辑和多表操作时。
  2. 语句格式(STATEMENT)
    特点:记录执行的 SQL 语句。
    优点:日志文件较小,存储效率高。适合简单的插入、更新和删除操作。
    缺点:对于某些非确定性的操作(如使用 NOW()、RAND() 等函数),可能会导致在主从复制时出现不一致。当 SQL 语句的逻辑复杂时,重放可能无法达到预期效果。
    使用场景:适合简单的、确定性操作的场景,或是数据变更较少的情况。
  3. 混合格式(MIXED)
    特点:结合了行格式和语句格式,根据具体的操作自动选择使用哪种格式。
    优点:兼具行格式和语句格式的优点,能够在性能和一致性之间取得平衡。
    自动选择最合适的格式,简化了配置和使用。
    缺点:在某些情况下,可能会引入复杂性,需要理解选择的逻辑。需要良好的监控和管理,以确保没有不一致性。
    使用场景:适合大多数场景,尤其是需要在性能和一致性之间找到平衡的应用。

总结

日志格式优点缺点使用场景
行格式 (ROW)数据变更准确,避免不一致性日志文件较大,性能开销大高一致性要求的复杂操作
语句格式 (STATEMENT)日志文件小,存储效率高可能导致不一致,复杂操作重放问题简单、确定性操作
混合格式 (MIXED)性能与一致性平衡,自动选择最合适格式可能引入复杂性,需要良好监控大多数场景,需要平衡性能和一致性

mysqbinlog 工具

可以使用 mysqlbinlog 工具查看或处理 binlog 的内容

mysqlbinlog [options] log_file_name

常用选项

  • -h, --host=name:指定 MySQL 服务器的主机名或 IP 地址。
  • -u, --user=name:指定连接 MySQL 使用的用户名。
  • -p, --password[=name]:指定连接 MySQL 使用的密码。
  • –port=#:指定连接 MySQL 使用的端口号。
  • -r, --start-position=#:从指定的位置开始读取 binlog。
  • -S, --socket=name:指定 Unix 套接字文件的路径。
  • –database=name:只显示特定数据库的事件。
  • –start-datetime=‘YYYY-MM-DD HH:MM:SS’:从指定的时间开始读取 binlog。
  • –stop-datetime=‘YYYY-MM-DD HH:MM:SS’:直到指定的时间停止读取 binlog。
  • –verbose:显示更详细的输出信息。

SHOW binlog events;

SHOW BINLOG EVENTS 是 MySQL 中的一个命令,用于显示指定 binlog 文件中的事件信息。这个命令可以帮助用户了解 binlog 中记录了哪些操作,以及这些操作的具体细节。

  1. 该命令可以列出 binlog 中的所有事件类型,如 INSERT、UPDATE、DELETE 等。
  2. 获取事件位置:显示每个事件的位置信息,方便后续的恢复或复制操作。
  3. 分析数据变更:通过查看事件,可以分析特定时间段内的数据变更情况,有助于审计和监控。
  4. 调试和故障排查:在出现数据不一致或复制延迟等问题时,可以通过 SHOW BINLOG EVENTS 来诊断问题。

执行该命令后,通常会返回以下列的信息:
在这里插入图片描述

  1. Log Name:binlog 文件的名称。
  2. Pos:事件在 binlog 文件中的位置。
  3. Event Type:事件的类型(如 Query、Table_map、Write_rows 等)。
  4. Server Id:产生事件的服务器 ID。
  5. End Log Pos:事件结束时的位置。
  6. Info:事件的详细信息,通常是 SQL 语句或操作描述。

binlog 和 redo log 对比

下面是 binlog 和 redolog 的一些对比:

特性binlog redo log
目的记录所有数据库更改,支持数据恢复和主从复制确保事务的持久性和数据一致性
存储内容SQL 语句或更改事件对数据页的具体修改操作
位置存储在磁盘上,通常以 binlog.000001 命名存储在 InnoDB 的日志文件中,如 ib_logfile0, ib_logfile1
使用场景数据恢复、主从复制、审计崩溃恢复、事务一致性
读取方式使用 mysqlbinlog 工具查看和处理由数据库内部管理,用户一般不直接查看
性能适合数据变更量大时使用快速恢复数据页状态,适合高并发事务处理

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【hot100-java】二叉树中的最大路径和

二叉树篇 easy. /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

考试宝 逆向 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我…

Ping32引领数据防泄漏新潮流:智能、高效、安全

在当今数字化迅猛发展的时代,企业面临着日益严峻的数据安全挑战。数据泄漏事件频发,不仅损害企业声誉,还可能导致巨额的经济损失。为此,Ping32以其创新的数据防泄漏解决方案,正在引领行业新潮流。其技术特点可概括为“…

集师知识付费小程序:打造培训机构在线教育的金字招牌 集师知识付费系统 集师知识付费小程序 集师知识服务系统 集师线上培训系统 集师线上卖课小程序

在数字化浪潮的推动下,在线教育已成为教育领域的热门话题。而在众多在线教育平台中,集师知识付费小程序凭借其独特的定位和创新的模式,成功为培训机构打造了一张闪亮的在线教育金字招牌。 集师知识付费小程序,是一个集课程展示、…

从零开始学习Vue3

1、Vue3特点:更多的API特性;体积更小,速度更快;解决遗留问题;更加强壮。 2、通过全面学习Vue3,新手与老手的收获: 新手—如何去使用Vue完成项目的开发 老手—深度理解特性背后的原理 3、达到学习…

QRTCN区间预测 | Matlab实现QRTCN时间卷积神经网络分位数回归区间预测

区间预测 | Matlab实现QRTCN时间卷积神经网络分位数回归区间预测 目录 区间预测 | Matlab实现QRTCN时间卷积神经网络分位数回归区间预测预测效果基本介绍模型特性程序设计参考资料预测效果 基本介绍 Matlab实现QRTCN时间卷积神经网络分位数回归区间预测 QRTCN(Quantile Regres…

Kafka 快速入门

目录 介绍 KafKa 相关术语 ​编辑 Kafka的工作流程 生产者向kafka发送数据的流程 Kafka选择分区的模式 Kafka选择分区的模式 数据消费 kafka的文件存储机制 topic、partition和segment 存储和查找message的过程 数据写入过程 数据查找过程 注意事项 kafka管理UI …

【hot100-java】二叉树的最近公共祖先

二叉树篇 我觉得是比两个节点的深度,取min(一种情况) DFS解题。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/ clas…

Redis set类型 zset类型

set类型 类型介绍 集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中 1)元素之间是⽆序 的 2)元素不允许重复 ⼀个集合中最多可以存储 个元素。Redis 除了⽀持 集合内的增删查改操作,同时还⽀持多…

gaussdb hccdp认证模拟题(单选)

1.在GaussDB逻辑架构中,由以下选项中的哪一个组件来负责提供集群日常运维、配置管理的管理接口、工具?(1 分) A. CN B. DN C. GTM D. OM --D 2.在以下命令中,使用以下哪一个选项中的命令可以以自定义归档形式导出表t1的定义&#xf…

WPF中的内容控件

控件分类 在第一篇文章.Net Core和WPF介绍中的WPF的功能和特性部分根据功能性介绍了WPF的控件 名称。 在接下来的文章中,将会详细的介绍各个控件的概念及使用。 主要包括: 内容控件:Label、Button、CheckBox、ToggleButton、RadioButton、…

C++进阶——哈希

1.哈希的概念以及介绍 哈希结构是一种可以不经过任何比较,一次直接从表中得到要搜索的元素的数据结构。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立 一一映射关系,那么在查找时通过该函数可以很…

基于SpringBoot项目评审系统【附源码】

基于SpringBoot项目评审系统 效果如下: 系统首页界面 学生登录界面 项目信息页面 项目申报页面 专家注册界面 管理员登录界面 管理员功能界面 项目评审界面 评审结果界面 研究背景 在当今快速发展的信息时代,项目评审作为项目管理的关键环节&#xff…

vue2集成vuex实现网站统一数据管理

文章目录 前言安装配置过程1、安装vuex依赖2、在src目录下创建store文件夹,创建模块site.jsgetters.jsindex.js 3、在man.js中添加vuex vuex实战:存储与获取网站基础数据何时去存储数据?(路由前置获取数据)如何取数据&…

高校新生报道管理系统使用SpringBootSSM框架开发

!!!页面底部,文章结尾,加我好友,获取计算机毕设开发资料 目录 一、引言 二、相关技术介绍 三、系统需求分析 四、系统设计 五、关键技术实现 六、测试与优化 七、总结与展望 一、引言 当前高校新生报到过程中存在许多问题,…

RISC-V笔记——基础

1. 前言 RISC-V旨在支持广泛的定制和专业化。RISC-V的ISA是由一个基本整型ISA和其它对基本ISA的可选扩展组成。每个整型ISA可以使用一个或多个可选的ISA扩展进行扩展。 基本整型ISA精选了最小的一组指令,这些指令足以为编译器、汇编器、链接器和操作系统提供足够的…

如何解决与kernel32.dll相关的常见错误:详细指南解析kernel32.dll文件缺失、损坏或错误加载问题

当你的电脑中出现错误kernel32.dll丢失的问题,会导致电脑不能出现正常运行,希望能够有效的帮助你有效的将丢失的kernel32.dll文件进行修复同时也给大家介绍一些关于kernel32.dll文件的相关介绍,希望能够有效的帮助你快速修复错误。 kernel32.…

鸿蒙HarmonyOS中Image图片组件以及HarmonyOs图标库完全解析

Image 图片组件,支持本地图片和网络图片的渲染展示。 一 、加载网络图片 1 、需要在 src/main/module.json5 中申请网络权限 "requestPermissions": [ { "name": "ohos.permission.INTERNET" } ] 详情参考: https://d…

基于Es的分词查询通过高亮效果实现前端高亮显示!!!!

引言: 经常我们在浏览器界面搜索关键词的时候,浏览器返回给我们的页面都是高亮显示关键词的效果, 如下: 我们要简单实现这个效果很简单,可以通过多种办法,这里通过Es 的高亮效果实现给我们关键字字段加自…

【计网】【计网】从零开始学习http协议 ---理解http重定向和请求方法

去光荣地受伤, 去勇敢地痊愈自己。 --- 简嫃 《水问》--- 从零开始学习http协议 1 知识回顾2 认识网络重定向3 http请求方法3.1 http常见请求方法3.2 postman工具进行请求3.3 处理GET和POST参数 1 知识回顾 前面两篇文章中我们学习并实现了http协议下的请求与应…