MySQL知识点复习 - 常用的日志类型

news2024/9/28 13:14:21

MySQL中常用的日志类型:

重做日志(redo log)

  • 作用:确保事务的持久性。redo日志记录事务执行后的状态,用来恢复还未写入data file的已成功事务更新的数据。防止在发生故障的时间点,尚有脏页未写入磁盘,再重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性。
  • 内容:物理格式的日志,记录的是物理数据页面修改的信息,顺序写入redo log file的物理文件中。
  • 什么时候产生:事务开始之后就产生redo log,redo log的落盘并不是根据事务的提交才写入的,而是事务的执行过程中就写入redo log中的。
  • 什么时候释放:对应事务的脏页写入到磁盘当中,redo log的任务就完成了,redo log占用的空间就会被覆盖。

回滚日志(undo log)

  • 作用:保证数据的原子性,保证了事务发生前的数据的一个版本,用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读
  • 内容:逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复到事务之前的状态,而不是从物理页面上操作实现的。
  • 什么时候产生:事务开始时,用当前的版本生成undo log,undo log会产生redo来保证undo的可靠性。
  • 什么时候释放:当事务提交之后,会放入待清理的链表中,由purge线程判断是否由其他事务在使用undo段中表的上一个事务之前的版本信息,觉得是否清楚undo log的日志空间。

二进制日志(bin log)

  • 作用:用于复制,从库利用主库上的binlog进行重播,实现主从复制,用于数据库基于时间点的还原
  • 内容:逻辑格式的日志,执行过的事务中的sql语句,包括了执行的sql语句(增删改)反向的信息,也就意味着delete对应着delete本身和其反向的insert;update对应着update执行前后的版本的信息;insert对应着delete和insert本身的信息。因此可以使用binlog实现类似于oracle的闪回功能。
  • 什么时候产生:事务提交的时候一次性将事务中的sql语句按照一定的格式记录到binlog中。所以在启动了bin log的时候,如果在提交一些很大的事务,效率会因此变得较慢。
  • 什么时候释放:通过配置在指定的日期里自动删除

二进制日志的作用是用来还原数据库的,与redolog是类似的,但本质不同

  • 作用不同:redo log是保证事务的的持久性,是事务层面的,binlog具有还原功能,是数据层面的。
  • 内容不同:redo log是物理日志,binlog是逻辑日志

错误日志(error log)

  • 记录启动和停止以及服务器中发生的错误信息

慢查询日志(general slow log)

  • 慢日志记录执行时间过长和没有使用索引的查询语句,报错select、update、delete以及insert语句,慢日志只会记录执行成功的语句。

一般日志(general query log)

  • 记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误

中继日志(relay log)

relay log只在主从服务器的架构中的从服务器中存在(是我这种小菜鸟无法接触的苦),从服务器为了和主服务器保持一直就要读取二进制日志(bin log)的内容然后把这些信息存到本地的日志文件去,这个存在本地的日志文件就是relay log。

因为格式跟binlog的日志文件相同,因此也是可以用 mysqlbinlog进行读取。

主要充当一个缓冲的作用,因为主要是主从复制,线程先将主服务器的binlog先存到relay log里面去,这样就可以不用等完全复制完再发送下一个bin log了(队列的思想处处都有,真的优秀这些轮子)

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

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

相关文章

【幂简集成】手机归属地查询API,精准获取号码所在地,提升数据准确率

在互联网与移动通信技术迅猛进步的背景下,手机号码已成为企业经营及个人生活中的重要工具。对众多企业而言,通过手机号归属地查询,既可优化营销策略,又能提高客户服务精确性。手机号归属地查询 API 的问世,旨在满足这一…

AI产品经理学习路径:从零基础到精通,从此篇开始!

一、AI产品经理和和通用型产品经理的异同: 市面上不同的公司对产品经理的定位有很大的差别,一名合格的产品经理是能对软件产品整个生命周期负责的人。 思考框架相同: AI产品经理和通用型软件产品经理的底层思考框架是一样的,都是…

旺店通ERP集成金蝶K3(旺店通主供应链)

源系统成集云目标系统 金蝶K3介绍 金蝶K3是一款ERP软件,它集成了供应链管理、财务管理、人力资源管理、客户关系管理、办公自动化、商业分析、移动商务、集成接口及行业插件等业务管理组件。以成本管理为目标,计划与流程控制为主线,通过对成…

protobuff中的required有什么用?

大家在proto2 应该经常看到如下msg表达: message MsgType3 { required int32 value1 1; required int32 value2 2; } 在protobuff中的required 有什么作用?在 Protocol Buffers(protobuf)中,required 关键字用于指定某个字段是…

Pygame中Sprite实现逃亡游戏5

在《Pygame中Sprite实现逃亡游戏4》中通过碰撞检测实现了玩家、飞龙与飞火之间的碰撞处理,基本上实现了逃亡功能。最后,实现这个逃亡游戏中文字提示的功能。 1 操作提示 当进入游戏后,会在玩家下方的位置给出操作提示,如图1所示…

Battery management system (BMS)

电池管理系统(BMS)是一种专门用于监督电池组的技术,电池组由电池单元组成,在电气上按照行x列矩阵配置进行排列,以便在预期的负载场景下,在一段时间内提供目标范围的电压和电流。 文章目录 电池管理系统是如…

Linux之实战命令16:ncal应用实例(五十)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

消息中间件 Kafka 快速入门与实战

1、概述 最近感觉上班实在是太无聊,打算给大家分享一下Kafka的使用,本篇文章首先给大家分享三种方式搭建Kafka环境,接着给大家介绍kafka核心的基础概念以及Java API的使用,最后分享一个SpringBoot的集成案例,希望对大…

Arthas sc(查看JVM已加载的类信息 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc(查看JVM已加载的类信息 )举例1:模糊搜索,xx包下所有的类举例2:打印类的详细信息举例3:打印出类的Field信息 二、命令列表 2.2 class/classlo…

计算机网络的整体认识---网络协议,网络传输过程

计算机网络背景 网络发展 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起; 广域网WAN: 将远隔千里的计算机都连在一起;所谓 "局域网" 和 "广域网" 只是一个相…

(最新已验证)stm32 + 新版 onenet +dht11+esp8266/01s + mqtt物联网上报温湿度和控制单片机(保姆级教程)

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意:ESP-01sWIFI模块,去搜了一下这个小东西很有玩点,远程控制LED啥的,然后我就想…

Arthas classloader (查看 classloader 的继承树,urls,类加载信息)

文章目录 二、命令列表2.2 class/classloader相关命令2.2.4 classloader (查看 classloader 的继承树,urls,类加载信息)举例1:按类加载类型查看统计信息举例2:按类加载实例查看统计信息举例3:查…

k8s搭建一主三从的mysql8集群---无坑

一,环境准备 1.1 k8s集群服务器 ip角色系统主机名cpumem192.168.40.129mastercentos7.9k8smaster48192.168.40.130node1centos7.9k8snode148192.168.40.131node2centos7.9k8snode248192.168.40.132node3centos7.9k8snode348 k8s集群操作请参考《K8s安装部署&…

如何调整云桌面安装的虚拟机分辨率?

如何调整云桌面安装的虚拟机分辨率? 1. 编辑GRUB配置文件2. 修改分辨率3. 更新GRUB4. 重启虚拟机 💖The Begin💖点点关注,收藏不迷路💖 在云桌面环境中,虚拟机分辨率过低且无法调整时,可以通过以…

UCS512DHN DMX512差分并联协议LED驱动IC 舞动灯光的魔法芯片

UCS512DHN产品概述: UCS512DHN是DMX512差分并联协议LED驱动芯片,可选择1/2/3/4通道高精度恒流输出,灰度达65536 级。UCS512DHN为带散热片封装的大电流输出版本。UCS512DHN有PWM反极性输出功能,此功能适合外挂三极 管,…

认识Hash表+Hash函数的设计+Hash冲突的处理+Hash表的实现+Java中的equals与hashCode

一、Hash表 1、定义:Hash表是一种特殊的数组 2、Hash函数 (1)设计原则 (2)作用 (3)应用 (4)Hash冲突: 二、Hash函数的设计 1、解决Hash索引分布不均匀…

tomcat安装与部署

一、基础准备 1. 节点规划 IP 主机名 节点 192.168.200.70 tomcat Tomcat 2. 环境准备 准备一台虚拟机,镜像为CentOS-7-x86_64,下载两个软件包,apache-tomcat-9.0.95.tar.gz;zrlog WAR包。 二、安装Tomcat 1.基础环境配…

跳表的理解以及使用

文章目录 背景数组-链表优化链表随机访问的方法 介绍跳表的理解层数随机为什么随机可以保证效率实现细节 跳表与二分查找跳表与红黑数跳表与HASH 使用实现随机层数的实现跳表实现以及测试 背景 数组-链表 数组优点 随机访问速度较快(基于下标访问)。 实…

OpenCV视频I/O(5)视频采集类VideoCapture之从视频流中获取下一帧的函数grab()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 从视频文件或捕获设备中抓取下一帧。 grab() 函数是 OpenCV 中 VideoCapture 类的一个成员函数,用于从视频流中获取下一帧而不立即检…

基于SpringBoot的学生宿舍管理系统【附源码】

基于SpringBoot的高校社团管理系统(源码L文说明文档) 4 系统设计 一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统&#xf…