innoDB引擎涉及到的文件(日志文件、进程文件、套接字文件)

1、参数配置文件

MySQL实例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数。就是my.cnf文件,通过命令mysql --help | gerp my.cnf去查看。

每个参数都可以通过show variables去查询,例如:
在这里插入图片描述

也可以通过@@session@@global去查询,例如:
在这里插入图片描述

my.cnf文件中的参数分为两类:动态(dynamic)参数静态(static)参数,动态参数可以在MySQL实例运行中进行更改,静态参数可以在整个实例生命周期内都不能修改,只能查看。修改动态参数是可以通过set命令进行修改:
在这里插入图片描述

上面的查询和修改中涉及到sessionglobal指的是该参数的修改是基于当前会话还是整个实例的生命周期。有些参数只能在会话中进行修改,如autocommit;而有些参数修改完后,在整个实例生命周期中都会生效,如binlog_cache_size;而有些参数既可以在会话中又可以在整个实例的生命周期内生效,如read_buffer_size。

注意:利用这种方式修改的参数,并不会对MySQL的配置文件进行修改,MySQL下一次启动时,还是会重新读取配置文件中的参数。

2、日志文件

2.1 错误日志

错误日志文件对MySQL的启动、运行、关闭过程进行了记录。不仅记录了错误信息,也记录一些警告信息或正确的信息。可以通过show variables like 'log_error';命令去查找错误日志的位置。
在这里插入图片描述
错误日志的文件名一般都用主机名字来命名。查看错误日志内容可用这个命令去看tail -n 50 msmk02-OptiPlex-7040.err

2.2 慢查询日志
  • 记录执行比较慢的sql语句,把执行超过某个时间的sql语句全部都记录到该日志文件中去。这时间值可以通过参数long_query_time来设置,默认值为10,代表10秒。这样执行时间超过10s的sql语句就会被记录下来。

  • 默认情况下,MySQL是不会启动慢查询日志的,用户需要手动将这个参数slow_query_log设置为ON。参数slow_query_log_file表示的是日志的名称,该日志文件的位置在mysql的data目录下。
    在这里插入图片描述

  • 用户可以通过mysqldumpslow来查看慢查询日志,也可以按照一定条件去查看。
    在这里插入图片描述

  • MariaDB还支持将慢查询日志存储到一张表格mysql.slow_log中。通过show create table mysql.slow_log可以查看该表的表结构:在这里插入图片描述

  • 参数log_output决定了日志输出的类型。默认为FILE类型,可以将它修改为TABLE类型。
    在这里插入图片描述

2.3 查询日志

查询日志记录了所有对MySQL数据库请求的信息,无论这些请求是否得到了正确的执行。默认为主机名.log。

2.4 二进制日志

二进制日志记录了对MySQL数据库执行更改的所有操作,但是不包括selectshow这类操作,因为这类操作不可能对数据本身做修改。update类的操作,即使changed=0也会被二进制日志记录。

二进制文件默认情况下是不开启的。

3、套接字文件

在UNIX系统下本地连接MySQL可以采用UNIX套接字方式,这种方式需要一个套接字(socket)文件。套接字文件可由参数socket控制。一般在/tmp目录下,名为mysql.sock
在这里插入图片描述

4、pid文件

MySQL实例启动时,会将自己的进程ID写入一个文件中,该文件即为pid文件。该文件由pid_file控制。

在这里插入图片描述

5、表结构定义文件

frm为后缀名的文件,这个文件记录的是表结构的而定义。因为MySQL数据的存储是根据表进行的,每个表都会有与值对应的文件。frm文件还用来存放视图的定义。可以直接用cat命令进行查看frm文件。

6、InnoDB存储引擎文件

6.1 表空间文件

InnoDB采用将存储的数据按表空间(tablespace)进行存放的设计。在默认配置下会有一个初始大小的为10MB,名为ibdata1的文件。该文件就是默认的表空间文件(tablespace file),用户可以通过参数innodb_data_file_path对其进行设置。设置之后所有基于InnoDB存储引擎的表的数据都会记录到该共享表空间中。
在这里插入图片描述

参数innodb_file_per_table的设置,可以将每个基于InnoDB存储引擎的表产生一个独立表空间。独立表空间的命名规则为:表名.ibd

在这里插入图片描述

查看表空间的命令ls -lh /opt/mariadb-enterprise-10.1.14-linux-x86_64/data/*
在这里插入图片描述

6.2 重做日志文件

在InnoDB存储引擎的data目录下会有两个名为ib_logfile0ib_logfile1的文件。这两个就是重做日志文件(redo log file),如下:
在这里插入图片描述

重做日志文件对于InnoDB存储引擎至关重要,他们记录了对于InnoDB存储引擎的事务日志。

当数据库由于所在主机忽然断电导致实例失败,InnoDB存储引擎会使用重做日志恢复到断电之前的状态,以此来保证数据的完整性。

影响重做日志的参数:

  • innodb_log_file_size:指定每个重做日志文件的大小。InnoDB1.2.x版本之前,重做日志大小不得大于等于4GB。1.2.x以后将该限制扩大为512G。
  • innodb_log_file_in_group:指定了日志文件组中重做日志文件的数量,默认为2.
  • innodb_mirrired_log_group:指定了日志镜像文件组的数量,默认为1。表示只有一个日志文件组,没有镜像
  • innodb_log_group_home_dir:指定了日志文件组所在路径,默认为./。表示在data的目录下。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值