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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
云数据库 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线程负责执行





相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
6月前
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
553 0
|
2月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
10月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
2827 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
5月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
158 23
|
6月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
6月前
|
数据库连接 测试技术 Windows
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
|
6月前
|
存储 监控 Java
G1原理—7.G1的GC日志分析解读
本文进行了TLAB的GC日志解读、YGC的GC日志解读、模拟YGC(单次GC及多次GC的不同场景)、打开实验选项查看YGC的详情日志信息、Mixed GC日志信息之初始标记过程、Mixed GC日志信息之混合回收过程。
|
8月前
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
314 7
MySQL事务日志-Undo Log工作原理分析
|
11月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
2167 14
MySQL事务日志-Redo Log工作原理分析
|
9月前
|
SQL
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO
南大通用GBase 8a配置gcware日志等级,减少日志输出,节省磁盘IO

热门文章

最新文章