【SQL】redo log | undo log

news2024/10/2 10:41:17

【SQL】日志

  • redo日志和undo日志
    • REDO LOG
      • redo的整体流程
    • UNDO LOG
  • 小结

redo日志和undo日志

REDO LOG

称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。
事务提交后,刚写完缓冲池,数据库宕机了,那么这段数据就是丢失的,无法恢复。对于一个已经提交的事务,在事务提交后即使系统发生了崩溃,这个事务对数据库中所做的更改也不能丢失。那么我们就需要让已经提交了的事务对数据库中数据所做的修改永久生效,即使后来系统崩溃,在重启后也能把这种修改恢复出来。这时引入redo日志,把修改了的部分记录在文件中,需要恢复时直接拿来用。

优点:

  • redo日志降低了刷盘频率
  • redo日志占用的空间非常小

特点:

  • redo日志是顺序写入磁盘的
  • 事务执行过程中,redo log不断记录

redo log 和 bin log
redo log是存储引擎层的,bin log是数据库层。bin log用于主从复制,保持数据的一致性,主机写入一条记录,并写入bin log日志,从机再从bin log日志中复制过来。在对表进行插入的过程中,redo log不断进行顺序记录,而bin log不会记录,直到这个事务提交,才一次性写入bin log文件中。

在这里插入图片描述

redo的整体流程

在这里插入图片描述
innodb的更新操作是采用write ahead log(预先日志持久化)策略,即先写日志再写入磁盘
在这里插入图片描述
InnoDB给出innodb_flush_log_at_trx_commit 参数,该参数控制 commit提交事务时,如何将 redo log buffer 中的日志刷新到 redo log file 中。它支持三种策略:
设置为0 :表示每次事务提交时不进行刷盘操作。(系统默认master thread每隔1s进行一次重做日志的同步)
设置为1 :表示每次事务提交时都将进行同步,刷盘操作( 默认值,最可靠但效率低)
设置为2 :表示每次事务提交时都只把 redo log buffer 内容写入 page cache,不进行同步。由os自己决定什么时候同步到磁盘文件。

UNDO LOG

称为回滚日志,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。
在事务中,对一条记录做改动(插入、删除、修改)之前,写入undo 日志,注意查询操作不计入undo日志。
此外,undo log会产生redo log,因为undo log也需要持久性的保护。

undo日志的作用:
1.回滚数据。undo 日志仅将数据逻辑的恢复到之前的状态,而不是物理层面。数据结构和页本身可能与原先大不相同。
2.mvcc并发控制。

小结

在这里插入图片描述
undo log是逻辑日志,对事务回滚时,只是将数据库逻辑地恢复到原来的样子。
redo log是物理日志,记录的是数据页的物理变化,undo log不是redo log的逆过程。

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

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

相关文章

Linux 必知必会

一、Linux 简介 Linux 与 Windows 和 Mac OS 等系统一样,它也是一个操作系统,并且是一个开源的类 unix 操作系统。凭借着其免费、安全、高稳定性等特点,被广泛应用于服务器、嵌入式开发等领域,并且在服务器领域一枝独秀&#xff0…

docker-compose Install Prometheus

前言 Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上…

蒙代尔-弗莱明模型

蒙代尔-弗莱明模型 – 潘登的宏观经济学笔记 文章目录蒙代尔-弗莱明模型 -- 潘登的宏观经济学笔记IS-LM-BP蒙代尔-弗莱明模型资本完全流动固定汇率制度浮动汇率制资本完全不流动固定汇率制浮动汇率制资本不完全流动(KA主导,BP斜率小)固定汇率制浮动汇率制资本不完全…

代码随想录刷题|买卖股票问题的总结

目录 总结 121.买卖股票的最佳时机 问题描述 特点分析 动态规划思路 122.买卖股票的最佳时机Ⅱ 问题描述 特点分析 动态规划思路 123.买卖股票的最佳时机III 问题描述 特点分析 动态规划思路 188.买卖股票的最佳时机IV 问题描述 特点分析 动态规划思路 309.最…

tictoc例子理解 16-18

tictoc16-18tictoc 16 全局信号signaltictoc 17 在仿真界面幕布上显示总条数信息tictoc 18tictoc 16 全局信号signal 前一步的主要问题是,如果我们想要更改所收集的统计信息,就必须修改模型的代码。统计计算深入到模型代码中,很难修改和理解…

大型扫码点餐小程序系统源码

1. 开发语言:JAVA 2. 数据库:MySQL 3. 原生小程序 4. Sass 模式 5. 带调试视频 6. 可付费调试服务 扫码点餐小程序管理端: 数据统计:今日订单、堂食、预约、外卖、储值 堂食订单:订单号、商家、门店、类型、会员、桌位…

Spring进阶(二十)之事件处理

目录 为什么需要使用事件这种模式 事件模式中的几个概念 使用事件模式实现上面用户注册的业务 事件对象 事件监听器 事件广播器 事件广播默认实现 自定义用户注册成功事件类 用户注册服务 下面我们使用spring来将上面的对象组装起来 测试用例模拟用户注册 添加注册…

第四十篇 Vue封装swiper组件(v-swiper指令) 3.0

在前面讲到 Vue组件的封装不知道还记不记得,这里就不在过多的赘述,这里附上链接跳转可以进行回顾翻阅,上一篇内容​​​​​​​讲到这个自定义的指令,也就是为这篇封装swiper组件使用指令做铺垫的,那么也一同附在这里…

电子电气架构设计之三电系统设计

文中缩略词参考 SSTS:Sub System Technical Specification,子系统功能规范 CTS:Component Technical Specification,部件功能规范 DCDC:Direct Current Direct Current Converter,直流转直流变换器 BMS&…

Postgresql源码(92)深入分析HOT更新

0 概述与总结 hot更新已经有几篇分析了,这里是最后一篇(总结性的,前面的可以忽略)。前面在看update代码时,大部分集中在heap_update上,没有涉及寻找HOT链的逻辑。本篇重点看HOT链是如何使用的。 &#xf…

[附源码]计算机毕业设计JAVA鑫地酒店酒水库存管理系统论文

[附源码]计算机毕业设计JAVA鑫地酒店酒水库存管理系统论文 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: …

搜索技术——群智能

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间 一:初识群智能 1.1:粒子群算法 粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写…

语音特征:spectrogram、Fbank(fiterbank)、MFCC

1.各种语音特征 语音特征用于语音识别和语音合成等。 语音特征有声谱图spectrogram、Fbank(fiterbank)、MFCC(Mel-frequency cepstral coefficients)等。 Fbank 特征提取方法就是相当 于 MFCC 去掉最后一步的离散余弦变换(有损变换). 在深度学习之前…

git学习笔记

1、安装及配置git 1、到官网下载git安装包:https://git-scm.com/download/win 2、安装完成后,菜单栏有如下工具 3、配置账户和邮件信息 $ git config --global user.name "xxx"$ git config --global user.email "xxxmegvii.com"4…

十大排序算法(C++)

十大排序算法Sorting algorithm(C) 百度百科: 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地…

高通平台开发系列讲解(AI篇)如何让yolov5运行在SNPE

文章目录 一、模型下载二、模型转换三、模型量化四、后处理加速沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要介绍高通平台SNPE SDK运行yolov5。 一、模型下载 首先去git上下载yolov5s的代码和模型https://github.com/ultralytics/yolov5 二、模型转换 采…

Python爬虫实战,requests+xlwings模块,Python实现制作天气预报表!

前言 今天为大家介绍PythonExcel的实战项目,非常有趣,废话不多说。 Let’s start happily 开发工具 Python版本: 3.6.4 相关模块: xlwings模块 requests模块 pathlib模块 xlwings模块 json模块 环境搭建 安装Python并…

RAR压缩包,去除密码?

压缩包设置了加密,需要输入压缩包密码才能够顺利解压文件出来。但是有些时候,一些文件只需要一段时间内要加密,之后文件不需要加密了,每次解压文件的时候还是需要输入压缩包密码才行,就很麻烦,那么RAR压缩包…

SAP 接口主动推送企业微信异常消息

"推送企业微信格式lv_json { "msgtype": "markdown", "markdown": &&{ "content": "### 异常JOB通知\n >JOB名称: && gt_alv-jobname && \n 程序名称: && gt_…

戟星安全实验室|五分钟教你挖掘小程序漏洞

戟星安全实验室 忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等。 本文约1252字,阅读约需5分钟。 前言 现在大多小程序反编译教程所使用的都是node.js,操作过程较为麻烦…