MySQL 日志文件介绍

MySQL中有以下几种日志:

1、error log

错误日志:主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。排查问题的首选文件。

error log记录信息

  • mysql执行过程中的错误信息
  • mysql执行过程中的警告信息
  • event scheduler运行时所产生的信息
  • mysql启动和停止过程中的输出信息,未必是错误信息
  • 主从复制结构中,从服务器IO复制线程的启动信息
控制error log记录信息参数log_warnings
  • log_warnings的值为0,表示不记录警告信息。
  • log_warnings的值为1,表示警告信息一并记录到错误日志中。
  • log_warnings的值大于1,表示"失败的连接"的信息和创建新连接时"拒绝访问"类的错误信息也会被记录到错误日志中。

注意:错误日志中记录的并非全是错误信息,例如 MySQL 如何启动 InnoDB 的表空间文件、如何初始化自己的存储引擎等,这些也记录在错误日志文件中。

2、binlog

二进制日志:binlog属于逻辑日志,记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。有Mixed、Statement、ROW 3种格式、不同格式各有优缺点,主要用于复制和数据任意时间点还原。

Binlog是Mysql sever层维护的一种二进制日志,与innodb引擎中的redo/undo log是完全不同的日志。启用了binlog的前提下任何引擎都会记录binlog,可通过mysqlbinlog工具解析binlog日志。

3、slow query log

慢日志:记录所有执行时间超过long_query_time(单位秒)和没有使用到索引的SQL语句。通过慢查询日志,可以查找出哪些执行效率低的查询语句,以便进行优化。

4、general log

一般通用日志:记录所有的客户端连接信息和执行过的SQL语句,假如你不知道哪个业务是否有使用,或某个请求来自哪里,可以把general log 开起来就比较容易查询。一般临时开启此功能,因为log的量会非常庞大。

5、relay log

中继日志:主从同步过程中是连接master和slave的核心,从节点产生的转储日志,用于从节点应用恢复。

6、redo log

重做日志:InnoDB层产生的,记录物理数据页修改的信息。有效减少事务提交刷盘的频次降低IO压力。redo log 保证了数据库的crash-safe能力,因为其属于物理日志的特性,恢复速度远快于逻辑日志。同时与在线热备份息息相关。

7、undo log

回滚日志:记录数据发生变更前的信息,在事务的修改记录之前,会把该记录的原值(before image)先保存起来(undo log)再做修改,以便修改过程中出错能够恢复原值或者供其他的事务读取。主要用于回滚(原子性),同时提供多版本并发控制(MVCC)下的快照读功能。

 

posted @ 2021-11-17 18:19  VicLW  阅读(347)  评论(0编辑  收藏  举报