盘点MySQL的八大日志,你知道哪些?

news2024/9/19 22:32:54

前言

日志对于任何系统应用来说都承载着至关重要的作用,借助日志,我们可以发现系统运行错误的原因,从而解决问题。MySQL也不例外,也会记录各种各样的日志信息。那么你知道MySQL都有哪些日志吗?每种日志的作用是干吗吗?

redo log日志

介绍

重做日志(redo log)是InnoDB存储引擎生成的日志,记录的是"物理级别"上的页修改操作,比如页号xxx,偏移量yyy写入了’zzz’数据。

作用

  • 用于事务提交时保证事务的持久性,保证数据的可靠性

查看日志

通过执行show global variables like 'innodb_log%';命令查看redo log相关的配置

  • innodb_log_group_home_dir:指定 redo log 文件组所在的路径,默认值为 ./, 默认以ib_logfile0,ib_logfile1名称存在
  • innodb_log_files_in_group:指明redo log file的个数

undo log日志

介绍

回滚日志(undo log)是InnoDB存储引擎生成的日志,记录的是 逻辑操作 日志,比如对某一行数据进行了INSERT语句操作,那么undo log就记录一条与之相反的DELETE操作。

作用

  • 用于事务的回滚,用来保证事务的原子性、一致性。
  • 回滚行记录到某种特定的版本——MVCC,对事务的隔离性起到辅助作用。

查看日志

通过命令show variables like 'innodb_undo%';查看undo log相关的配置。

  • innodb_undo_directory:指定 undo log 文件组所在的路径,默认值为 ./, 文件名默认为ibdata1

bin log日志

介绍

二进制日志bin log可以说是MySQL中比较重要的日志了,在日常开发及运维过程中,经常会遇到。

binlog也叫作变更日志(update log)。它记录了数据库所有执行的 DDLDML 等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语句selectshow等)

作用

  • 一是用于数据恢复,如果MySQL数据库意外停止,可以通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些修改,然后根据二进制日志文件中的记录来恢复数据库服务器。
  • 二是用于数据复制,由于日志的延续性和时效性,master把它的二进制日志传递给slaves来达到master-slave数jie据一致的目的。

查看日志

通过命令show variables like '%log_bin%';查看bin log相关的配置。

  • log_bin_basename: 是bin log日志的基本文件名,后面会追加标识来表示每一个文件
  • log_bin_index: 是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录

慢查询日志

介绍

MySQL的慢询日志,提供了记录在MySQL中响应时间超过指定阈值语句的功能,比如设定阈值为3秒,那么任何SQL执行超过3秒都会被记录下来。

作用

  • 统一记录慢的SQL, 有针对性的进行性能优化, 高系统的整体效率

查看日志

通过show variables like '%slow_query_log';命令查看慢SQL相关的配置,如下图:

错误日志

介绍

错误日志记录了MySQL服务器启动、停止运行的时间,以及系统启动、运行和停止过程中的诊断信息,包括错误、警告和提示等。

作用

  • 查看系统的运行状态,便于即时发现故障、修复故障。
  • 用于排查MySQL服务出现异常的原因。

查看日志

通过命令SHOW VARIABLES LIKE 'log_err%';查看错误日志的位置和配置信息。

  • log_error的值就是错误日志的位路径

在MySQL故障的情况下,打开错误文件,然后搜索Error、Waiting级别的日志记录,然后参考诊断信息即可。

通用查询日志

介绍

通用查询日志记录用户的所有操作,包括启动和关闭MySQL服务、所有用户的连接开始时间和截止时间、发给 MySQL 数据库服务器的所有 SQL 指令等,如selectshow等,无论SQL的语法正确还是错误、也无论SQL执行成功还是失败,MySQL都会将其记录下来。

作用

  • 还原操作时的具体场景,用于帮助我们准确定位一些疑难问题

查看日志

通过命令SHOW VARIABLES LIKE '%general%';查看通用日志的状态。

  • general_log: 通用查询日志默认处于关闭状态,因为开启会消耗系统资源并且占用磁盘空间,可以通过SET GLOBAL general_log=on;命令打开
  • general_log_file:通用查询日志记录的位置

我们可以在项目测试阶段,开启查询日志,分析日志中SQL的平均耗时,在生产环境建议不开启。

中继日志

介绍

中继日志(relay log)是MySQL 8中引入的,只在主从服务器架构的从服务器上存在。从服务器为了与主服务器保持一致,要从主服务器读取二进制日志的内容,并且把读取到的信息写入本地的日志文件中,这个从服务器本地的日志文件就叫中继日志 。

作用

  • 用于主从数据同步,从服务器从中继日志中读取内容,恢复数据

查看日志

中继日志的结构和bin log一样,同样存在一个xx-relaybin.index索引文件,以及多个xx-relaybin.00001xx-relaybin.00002…数据文件。

数据定义语句日志

介绍

数据定义语句日志(ddl.log)记录数据定义语句执行的元数据操作,例如DROP TABLEALTER TABLE等。

作用

  • MySQL使用此日志从元数据操作中间发生的崩溃中恢复。

查看日志

这是一个二进制文件,目的也不是给用户查看使用,不重点讲了。

总结

本文讲解了MySQL中出现的8种日志,其中redo logundo logbin log、慢查询日志以及错误日志是比较重要的几个日志,需要我们对他们有比较深入的认识和理解。

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

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

相关文章

【Ajax】全面详细了解git的基础操作【万字教学+面试常客】

✍️ 作者简介: 前端新手学习中。 💂 作者主页: 作者主页查看更多前端教学 🎓 专栏分享:css重难点教学 Node.js教学 从头开始学习 ajax学习 文章目录学习目标起步——关于版本的控制  文件的版本  版本控制软件  使用版本控制软件的好…

UDP和TCP两大协议的区别,让你快速高效掌握

UDP和TCP两大协议的区别 谈起UDP与TCP两大协议的异同,有人说我喜欢用TCP不喜欢用UDP,也有人说我喜欢用UDP而不喜欢用TCP,使用TCP的人说,我使用使用的协议比较可靠、不容易粘包、不容易丢包;使用UDP的人说,我使用的协议…

电脑没有声音了怎么恢复?恢复声音的6个方法【图解】

如今,很多电脑用户都会购买上各种不同品牌的音效产品,以便在必要时可以用来作为背景音乐。但在使用电脑过程中,总会遇到一些声音问题。有些朋友可能会因为声音问题而导致电脑无法正常使用。那么,电脑没有声音了怎么恢复&#xff1…

SpringSecurity框架【详细教学】

SpringSecurity 文章目录 文章目录SpringSecurity文章目录1、概述2、Spring Security、[Apache](https://so.csdn.net/so/search?qApache&spm1001.2101.3001.7020) Shiro 选择问题2.1、Shiro2.1.1、shiro的优点2.1.2、shiro的缺点2.2、Spring Security2.2.1、spring-secu…

计控实验(一)—— 数字滤波实验

太原理工大学计算机控制技术实验之数字滤波实验 数字滤波实验实验原理实验内容实验线路图设计参考流程图实验步骤及结果采样周期设计运行结果思考题实验原理 一般现场环境比较恶劣,干扰源比较多,消除和抑制干扰的方法主要有模拟滤波和数字滤波两种。由于…

Mybatis—解析SQL配置

Mybatis源代码中SqlSource描述XML文件或者Java注解配置的SQL信息&#xff0c;SqlNode描述动态SQL配置中的<if>和<where>等标签&#xff0c;LanguageDriver的职责就是负责将Mapper SQL配置进行解析&#xff0c;然后将SQL配置信息转换为SqlSource对象。从而可见Langu…

Nginx补充部分--IO模型

IO模型 服务端IO流程 磁盘I/O 磁盘I/O是进程向内核发起系统调用&#xff0c;请求磁盘上的某个资源比如是html 文件或者图片&#xff0c;然后内核通过相应的驱动程序将目标文件加载到内核的内存空间&#xff0c;加载完成之后把数据从内核内存再复制给进程内存&#xff0c;如果…

postgres-operator 原理解析- 章节 II 减少failover次数

本文讨论一波&#xff0c;kubernetes集群部署的高可用postgresql集群在滚动更新场景下&#xff0c;如何实现减少failover次数&#xff1f; 这个原理我觉得适用于任何主从架构的中间件&#xff0c;是一个通用的设计技巧。 那就是&#xff1a; 在进行滚动升级过程中&#xff0c…

谁在领跑纯电动L2

电动化智能化&#xff0c;正在产生协同效应。 根据高工智能汽车研究院最新监测数据显示&#xff0c;2022年1-10月&#xff0c;中国市场&#xff08;不含进出口&#xff09;乘用车前装标配搭载L2级辅助驾驶交付上险受到整体车市影响&#xff0c;同比下滑12.67%。不过&#xff0c…

关闭jupyter notebook报错

关闭jupyter notebook报错:python.exe-应用程序错误_秋叶原の黑猫的博客-CSDN博客 关闭jupyter notebook报错:python.exe-应用程序错误 此前在使用jupyter notebook的时候&#xff0c;没有出现问题&#xff0c;后面某次在使用之后&#xff0c;直接关闭终端之后&#xff0c;出现…

kotlin coroutine源码解析之Dispatchers协程调度器

目录Dispatchers协程调度器Dispatchers.DefaultDispatchers.IODispatchers.MainDispatchers.Unconfined协程调度器的实现CoroutineScheduler总结Dispatchers协程调度器 CoroutineDispatcher&#xff0c;具有用于调度任务的底层执行器。ExecutorCoroutineDispatcher的实例应由调…

计算机系统基础实验——数据的机器级表示(条件表达式 x?y:z)

题目描述&#xff1a; /* *conditional- 条件表达式 x?y:z *例子&#xff1a;conditional (2,4,5)4, *合法运算符号&#xff1a;&#xff01;~&^|<<>> */ int conditional (int x,int y, int z) { /**************/ return/******/; }首先来看什么是三目运算&…

Kubernetes云原生实战02 磁盘分区挂载实战

大家好&#xff0c;我是飘渺。 今天咱们继续更新Kubernetes云原生实战系列&#xff0c;如何基于上篇文章中提到的部署架构进行磁盘分区、格式化、挂载目录。 看到这里估计很多人要直接就关掉了&#xff1a;磁盘分区格式化不是运维的事吗&#xff0c;跟我开发有什么关系&#x…

图书管理系统(Java实现)[附完整代码]

作者&#xff1a;爱塔居的博客_CSDN博客-JavaSE领域博主 专栏&#xff1a;JavaSE 作者专栏&#xff1a;大三学生&#xff0c;希望跟大家一起进步&#xff01; 文章目录 目录 文章目录 一、图书管理系统菜单 二、实现基本框架 三、实现业务 3.1 打印所有图书 3.2 退出系统 3.3 查…

化合物纯度、溶剂溶解度检测

产品检测方法一般有核磁共振氢谱 (HNMR)&#xff0c;液质联用 (LCMS)&#xff0c;高效液相色谱 (HPLC)。我们一般通过核磁共振确定结构式 (产品是否正确) 和大概纯度 (是否含杂质及杂质大概比例)&#xff0c;通过 LCMS 或 HPLC 测定确定产品具体纯度 (产品需要有紫外吸收)。■ …

连锁超市如何部署远程监控系统

大型超市又称综合超市&#xff0c;一般是采取自选销售方式&#xff0c;以销售大众化实用品为主&#xff0c;并将超市和折扣店的经营优势结合为一体的&#xff0c;品种齐全&#xff0c;满足顾客一次性购齐的零售业态。根据商品结构&#xff0c;可以分为以经营食品为主的大型超市…

神了,用 Python 预测世界杯决赛,发现准确率还挺高

那么四年一度的世界杯即将要在卡塔尔开幕了&#xff0c;对于不少热爱足球运动的球迷来说&#xff0c;这可是十分难得的盛宴&#xff0c;而对于最后大力神杯的归属&#xff0c;相信很多人都满怀着期待&#xff0c;每个人心中都有不同的答案。 今天我就通过Python数据分析以及机…

低/无代码开发系统集成能力有多强?一文告诉你

Gartner预计&#xff0c;到2025年&#xff0c;公司将会有70&#xff05;的新应用软件使用到低/无代码技术。Statista的报告表明&#xff0c;在2027年的时候&#xff0c;在低/无代码技术上的花费将会达到650亿。 面对庞大的数字经济&#xff0c;许多公司都在加快数字化转型的步伐…

【Linux进程间通信】共享内存

共享内存API简单案例&#xff1a;一个进程往共享内存中写一次数据然后在另一块共享内存读一次数据&#xff0c;然后另一个进程在一个共享内存读一次数据在另一块共享内存写一次数据&#xff08;同时验证了它是半双工的&#xff09;使用信号量进行同步原理&#xff1a;多个进程映…

C++socket网络编程实战http服务器(支持php)(上)

TOC 第一章 Socket快速入门篇 1、TCP/IP模型 用Wireshark抓包工具来看一下上图TCP/IP模型这种4层协议里面究竟有什么内容。 在windows和Linux系统之间配置共享 首先保证我们的putty已经连接上了linux服务器&#xff0c;然后我们要安装samba这么一个目录共享工具&#xff1a…