msyql 日志篇(二)日志的常用配置和原理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 日志详解之:常规日志; 慢查询日志;二进制日志;中继日志 出错日志(error log):(log_error)这个日志记载着服务器启动和关闭的情况,还记载着关于故障或异常状况的消息。 我们安装完数据库之后,启动数据库如果发生异常,我们应该首先查这个日志文件。 常规查询日志:(log)该日志包括客户连接的记录,来自客户的SQL查询和其他的各种事件。一般我们可以用其来监视用户的活动

日志详解之:常规日志; 慢查询日志;二进制日志;中继日志

出错日志(error log):(log_error)这个日志记载着服务器启动和关闭的情况,还记载着关于故障或异常状况的消息。

我们安装完数据库之后,启动数据库如果发生异常,我们应该首先查这个日志文件。

常规查询日志:(log)该日志包括客户连接的记录,来自客户的SQL查询和其他的各种事件。 一般我们可以用其来监视用户的活动,谁在连接,从哪连接,执行哪些操作


常用的使用方法:

1.日志的输入与配置:

使用--log-output参数:其值可以是file、table、none     ——    --log-output=file

注:这个配置只是配置了日志的输出目的地,但是并没有启用日志

2.如何启动日志:

a.启动常规日志:--log

b.启动出错日志:--log-error

c.启动慢查询日志:--log-show-queries

d.启用二进制日志:--log-bin  ——  使用--max-binlog-size参数来控制单个日志的最大长度,超过长度后按顺序创建

                                                    ——  使用--binlog-format参数来控制二进制日志的格式:支持的值有statement、Row、mixed

e.启用中继日志:--relay-log  —— 默认文件名:Hostname-relay-bin.00001

注:Unix默认不创建出错日志,而是直接将错误信息等发送到控制台

3.日志的存放与mysql的启动方式:

Unix:

a.使用mysqld启动,此时可以不配置日志文件名,默认采用hostname.err

b.使用mysqld_safe启动:此时必须指定日志文件名

c.使用mysql.server启动:本质是调用了mysql_safe的脚步

Windows:

1.普通命令行启动

2.将mysql作为服务启动

日志文件到底存储在哪?

因为在配置日志选项的时候,有两种方式:一、绝对路径,二、相对路径

如果使用相对路径,则会根据不同的情况产生多种效果

a.在mysql5.1.11版本之前:

使用mysqld的方式启动mysql,把配置的文件名解释为:相对于数据目录而言

使用mysql_safe方式启动mysql,把配置的文件名解释为:相对调用该脚本时所在的子目录——结果是,可能日志文件被存储在多个地方(多次在不同目录下启动)

b.在5.1.11版本之后:

无论以哪种方式启动,文件都存储在相对数据目录下

注:如果登录用户对mysql的日志文件没有写的权限,那么在启动mysql时,将会发生异常,但是不会被写入到错误日志

4.慢查询日志相关的配置和解释说明:

在mysql5.1.21之前,慢查询检查规则的默认值是10,单位是秒,其中最小值是1,且只接受整数

在mysql5.1.21之后,慢查询检查规则的最小值变成了0,且可以带1位小数,并且慢查询日志还必须检查参数--min-examined-row-limit参数(default=0),才能写入慢查询日志,

从mysql5.1.6版本开始,如果把慢查询信息写入数据库表,那么查询时间的小数部分将会被舍掉

注:

慢查询文件的查看方式:

慢查询日志和中继日志都是以二进制的方式存储,可以使用mysqlbinlog工具以文本形式打开

如何利用慢查询日志:

在SQL优化时,可以通过——-log-queries-not-using-indexes参数,将没有使用索引的查询记入慢查询日志

如果再使用--log-show-admin-statements选项,服务器会把“慢”的系统管理语句也记入慢查询日志,如:analyze table, alter table等

5.二进制日志的作用:集群、复制

二进制日志是用来记载insert、update、delete的事件,它的核心作用是用于主库到从库的复制,二进制日志文件可以采用mysqlbinlog打开,以文本的格式显示

二进制日志会按照事件执行完成的顺序的先后来存储,而不是执行的顺序,如果启用了事务,那么只有事务被成功的提交,这些操作才会被记录,在写入二进制文件之前,这些事件都是被保存在缓存中,如果事务发生了回滚,那么将不记录任何日志。

注:如果事务对非事务型数据表进行了修改,那么这些修改是无法回滚的,此时,事务虽然被回滚,但是针对于数据表的修改还是会保存在二进制日志文件中

6.中继日志的作用

中继日志是从服务器把来自主服务器的事件接收的同时再写入中继日志,此时日志的接收和执行将会启用2个线程分别去执行,一个是IO线程负责接收和写入中继日志,一个sql线程负责执行





相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
21天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
161 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
2月前
|
SQL 存储 关系型数据库
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
老架构师尼恩在其读者交流群中分享了关于 MySQL 中 redo log、undo log 和 binlog 的面试题及其答案。这些问题涵盖了事务的 ACID 特性、日志的一致性问题、SQL 语句的执行流程等。尼恩详细解释了这些日志的作用、所在架构层级、日志形式、缓存机制以及写文件方式等内容。他还提供了多个面试题的详细解答,帮助读者系统化地掌握这些知识点,提升面试表现。此外,尼恩还推荐了《尼恩Java面试宝典PDF》和其他技术圣经系列PDF,帮助读者进一步巩固知识,实现“offer自由”。
美团面试:binlog、redo log、undo log的底层原理是什么?它们分别实现ACID的哪个特性?
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1648 14
|
2月前
|
网络协议 Linux Windows
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
|
2月前
|
开发工具 git
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
git显示开发日志+WinSW——将.exe文件注册为服务的一个工具+图床PicGo+kubeconfig 多个集群配置 如何切换
39 1
|
2月前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
161 0
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
|
3月前
|
存储 缓存 关系型数据库
redo log 原理解析
redo log 原理解析
42 0
redo log 原理解析
|
3月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
49 2
|
4月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
4月前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
Java应用结构规范问题之配置Logback以在控制台输出日志的问题如何解决
下一篇
无影云桌面