欢迎投稿

今日深度:

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

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


文章目录

      • 1、参数配置文件
      • 2、日志文件
        • 2.1 错误日志
        • 2.2 慢查询日志
        • 2.3 查询日志
        • 2.4 二进制日志
      • 3、套接字文件
      • 4、pid文件
      • 5、表结构定义文件
      • 6、InnoDB存储引擎文件
        • 6.1 表空间文件
        • 6.2 重做日志文件

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的目录下。

www.htsjk.Com true http://www.htsjk.com/mariadb/36871.html NewsArticle innoDB引擎涉及到的文件(日志文件、进程文件、套接字文件),innodb日志文件 文章目录 1、参数配置文件 2、日志文件 2.1 错误日志 2.2 慢查询日志 2.3 查询日志 2.4 二进制日志 3、套接字...
相关文章
    暂无相关文章
评论暂时关闭