1、数据库层面的文件有:

1.1 参数文件( my.cnf)

1.2 错误日志( error log)

错误日志文件 一般存放在数据目录下,以error.log作为文件名的结尾。

错误日志记录着 Mysql 的启动、运行、关闭过程中出现的问题。

1.3 慢查询日志( slow log)

慢查询日志 可以把 超过 参数 long_query_time 时间 的所有 SQL语句记录下来(需要开启慢查询日志),从而帮助 DBA 优化有问题的 SQL 语句。

long_query_time 默认 10 秒(5.1之后 可以定义微秒单位)

# 查看慢查询相关参数变量
show variables like '%slow%';

常用分析工具:mysqldumpslow 命令、 percona-toolkit 工具包

1.4 全量日志( general log)

general log 会记录 mysql 数据库 所有 操作 的 SQL 语句,包含 select 和 show 语句。

默认 该功能 是关闭的。

相关参数 log_output 用于 指定日志的存储方式

# 查看 log_output
show variables like '%log_output%';

类型:全局动态变量。

取值范围:FILE、TABLE、NONE。

FILE:表示以文件格式存储日志;

TABLE:表示以表格的方式存储日志,会在mysql 数据库下 创建一个 general_log 表。

NONE:表示 即使 general_log 开启,也不记录日志。

mysql数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,
如:log_output='FILE,TABLE'

建议使用FILE,TABLE比较影响性能。

1.5 二进制日志文件( binary log)

用于记录 mysql 数据库 真正执行更改的 所有 操作(DML语句:增删改),不包含那些没有修改任何数据的语句,不会记录 select 和 show 语句。

主要作用:

(1) 可以完成主从复制功能。

(2) 进行恢复操作。数据可以通过binlog 日志,使用 mysqlbinlog 命令,实现基于时间点和位置的恢复操作。

SHOW VARIABLES LIKE '%log_bin%';

使用 配置 参数 log-bin=[filename]可以启动二进制日志。

如果没有命名filename,则以主机名来作为二进制日志的文件名。

二进制日志文件默认存储在 数据 目录下。

如下图,binlog的后缀名是它的序号,号码是按顺序排列的。

# 列出当前 binlog 文件及值的大小
show binary logs;

# 查看 当前的日志 及状态
show master status;

目录下的 mysql-bin.index 文件是 二进制日志的 索引文件,用来记录产生的 二进制日志的序号。

相关参数:

(1)max_binlog_size,单个binlog的最大值。默认值为 1GB。

(2)binlog_cache_size,二进制日志缓存大小。

(3)sync_binlog,表示每写缓冲多次就同步到磁盘。

如果将N设为1,即sync_binlog=1表示采用同步写磁盘的方式来写二进制日志,这时写操作不使用才做系统的缓冲来写二进制日志。

(备注:该值默认为0,采用操作系统机制进行缓冲数据同步)

(4)expire_logs_days,二进制日志过期时间(单位:天)

(5)binlog-do-db 或 binlog-ignore-db,表示需要写入 或 忽略写入哪些库的日志,默认为空。

(6)log_slave_updates,改参数在 搭建 m -> s1 -> s2 这样的主从架构时,需要在 s1 上配置该参数,才能实现 s1 到 s2 的同步(log_slave_updates=1)。

(7)binlog_checksum,该参数的目的就是写入校验,取值范围:none、crc32(5.6之后,默认crc32)

(8)log_bin_use_v1_row_events,该参数表示 binlog 的版本信息

(9)binlog_row_image,取值范围:full、minimal、noblob三个值。

full:表示全部记录。

minimal:表示只记录要修改列的记录。

noblob:记录除了 blog 和 text 的所有字段。

默认使用 full 值。

1.6 审计日志( audit log)

数据库审计,能够实时记录网络上的数据库活动。

一般审计功能需要购买收费组件才能使用,开源常用 libaudit_plugin.so 审计插件。

查看 mysql-audit.json 文件,可以找到操作 SQL 语句的用户名、ip地址等信息。

1.7 中继日志( relay log)

主从复制中,从服务器 I/O 线程将主服务器的二进制日志读取过来并记录到从服务器本地文件(relay log)中,然后从服务器上的 SQL 线程会读取 relay-log 日志内容 并应用到从服务器。

1.8 套接字文件( socket)

mysql 有两种连接方式,网络连接 和 本地连接。

mysql.sock 文件是 服务器 与 本地客户端 进行通信 的 UNIX 套接字文件,其默认位置是 /tmp/mysql.sock

1.9 进程(pid)文件

mysql 数据库 是一个 单进程多线程模型的数据库,pid文件 用于记录 启动后的进程号。

2.0 表结构文件



2、存储引层面有:

  • redo log 日志文件

redo log 又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。

  • undo log 日志文件

undo 记录(insert、update、delete),undo log 只记录变更前的旧数据。

undo 记录默认别记录到系统表空间(ibdata1)中,从 MySQL 5.6开始,就可以使用独立的 undo 表空间。

作者:admin  创建时间:2022-12-27 14:17
最后编辑:admin  更新时间:2023-01-12 09:22