Mysql日志几种日志介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

那么。MySQL有哪些日志呢?

mysql主要日志:错误日志,普通查询日志,事务日志、慢查询日志、二进制日志,中继日志;那么我们来一一说

MySQL错误日志

mysql错误日志主要记录的mysql在启动、关闭和重启过程中,一些错误的信息和警告信息,与其他日志不相同的时,这个日志时必须开启的;

首先查询错误日志位置:

查询警告日志位置:log_warnings:设置是否将警告信息也写入到错误日志中。默认是2,如果想要禁用,将其设置为0。

普通查询日志 general log

普通查询日志,主要记录的mysql在运行sql语句时候,还包括远程连接信息,不管是否执行成功的一个记录日志,它的默认是不开启。

可以设置general_log日志的开启状态:

事务日志

mysql事务日志,又称innodb日志,包括重做日志redo和回滚日志undo;

Redo记录的是已经全部完成的事务,就是执行了commit的事务,记录文件是ib_logfile0 ib_logfile1

Undo记录的是已部分完成并且写入硬盘的未完成的事务,默认情况下回滚日志是记录下表空间中的(共享表空间或者独享表空间)

一般情况下,mysql在崩溃之后,重启服务,innodb通过回滚日志undo将所有已完成并写入磁盘的未完成事务进行rollback,然后redo中的事务全部重新执行一遍即可恢复数据,但是随着redo的量增加,每次从redo的第一条开始恢复就会浪费长的时间,所以引入了checkpoint机制。

Checkpoint:如果在某个时间点,脏页的数据被刷新到了磁盘,系统就把这个刷新的时间点记录到redo log的结尾位置,在进行恢复数据的时候,checkpoint时间点之前的数据就不需要进行恢复了,可以缩短时间

Innodb_log_buffer_size 重做日志缓存大小

Innodb_log_file_size redo log文件大小 文件越大 数据恢复的时间越长

Innodb_log_file_group redo log文件数量 默认是2个 ib_logfile0 ib_logfile1

慢查询日志

慢查询日志是指查询语句超过指定时间的日志。通过慢查询日志,可以发现sql语句的运行情况,找出来一些低效率的查询语句,方便后期的数据库的优化。默认状态是不开启的。

那么我们来设置开启状态:

二进制日志

二进制日志也叫作变更日志,主要用于记录修改数据或有可能引起数据改变的mysql语句,并且记录了语句发生时间、执行时长、操作的数据等等。所以说通过二进制日志可以查询mysql数据库中进行了哪些变化。

二进制日志默认是不开启,开启方式在mysql配置文件my.cnf中加入log_bin=master_log;这样二进制日志就开启了。

查看二进制文件的位置:

中继日志

当要使用主-从复制的时候,就要使用到中继日志了,它是从主数据库服务器上记录下来二进制日志文件,再同步到自己的数据库服务器上的中继日志文件,然而读取中继日志文当中的内容来进行同步的功能;

主数据库服务器:会开启一个dump-thread的进程来响应

从数据库服务器:会开启一个io-thread的进程来请求,通过SQL-thread来执行中继日志当中的信息同步到本地。

中继日志一般是不开启的,只要当数据库需要主从设置、主主设置时,才会开启的,

开启办法是在mysql配置文件my.cnf中添加relay_log=relay_log,那么中继日志就开启了;

中继日志没有开启的状态;

上图就是我们中继日志开启的状态;

以上,就是我们MySQL中的几种日志,希望我在这里所的已经很明白了,可以帮助到你的!

posted on 2018-05-08 23:14  宫关Dove  阅读(112)  评论(0编辑  收藏  举报