错误日志
记录mysql运行时输出的信息
log_error=</path/to/somefile> //指定错误日志路径
查询日志
记录mysql运行时,执行的sql语句
log_output=[FILE|TABLE|NONE] // 查询日志储存在哪里,file记录到文件,table记录到数据表,none不记录 记录查询日志
general_log=[ON|OFF]//是否开启查询日志
general_log_file=</path/to/somefile> //如果是将日志记录到文件,需要指定日志文件路径
慢查询日志
记录执行慢的sql语句
slow_query_log=[ON|OFF] //是否开启慢查询日志
slow_query_log_file=</path/to/somefile> //慢查询日志保存的路径
long_query_time=<time> //超过指定的阙值,会被标记为慢查询,单位是秒
log_queries_not_using_indexes=[ON|OFF]//是否标记那些没有使用索引的查询标记为慢查询
-
日志格式
#开始执行sql语句的时间
#执行的用户,登陆ip,线程id号
#执行时长,占锁时长,返回给客户端的行数,储存引擎扫描的行数
执行的sql语句 -
使用mysqldumpslow分析慢查询日志
//常用选项
-s 排序规则
al平均占锁时间
at平均查询时间
ar平均响应给客户端的行数
c出现次数
l总锁时间
r总响应给客户端的行数
t总查询时间
-r 反向排序
-t 显示前行
出现此次,总执行时间,中占锁时间,总返回给客户端的行数,执行的用户,登陆的ip,执行的语句
- 使用pt-query-digest分析慢查询日志
常用参数
--since <time> //统计最近<time>时间内的慢sql
--since <date-time> --until <date-time> //统计指定时间段内的慢sql
--order-by
摘要信息
工具生成报告花费的时间,实际内存,虚拟内存
生成报告的时间
主机名
慢查询日志名
汇总信息,总sql数,不同的sql数,每秒查询数,并发数
分析慢查询日志记录的日期范围
执行时间
占锁时间
返回给客户端的记录数
存储引擎扫描的行数
查询sql的字节数
分组统计结果
排名,查询标号ID,总响应时间,在本次报告中占用总响应时间百分比,执行次数,平均每次响应时间,执行的语句
每一类统计sql的查询详细信息
查询ID号,每秒查询数,并发数
记录慢查询日志的时间范围
出现次数
执行时间
占锁时间
返回给客户端的记录数
存储引擎扫描的行数
查询sql的字节数
登陆主机ip
登陆账号
sql执行时间分布图
查询涉及的表
sql语句
二进制日志
记录引起数据发生改变的sql。
//开启二进制日志
server_id =<num> //mysql服务器标识号,开启二进制日志需要设这个参数
log_bin=</path/to/somefile> //如果指定了文件路径,则开启二进制日志
sql_log_bin=[on|off]//会话级别是否开启二进制日志
binlog_format=[statement|row|mix]//记录二进制日志的格式,statement记录引起改变的sql语句。row记录执行sql后,变更的行数据。
max_binlog_size=<size> //二进制日志文件大小
sync_binlog=<number>//每sync_binlog次事务提交,同步一次缓存到磁盘二进制日志文件。
查看当前使用的二进制日志文件
show master status
查看服务器上存在的二进制日志
show binary logs
查看二进制日志内容
- 使用mysql客户端命令
//show binlog events in <二进制日志文件> from <日志偏移位置> limit <偏移多少条二进制日志> <显示多少条二进制日志>
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
- 使用命令行工具 mysqlbinlog
//常用选项
--start-datetime //记录的开始时间
--end-datetime //记录的结束时间
--start-position //日志的开始位置
--end-postion //日志的结束位置
--base64-output decode-rows --verbose //查看以rows格式记录的二进字日志
清理二进字日志
- 自动清理,设置二进制日志过期时间,expire_logs_days
- 手动清理 ,purge master logs to <binlog_file_name> 或 purge master logs before < time >
日志格式
- statement 记录执行的sql语句
更新10行数据,直接记录执行的sql
update format set t2=100 limit 10;
- rows 以对每一行数据进行修改的形似,记录sql语句
update format set t2=100 limit 20;
为每一行需要更新的行数据行,记录为一个update语句
中继日志
用于主从架构中,从服务器重放主服务器的二进制日志。达到主从数据同步。