当前位置: 首页 > news >正文

MySQL中的redoLog

在数据库系统中,redo log(重做日志)用于记录所有已提交事务的修改操作,它的主要目的是确保在系统崩溃或故障后,能够恢复数据库到崩溃前的状态。Redo log 记录的是事务修改的数据的具体操作,而不是数据本身。

MySQL 为例,假设有一个表 users,它的结构如下:

CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(100),age INT
);

如果你对表进行如下操作:

INSERT INTO users (id, name, age) VALUES (1, 'Alice', 30);
UPDATE users SET age = 31 WHERE id = 1;
DELETE FROM users WHERE id = 1;

这些操作会被记录在 redo log 中。Redo log 的内容并不会保存具体的 SQL 语句,而是保存对应的 数据修改记录。它通常包括以下信息:

  1. 事务开始:记录事务的开始时间。
  2. 数据修改前后的状态:每个数据页的变化,包括修改的数据行、插入的数据或删除的数据。
  3. 事务提交:事务成功提交后,记录这次提交操作。

对于上面的 SQL 操作,Redo log 中可能会存储如下的内容(以简化的伪代码形式):

Redo Log 示例

[事务开始] TransID=1
[INSERT] 表: users, 数据: (id=1, name='Alice', age=30)
[UPDATE] 表: users, 数据: (id=1, name='Alice', age=31)
[DELETE] 表: users, 数据: (id=1, name='Alice', age=31)
[事务提交] TransID=1

数据结构

Redo log 中通常会包含以下字段:

  • 日志序列号(Log Sequence Number, LSN):每条日志的唯一标识符。
  • 事务ID(Transaction ID):标识一个事务。
  • 操作类型:插入、更新、删除等。
  • 修改的表及数据:实际修改的行和字段。
  • 旧值和新值:在更新操作中,保存修改前后的值。

为什么需要 Redo Log?

Redo log 的目的是在数据库崩溃后进行恢复,恢复的过程是:通过重做所有已提交事务的操作来恢复到崩溃之前的状态。例如,假设在一个事务执行中系统崩溃了,但日志中已经记录了该事务的所有操作,可以使用 redo log 来恢复该事务所做的修改。

MySQL中的Redo Log存储

在 MySQL 中,redo log 通常保存在 ib_logfile 文件中,这些日志条目是二进制格式的,并且它们的内容和格式通常是数据库引擎(如 InnoDB)内部管理的,用户无法直接读取。

总结: Redo log 存储的是数据库的操作记录,而不是原始数据,主要用于事务恢复。它的内容包括事务的修改操作,确保数据一致性和恢复能力。

http://www.lryc.cn/news/499737.html

相关文章:

  • Windows 安装 MySQL
  • yocto的xxx.bb文件在什么时候会拷贝文件到build目录
  • Ubuntu Server 22.04.5 LTS重启后IP被重置问题
  • Java基础复习
  • 简易图书管理系统
  • 结构型-组合模式(Composite Pattern)
  • 【知识堂】大数据
  • 力扣C语言刷题记录(三)搜索插入位置
  • 在Node.js局域网调试https的Vue项目
  • 3.5 认识决策树
  • 股市复盘笔记
  • Canal 深入解析:从原理到实践的全面解读
  • SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测
  • 解决 Maven 部署中的 Artifact 覆盖问题:实战经验分享20241204
  • 【开源免费】基于SpringBoot+Vue.JS中小型医院网站(JAVA毕业设计)
  • Linux CentOS
  • Android SurfaceFlinger layer层级
  • spark-sql配置教程
  • 生成表格pdf格式
  • C++ 游戏开发的前沿趋势:从光线追踪到人工智能的全新挑战
  • 微信小程序3-显标记信息和弹框
  • EasyNVR中HTTP-FLV协议无法播放怎么解决?
  • spring cloud之ribbon复习回顾
  • RFT 强化微调
  • SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
  • 分布式搜索引擎Elasticsearch
  • 在Vue.js中生成二维码(将指定的url+参数 生成二维码)
  • 统信桌面专业版部署postgresql-14.2+postgis-3.2方法介绍
  • 数字图像处理(16):RGB与HSV互转
  • web组态可视化编辑器