MySQL参考手册第5章:日志管理

   1 日志概述     
    MySQL服务器使用五种日志,分别是general_log,error_log,slow_log,binlog,relay_log

    默认并不开启日志。若开启日志,通常将日志写入datadir下。通过flush logs方式可以指示服务器关闭当前日志并启用新日志文件。
    其中general log和slow query log可以 动态配置打开及日志路径。
    --log-output选项指定FILE|TABLE使得日志可以输出到文件或输出到mysql的数据表中,其中FILE是默认选项。若定向到表中可能带到一定的性能损失。此选项支持运行时动态改变。
日志
 开关变量 
路径变量
general log
general_log
general_log_file
slow query log
slow_query_log
slow_query_log_file
    这些相应的系统变量也对应着启动时参数。
    值得说明的是若采用TABLE格式,则这两个表只能是CSV引擎或MYISAM的,不能运行时改变引擎。                    
    
    其他日志不支持动态配置,需要从命令行选项上打开和指定。若打开,默认路径在数据目录中。
日志类型
日志路径选项
error log
--log-error
binlog
--log-bin
    2 Error Log
    对于error log,使用flush使得关闭文件并再次打开,因此若想创建新文件,需要手工将旧文件重命名,再flush logs。log-warnings的值可以控制将哪些级别的警告信息写入到error-log。
    3 General Query Log
    查询日志记录了服务器所进行的所有查询,以及这些查询的客户端信息。这些记录是按服务器收到的顺序写入的。与之相反binlog则是按执行顺序记录的,而且并不记录select语句。
    General log在刷新时也不能生成新的文件,可以通过指定新的日志文件名实现动态的文件切换。
    会话变量sql_log_off可以设置为off,以关闭此次会话的日志记录。
      4 binary-log
    binlog在复制和备份恢复中有着重要的作用。只有完成的事件和事务才会写入到binlog中。
    
选项名
含义
--log-bin
path 
设置binlog的文件路径及名称前缀
系统生成文件后缀为6上数字,从000001开始递增
--log-bin-index

指定索引文件,此文件指示当前使用了哪个日志文件
--max-binlog-size

单个binlog文件上限,系统会自动切换日志文件
当然系统会在完成一个事务后才切换
大小限制并不是严格限制
--log-slave-updates

从库更新也写binlog
--binlog-do-db

只记录指定库的更新到binlog
--binlog-ignore-db

不记录指定库的更新到binlog
--replicate-do-db


--replicate-ignore-db


--sync-binlog
{0|1}
控制何时将日志写入硬盘,0由操作系统决定;1事务结束时,性能最差
--binlog-format
row
stat
mixed
设置binlog的日志格式
    默认情况下,从库在更新时自己不写日志文件,但如果使用链式复制,从库作为另一个库的主库,则可以设置选项log-slave-updates,同时打开log-bin,则可以使得从库同时写日志。

    运行时可通过sql_log_bin=ON打开。
    reset master 清除所有日志,需要注意不要把从库未同步到的日志也清除了
    purge binary logs to 'log-file' 可以清除部分日志

    相关变量与状态
    变量--binlog_cache_size: 用来缓存事务相关语句,若语句大于此值,则需要临时文件
    状态参数 binlog_cache_use,binlog_cache_disk_use 统计cache等的使用情况

    binlog由三种不同的格式,可以通过--binlog-format=?来设定,格式可以运行时动态指定和切换。若某些语句执行时间很长,但影响的数据很少,或者对表的变化语句很多,但内容很少。这些都可以使用基于row的binlog。若一个语句会影响很多行,这种变化适合基于statement的binlog。指定为mixed,则由服务器自行决定如何记录。
    MySQL服务器从5.6开始binlog格式与之前版本不同,这点需要注意。
    5 slow query
    慢查询日志可以用mysqldumpslow或percona的pt-query-digest进行分析,以对数据库索引进行分析和优化。mysqldumpslow的用法可参考 第4章的内容。
名称
含义
--slow-query-log


--slow-query-log-file


--long-query-time

当查询执行时间超过此值时记录此查询
--min-examined-row-limit

当查询查找的行数高于此值时才记录此查询
--log-slow-admin-statments

慢查询中也记录DDL语句
--log-query-not-using-indexes

慢查询中也记录不使用索引的语句,若打开会导致日志增长过快
--log_throttle_queries_not_using_index

可以通过来限制记录频率
 



你可能感兴趣的:(MySQL参考手册第5章:日志管理)