layout: post
title: Mysql日志
date: 2018-05-15
tags: [“Mariadb”,”软件服务”]


一、事务日志:transaction log

Innodb事务日志相关配置:

  1. show variables like '%innodb_log%';
  2. innodb_log_file_size 5242880 每个日志文件大小,默认是5M,比较小,需要改大,当事务日志文件过小,会导致无法执行大的事务
  3. innodb_log_files_in_group 2 日志组成员个数,及最大创建日志文件数
  4. innodb_log_group_home_dir ./ 事务文件路径

二、错误日志

mysqld启动和关闭过程中输出的事件信息
mysqld运行中产生的错误信息
event scheduler运行一个event时产生的日志信息
在主从复制架构中的从服务器上启动从服务器线程时产生的信息

错误日志相关配置

  1. SHOW GLOBAL VARIABLES LIKE '%log_error%'
  2. log_error=/PATH/TO/LOG_ERROR_FILE
  3. log_warnings=1'0 默认值1,是否记录警告信息至错误日志文件

三、中继日志:relay log

主从复制架构中,从服务器用于保存从主服务器的二进制日志中读取到的事件

四、慢查询日志

慢查询日志:记录执行查询时长超出指定时长的操作

  1. slow_query_log=ON'OFF 开启或关闭慢查询
  2. long_query_time=N 慢查询的阀值,单位秒
  3. slow_query_log_file=HOSTNAME-slow.log 慢查询日志文件
  4. log_slow_filter = admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
  5. log_queries_not_using_indexes=ON 不使用索引也没有达到慢查询阀值的语句是否记录日志,默认OFF,即不记录
  6. log_slow_rate_limit = 1 多少次查询才记录,mariadb特有
  7. log_slow_verbosity= Query_plan,explain 记录内容
  8. log_slow_queries = OFF 同slow_query_log 新版已废弃

五、二进制日志

二进制日志相关的服务器变量:

  1. sql_log_bin=ON'OFF:是否记录二进制日志,默认ON
  2. log_bin=/PATH/BIN_LOG_FILE:指定文件位置;默认OFF,表示不启用二进制日志功能,上述两项都开启才可
  3. binlog_format=STATEMENT'ROW'MIXED:二进制日志记录的格式,默认STATEMENT
  4. max_binlog_size=1073741824:单个二进制日志文件的最大体积,到达最大值会自动滚动,默认为1G;说明:文件达到上限时的大小未必为指定的精确值
  5. sync_binlog=1'0:设定是否启动二进制日志即时同步磁盘功能,默认0,由操作系统负责同步日志到磁盘
  6. expire_logs_days=N:二进制日志可以自动删除的天数。默认为0,即不自动删除

mysqlbinlog:二进制日志的客户端命令工具

  1. 命令格式:
  2. mysqlbinlog [OPTIONS] log_file...
  3. --start-position=# 指定开始位置
  4. --stop-position=#
  5. --start-datetime=
  6. --stop-datetime=
  7. 时间格式:YYYY-MM-DD hh:mm:ss
  8. --base64-output[=name]

清除指定二进制日志

  1. PURGE { BINARY ' MASTER } LOGS { TO 'log_name' ' BEFORE datetime_expr }
  2. 例:
  3. PURGE BINARY LOGS TO 'mariadb-bin.000003';删除3前日志
  4. PURGE BINARY LOGS BEFORE '2017-01-23';
  5. PURGE BINARY LOGS BEFORE '2017-03-22 09:25:30';

删除所有二进制日志,index文件重新记数

  1. RESET MASTER [TO #]; 日志文件从#开始记数,默认从1开始,一般是master第一次启动时执行,MariaDB10.1.6开始支持TO #

切换日志文件:

  1. FLUSH LOGS;

 

文档更新时间: 2020-05-25 12:16   作者:张尚