MySQL 日志

news2024/11/24 8:45:47

错误日志(error log):

error log 主要记录 MySQL 在启动、关闭或者运行过程中的错误i西南西,在MySQL 的配置文件 my.cnf 中,可以通过 log-error=/var/log/mysqld.log 执行 mysql 错误日志的位置

慢查询日志(slow query log):

  • MySQL 的慢查询日志是 MySQL 提供的一种日志记录,它用来记录在MySQL 中相应时间超过阈值的语句,具体指运行时间超过 long_query_time 值的SQL,则会被记录到慢查询日志中
  • long_query_time 的默认值是10,意思是运行10秒以上的语句
  • 由他来查看哪些SQL 超出了我们的最大忍耐时间值,比如一条sql 执行超过5秒钟,我们就算慢SQL,希望能收集超过5秒的sql,结合之前 explain 进行全面分析
  • 默认情况下,MySQL 数据库没有开启慢查询日志,需要我们手动来设置这个参数
  • 当然,如果不是调优需要的化,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。慢查询日志支持将日志记录写入文件
  • 在生产环境中,如果要手工分析日志,查找,分析SQL,显示是个体力活, MySQL 提供了日志分析工具 mysqldumpslow.

一般查询日志(general log):

  • 记录客户端连接信息以及执行的SQL语句信息,通过 MySQL 的命令

二进制日志(bin log):

  • MySQL 的 bin log 日志是用来记录MySQL 中增删改的记录日志。
  • 当你的一条SQL 操作对数据库中的内容进行了更新,就会增加一条 bin log 日志。查询操作不会记录到bin log 中
  • bin log 最大的用处就是主从复制,以及数据库的恢复

重写日志(redo log):

  • redo log 是一种基于磁盘的数据结构,用来在MySQL 宕机情况下将不完整的事务执行数据纠正, redo 日志记录事务执行后的状态。
  • 当事务开始后, redo log 就开始产生,并且随着事务的执行不断写入 redo log file 中。 redo log file 中记录了 xxx 页做了 xx 修改的信息,我们都知道数据库的更新操作会在内存中先执行,最后刷入磁盘
  • redo log 就是为了恢复更新了内存但是由于宕机等愿您没有刷入磁盘中的那部分数据

回滚日志(undo log):

  • undo log 主要用来回滚到某一版本,是一种逻辑日志
  • undo log 记录的是修改之前的数据,比如:delete 一条记录时,undo log 会记录一条对应的 insert 记录,从而保证能恢复到数据修改之前。在执行事务回滚的时候,就可以通过 undo log 中的记录内容以此进行回滚
  • undo log 还提供了多版本并发控制下的读取(MVCC)

bin log 写入策略:

  • sync_binlog = 0 的时候,表示每次提交事务 bin log 不会马上写入磁盘,而是先写到page cache,相对于磁盘写入来说写 page cache 要快得多,不过在 MySQL 崩溃的时候会有丢失日志的风险
  • sync_binlog = 1 的时候,表示每次提交事务都会执行 fsync 写入到磁盘
  • sync_binlog 的值大于 1的时候,表示每次提交事务都先写到page cache, 只有等到累积了 N 个事务之后才 fsync 写入到磁盘,同样在此设置下MySQL 崩溃的时候会有丢失 N个事务日志的风险

innodb_flush_log_at_trx_commit:

  • 取值0:每秒(一秒钟内提交的事务)写入磁盘 每秒触发一次缓存日志回写磁盘操作,并调用操作系统 fsync 刷新 I/O 缓存
  • 取值1: 有事务提交就立即刷盘,每次提交事务都立即调用操作系统 fsync 刷新 I/O 缓存
  • 取值2: 每次事务提交 都写给操作系统,由操作系统接管什么时候写入磁盘,每次都把redo log 写道系统的 page cache中,由系统接管什么时候写入磁盘

日志刷盘时机顺序:

  1. 开启事务
  2. 查询数据库中需要更新的字段,加载到内存中形成数据脏页
  3. 记录undo log 到内存缓冲区(用于回滚和mvcc) 并关联 redo log
  4. 记录 redo log 到内存缓冲区(用于失败重放) 准备提交事务
  5. 修改内存中的脏页数据
  6. 提交事务触发 redo log 刷盘
  7. undo log 和 脏页刷盘
  8. 事务成功

redo log 和 bin log 的两阶段提交:

  • prepare: redolog 写入 log buffer,并 fsync 持久化到磁盘,在 redo log 事务中记录 2PC 的 XID,在 redolog 事务打上 prepare 表示
  • commit: binlog 写入 logbuffer, 并 fsync 持久化到磁盘,在bin log 事务中记录 2PC的 XID,同时在 redo log 事务打上 commit 标识

 MySQL 的 bin log 有几种录入格式:

  • binlog_format=STATEMENT(默认): 数据操作的时间,同步时不一致。每一条会修改数据的sql 语句会记录到 bin log 中。有点是并不需要记录每一条 sql语句和每一行的数据变化,减少了 bin log 日志量,节约 I/O, 提高性能。缺点是某些情况下会导致 master-slave 中的数据不一致(如 sleep() 函数, last_insert_id(),以及 user_defined functions(udf) 等会出现问题)
  • binlog_format=ROW: 批量数据操作时,效率低。 不记录每条 sql 语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样子。而且不会出现某些特定情况下的存储过程、或 function、或trigger 的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table 的时候会让日志暴涨
  • binlog_format=MIXED: 是以上两种 level 的混合适用,有函数用 ROW,没函数用 STATEMENT,但是无法识别系统变量

MySQL 集群同步为什么适用 Bin log:

  • bin log 是 mysql 提供的日志,所有存储引擎都可用
  • 支持增量同步
  • bin log 还可以供其他中间件读取,比如同步到hdfs中

如果复制表数据:

  • 不支持某个阶段回放
  • 直接复制数据过程一旦中断复制(比如断网),很难确定复制的 offset

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

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

相关文章

【erlang】并发篇

PID类型 在之前的语法篇中,我们并没有介绍 PID这个类型,它和并发息息相关,因此我们在这里来学习它。 PID是进程标识符的意思,用来标识一个erlang进程。在所有相连的erlang节点中,PID都是唯一的。但是PID会被复用&…

从零搭建一个 Level-2 快照数据的因子计算平台

因子挖掘是量化交易的基础。近年来,Python 是很多研究员进行数据分析和因子挖掘的主流工具。但是通过 Python 挖掘的有效因子在投产时,通常需要由 QUANT 团队的研究员将代码提交给 IT 团队,IT 团队用 C 代码转写后部署到生产环境,…

1. HTMLCSS

文章目录1 盒子模型:1.1 盒子属性导图1.2 边框属性导图1.3 定位导图:2 HTML常用标签2.1 基本标签① HTML基本结构② HTML常见标签③ 特殊字符④ 列表标签a 无序列表:b 有序列表:⑤ 表单3 CSS快速上手3.1 background属性① 思维导图…

自适应遗传算法求解TSP问题(Java)

1 引言 普通遗传算法(Sample Genetic Algorithm, SGA)存在着严重的缺点,它的Pc和Pm的值是固定的,本文采用自适应遗传算法进行求解TSP问题。不管是优良个体还是劣质个体都经过了相同概率的交叉和变异操作。这会引起两个很严重的问…

Linux驱动开发——高级I/O操作(二)

目录 proc文件操作 非阻塞型I/O 阻塞型I/O proc文件操作 proc 文件系统是一种伪文件系统,这种文件系统不存在于磁盘上,只存在于内存中只有内核运行时才会动态生成里面的内容。这个文件系统通常挂载在/proc 目录下,是核开发者向用户导出信息…

公司招人,面试了50+的候选人,技术实在是太烂了····

前两个月,公司测试岗位面了 50候选人,面试下来发现几类过不了的情况,分享大家防止踩坑: 技术倒是掌握得挺多,但只是皮毛,基础知识却是一塌糊涂。工作多年,从未学习过工作之外的技术栈&#xff…

ERTEC200P-2 PROFINET设备完全开发手册(7-1)

7. 配置模块及自定义模块 7.1.1 PN设备的基本模型 初次接触PN的开发者,最容易出现的错误就是设备的实际配置与TIA的组态不一致。为了开发的过程更加顺利,非常有必要掌握PN设备的基础模型。PN设备的基本模型如下图描述: PN设备的基本构成是插…

No.039<软考>《(高项)备考大全》【第23章】综合测试管理

【第23章】综合测试管理1 章节相关1.1 考试相关1.2 案例相关2 测试监控3 测试风险管理4 测试人员绩效考核4.1 测试分类测试类型分类执行方式分类开发阶段分类5 开发测试分类参考答案1 章节相关 1.1 考试相关 必考1分选择,案例概率低。 1.2 案例相关 2020年下半年…

关于IOS系统时间格式显示NAN问题以及小程序项目运行报错app.json找不到

目录 问题一:关于IOS系统时间格式显示NAN 一、比较常见的情况,时间格式为"yyyy-MM-dd HH:mm:ss"格式在 iOS 会出现 NAN 二、关于时间临界值:对于00:00:00和24:00:00这两个时间临界值, ios会转成NAN 三、时间格式为2022/09&#…

Java语法理论和面经杂疑篇《六.泛型(Generic)》

1. 泛型概述 1.2 泛型的引入 在Java中,我们在声明方法时,当在完成方法功能时如果有未知的数据需要参与,这些未知的数据需要在调用方法时才能确定,那么我们把这样的数据通过形参表示。在方法体中,用这个形参名来代表那…

Medical X-rays Dataset汇总(长期更新)

目录​​​​​​​ ChestX-ray8 ChestX-ray14 VinDr-CXR VinDr-PCXR ChestX-ray8 ChestX-ray8 is a medical imaging dataset which comprises 108,948 frontal-view X-ray images of 32,717 (collected from the year of 1992 to 2015) unique patients with the text-mi…

Nginx(下载安装、常用命令、反向代理、负载均衡)

官网:https://nginx.org/Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。下载和安装下载在Nginx的官网的下载页面中(http://nginx.org/en/download.html)&#xff…

01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrCAD Capture CIS)

01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrCAD Capture CIS) 硕士学电磁场去了,写点博客记录下学习过程。 参考的教程是B站的视频:allegro软件入门视频教程全集100讲 本科的时候就对Cadence有所耳闻&am…

网络安全漏洞分析与漏洞复现

前言 4 月 6 日和 5 月 18 日,VMware 官方发布的两则安全公告中显示,关乎旗下产品的 CVE 漏洞多达 10 个,其中不乏有 CVSSv3 评分 9.8 的高危漏洞!如此高频的出洞速率,吸引了笔者注意。笔者将对 CVE-2022-22954 VMwar…

用CTGAN生成真实世界的表格数据

随着CLIP和稳定模型的快速发展,图像生成领域中GAN已经不常见了,但是在表格数据中GAN还是可以看到它的身影。 现实世界的复杂性与许多方面相关(例如,缺失数据、不平衡数据、噪声数据),但最常见的一个问题是包含异构(或“混合”)数…

软考电子商务设计师如何备考?

关于软考电子商务设计师考什么?如何备考? 一、电子商务设计师概述? 电子商务设计师属于软考中级资格考试,软考是由国家人力资源和社会保障部(原人事部)、工业和信息化部(原信息产业部)领导的…

使用Softing edgePlug软件扩展数控机床的连接性

那些使用SINUMERIK 840D控制器来运行数控机床的制造商正面临着一个挑战——从车间提取机床性能和过程数据来进行分析。这些数据对于优化流程至关重要,但它们却无法通过传统方式来被获取。对此,制造商的应对方法是通过自定义代码来实现数据访问&#xff0…

Redis与MySQL的双写一致性问题

Redis与MySQL的双写一致性问题更新缓存? 删除缓存?先更新缓存再更新数据库先更新数据库,再更新缓存先删除缓存再更新数据库先更新数据库,再删除缓存解决方案1. 重试2. 异步重试2.1 使用消息队列实现重试2.2 Binlog实现异步重试删除…

10万字智慧政务大数据治理平台解决方案(word)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除。 1 项目整体建设规划方案 按照《省人民政府关于推进数字政府建设的指导意见》(鄂政发(2019) 4号)的规则要求,结合XX市“互联网政府服务”建设现状&…

【Android笔记93】Android小案例(三)之模仿小米商城(首页商品展示界面)

这篇文章,主要介绍Android小案例(三)之模仿小米商城(首页商品展示界面)。 一、模仿小米商城(首页布局) 1.1、首页运行效果 这篇文章实现的首页布局界面如下所示: 1.2、实现思路 首页轮播图,这里采用一个Banner组件实现,不知道的可以看下我之前写的一篇文章【【And…