layout: post
title: Mysql日志
date: 2018-05-15
tags: [“Mariadb”,”软件服务”]
一、事务日志:transaction log
Innodb事务日志相关配置:
- show variables like '%innodb_log%';
- innodb_log_file_size 5242880 每个日志文件大小,默认是5M,比较小,需要改大,当事务日志文件过小,会导致无法执行大的事务
- innodb_log_files_in_group 2 日志组成员个数,及最大创建日志文件数
- innodb_log_group_home_dir ./ 事务文件路径
二、错误日志
mysqld启动和关闭过程中输出的事件信息
mysqld运行中产生的错误信息
event scheduler运行一个event时产生的日志信息
在主从复制架构中的从服务器上启动从服务器线程时产生的信息
错误日志相关配置
- SHOW GLOBAL VARIABLES LIKE '%log_error%'
- log_error=/PATH/TO/LOG_ERROR_FILE
- log_warnings=1'0 默认值1,是否记录警告信息至错误日志文件
三、中继日志:relay log
主从复制架构中,从服务器用于保存从主服务器的二进制日志中读取到的事件
四、慢查询日志
慢查询日志:记录执行查询时长超出指定时长的操作
- slow_query_log=ON'OFF 开启或关闭慢查询
- long_query_time=N 慢查询的阀值,单位秒
- slow_query_log_file=HOSTNAME-slow.log 慢查询日志文件
- log_slow_filter = admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
- log_queries_not_using_indexes=ON 不使用索引也没有达到慢查询阀值的语句是否记录日志,默认OFF,即不记录
- log_slow_rate_limit = 1 多少次查询才记录,mariadb特有
- log_slow_verbosity= Query_plan,explain 记录内容
- log_slow_queries = OFF 同slow_query_log 新版已废弃
五、二进制日志
二进制日志相关的服务器变量:
- sql_log_bin=ON'OFF:是否记录二进制日志,默认ON
- log_bin=/PATH/BIN_LOG_FILE:指定文件位置;默认OFF,表示不启用二进制日志功能,上述两项都开启才可
- binlog_format=STATEMENT'ROW'MIXED:二进制日志记录的格式,默认STATEMENT
- max_binlog_size=1073741824:单个二进制日志文件的最大体积,到达最大值会自动滚动,默认为1G;说明:文件达到上限时的大小未必为指定的精确值
- sync_binlog=1'0:设定是否启动二进制日志即时同步磁盘功能,默认0,由操作系统负责同步日志到磁盘
- expire_logs_days=N:二进制日志可以自动删除的天数。默认为0,即不自动删除
mysqlbinlog:二进制日志的客户端命令工具
- 命令格式:
- mysqlbinlog [OPTIONS] log_file...
- --start-position=# 指定开始位置
- --stop-position=#
- --start-datetime=
- --stop-datetime=
- 时间格式:YYYY-MM-DD hh:mm:ss
- --base64-output[=name]
清除指定二进制日志
- PURGE { BINARY ' MASTER } LOGS { TO 'log_name' ' BEFORE datetime_expr }
- 例:
- PURGE BINARY LOGS TO 'mariadb-bin.000003';删除3前日志
- PURGE BINARY LOGS BEFORE '2017-01-23';
- PURGE BINARY LOGS BEFORE '2017-03-22 09:25:30';
删除所有二进制日志,index文件重新记数
- RESET MASTER [TO #]; 日志文件从#开始记数,默认从1开始,一般是master第一次启动时执行,MariaDB10.1.6开始支持TO #
切换日志文件:
- FLUSH LOGS;
文档更新时间: 2020-05-25 12:16 作者:张尚