MySQL 日志 - Binlog

news2024/12/29 2:43:24

文章目录

  • 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.coloradmin.cn/o/2194791.html

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

相关文章

OBOO鸥柏丨OLED透明触摸查询一体机数字科技触控广告屏技术前沿

吊挂透明OLED触摸屏一体机正成为博物馆数字化展示的“共同奔赴赛道选择,透过透明屏幕看到展示物品的内部结构和细节,GG纯平面触控实现展示查询交互与互动的完美结合。相比传统的商用/工业液晶显示屏机柜,OLED透明触摸屏具有更高的对比度和更广…

解锁 Python 嵌套字典的奥秘:高效操作与实战应用指南

文章目录 前言🍀一、 什么是 Python 字典?1.1 字典的语法 🍀二、 字典的基本操作2.1 字典的创建2.2 访问字典中的值2.3 添加或修改键值对2.4 删除字典中的键值对 🍀三、 字典的遍历操作3.1 遍历字典的键3.2 遍历字典的值3.3 同时遍…

UGUI(三大现成UI控件)

Rawimage 可以是任意类型的图,所以这里的泛型就更宽泛,不止sprite 相比Image唯二的不同 uvrect有点像平铺 Text suddenly come to a Free island. best fit开启后会有范围选择 Image image 组件是挂在RectTransform的ui下的,换句话说&…

秋招内推2025-招联金融

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

OBOO鸥柏丨户外液晶广告机有哪些功能可以定制室外广告牌?

OBOO鸥柏户外液晶广告机,犹如一位多才多艺的传播使者,巧妙融合信息传播、广告盛宴与互动乐园于一体,室外高亮数字标牌成为都市风景中一抹亮丽的智慧之光。鸥柏液晶户外广告牌轻盈穿梭于高速服务区的喧嚣、智慧城市的新能源充电站、收费站的繁…

Linux_kernel字符设备驱动12

一、字符设备的编程框架 在Linux_kernel驱动开发11中,我们介绍的系统调用。只是为了做一个实验,在真正开发时,我们并不会直接在内核中添加一个新的系统调用,这样做会导致内核体积变大。 1、字符设备结构体 我们实现一个硬件字符设…

WPF|依赖属性SetCurrentValue方法不会使绑定失效, SetValue方法会使绑定失效?是真的吗?

引言 最近因为一个触发器设置的结果总是不起效果的原因,进一步去了解[依赖属性的优先级](Dependency property value precedence - WPF .NET | Microsoft Learn)。在学习这个的过程中发现对SetCurrentValue一直以来的谬误。 在WPF中依赖属性Dependency property的…

力扣 中等 216组合总和III

文章目录 题目介绍解法 题目介绍 解法 是77.组合链接的扩展 class Solution {List<List<Integer>> result new ArrayList<>();List<Integer> path new ArrayList<>();public List<List<Integer>> combinationSum3(int n, int k) …

流速仪设备操作说明

1 流速仪设备安装 按图示对流速仪设备进行安装&#xff0c;主要是流速仪和电频。 连接电脑&#xff0c;直接插上信号接收器&#xff0c;后面使用蓝牙连接。 2 安装软件 3 双击ParaniWin进行设备连接 3.1 按图片所示&#xff0c;设置端口等信息 3.2 Device Setting —>输…

2024软件设计师高频考点体系—软件工程体系考点大全

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 更多高频考点&#x1f9e7;&#x1f7e5;软件设计师高频考点电子手册✨点击进入&#x1f381;&#x1f7e6; 软件设计师高频考点…

力扣59.螺旋矩阵||

题目链接&#xff1a;59. 螺旋矩阵 II - 力扣&#xff08;LeetCode&#xff09; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff…

【C/C++】错题记录(五)

题目一 题目二 在 16 位机器上&#xff0c;通常以 2 字节为边界对齐。 首先看 char a&#xff0c;它占用 1 个字节。接着是 int b&#xff0c;占用 2 个字节。由于要满足边界对齐&#xff0c;在 char a后面会填充 1 个字节&#xff0c;使得 int b从 2 字节边界开始存储。最后是…

TMGM开户后还可以开代理账户吗

在TMGM平台进行交易的人也想开立代理账户。那么&#xff0c;TMGM的代理账户如何开设&#xff1f;答案是&#xff1a;首先需要先开设个人交易账户&#xff0c;然后再申请成为代理商。 1. 先开个人交易账户 在TMGM开设代理账户的首要步骤是先拥有一个个人交易账户。您可以通过访…

Carsim报错总结及解决方法

1. simulink报错&#xff1a;vs_state 、StopMode无法识别 - matlab命令行窗口输入&#xff1a;vs_state -1&#xff0c;StopMode -1 2. Video变暗&#xff0c;无法点击 - 说明书中提示&#xff1a;如果输出文件不存在&#xff08;例如&#xff0c;在单击复制按钮创…

身份证二要素-身份证二要素接口-身份证尔雅欧批量核验

身份证批量核查简介&#xff1a;【身份证批量核查】极速查询、多线程、高并发&#xff0c;可批量上传excel文件&#xff0c;2万条数据约30分钟核验完成。无需技术参与、自主便捷查询 1、登录后&#xff0c;点击右上角【个人中心】按钮&#xff0c;进入个人中心页面 2、进入个…

基于单片机的信号选择与温度变化

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DS18B20检测温度&#xff0c;通过三种LED灯代表不同状态。 采用DAC0832显示信号脉冲&#xff0c;通过8位数码管显示温度。 信号脉冲可以根据两个按键分别调整为正弦…

5G NR 切换流程简介

文章目录 切换类型分类切换步骤测量事件分类5G NR系统内切换信令流程 切换类型分类 5G NR 的切换类型分为 系统间切换和系统内切换&#xff0c;而 系统间切换又分为 5G NR 与 4G LTE 和5G NR 与3G WCDMA的切换。站内切换则分为站内切换和站间间切换。 切换步骤 主要分为三个阶…

边缘端大模型是怎么部署的?重点关注哪些?

写在前面 在设备端运行的大语言模型&#xff08;LLMs&#xff09;&#xff0c;即指在边缘设备上运行LLMs&#xff0c;因其出色的隐私保护、低延迟和节省带宽的特点而引起了广泛关注。然而&#xff0c;与功能更为强大的云中心相比&#xff0c;设备端LLMs的能力本质上受到边缘设…

高效数据处理:MapReduce与Hive的实战应用

文章目录 hive分析汇总互联网日志分析1.项目需求2.数据说明3.算法思路 用户电影推荐1.项目需求2.数据说明3.算法思路4.解题步骤 简单数据统计WordCount数据说明 疫情数据分析1.项目需求2.数据说明step1:创建ods层数据表step2&#xff1a;创建dwd层数据表step3&#xff1a;创建d…

Vue84 vue3项目结构分析

打开main.js文件&#xff0c;发现和vue2不同 //引入的不再是Vue构造函数了&#xff0c;引入的是一个名为createApp的工厂函数 import { createApp } from vue import App from ./App.vue//创建应用实例对象——app(类似于之前Vue2中的vm&#xff0c;但app比vm更“轻”) const …