<返回更多

MySQL服务出现异常,需要排查哪些日志?

2020-05-19    
加入收藏
MySQL相关的日志主要有以下几种: 错误日志, 查询日志, 慢查询日志, binlog日志, 中继日志, 事务日志

1、错误日志

记录的事件信息:
(1)mysqld启动和关闭过程中输出的事件信息;
(2)mysqld运行中产生的错误信息;
(3)时间调度器event scheduler运行一个event时产生的日志信息;
(4)在主从复制架构中, 从服务器上启动从服务器线程时产生的信息。

配置参数:
  log_error=/data/mysql/mysql3306/logs/error.log
  log_warnings=ON|OFF 是否记录警告信息至错误日志文件中

2、查询日志:

开启general log,可以将所有的SQL语句记录下来。一般不会开启该功能,因为log的量会非常庞大。
但个别情况下可能会临时开启,用来排查故障。
配置参数:
  有3个配置参数,general_log、log_output、general_log_file

(1)日志开关配置:
    general_log=ON|OFF

(2)日志存储方式:
    log_output=FILE|TABLE

    log_output='FILE'
        表示将日志存入文件, 默认值是FILE

    log_output='TABLE'
        表示将日志存入数据库, 日志信息就会被存入mysql.slow_log表中。

    log_output='FILE,TABLE'
        mysql支持同时两种日志存储方式, 以逗号隔开即可。

(3)日志文件保存位置:
    general_log_file=/data/mysql/mysql3306/logs/general.log

建议:

日志记录到表中要比记录到文件中,耗费更多的系统资源。

因此对于需要启用慢查日志,建议优先记录到文件。

 

另外,除了用数据库来收集此日志,也可以采用抓包的方案收集此日志(后续会有分享)。

3、慢查询日志

MySQL的慢查询日志,用来记录在MySQL中响应时间超过阀值long_query_time的语句,则会被记录到慢查询日志中。
配置参数:

slow_query_log=ON|OFF
  是否开启慢查询日志

slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
  慢查询日志存储路径, 旧版(5.6以下版本)使用log_slow_queries来配置

long_query_time=0.1
  慢查询阈值, 单位为秒, 可以采用小数的形式精确到微妙。

log_queries_not_using_indexes=ON|OFF
  未使用索引的查询,也被记录到慢查询日志中。如果调优,建议开启此选项。

log_output=FILE|TABLE
  日志记录方式, 同上。

4、binlog日志

记录修改数据或可能引起数据改变的SQL语句。用于通过"重放"日志文件中的事件,来生成数据副本,恢复数据。
配置参数:

sql_log_bin=ON|OFF
  是否记录二进制日志
  
log_bin=/data/mysql/mysql3306/logs/mysql-bin
  binlog文件存储路径

binlog_format=STATEMENT|ROW|MIXED
  二进制日志记录的格式

5、中继日志

复制架构中, 从服务器用于保存从主服务器的二进制日志文件中读取到的事件, 并保存为的日志文件
配置参数:

relay-log=/data/mysql/mysql3306/logs/relay-bin

6、事务日志

事务型存储引擎自行管理和使用, 事务日志能将随机IO转换为顺序IO。

事务型存储引擎innodb用于保证事务特性的日志文件。
  redo日志、undo日志
  
事务性存储引擎ACID:
  用于保证原子性、一致性、隔离性和持久性。
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>