一、错误日志
1:记录哪些信息
Mysql执行过程中的错误信息
Mysql执行过程中的警告信息
Mysql服务器启动和关闭过程中的所有输出信息(不一定是错误信息)
event scheduler运行时所产生的信息
主从复制结构中,从服务器IO复制线程的启动信息
2:保存在哪
Show variables like ‘%log_error%’;
3:记录警告信息
log_warnings:表示警告信息是否一起记录在错误日志中
0:不记录警告信息
1:记录警告信息到错误日志(默认值)
>1:包括=1的所有警告和客户端的连接失败信息都会记录到错误日志(比1更丰 富)
4:总结
错误日志文件不仅仅记录错误信息,它是非常重要的日志信息文件
引用
二、查询日志
1:概述
查询日志 == 通用日志 == general log
查询日志记录数据库执行的所有SQL命令(不论正确与否)
查询日志默认关闭(IO开销太大)
2:作用
查看哪些select语句频繁执行(-->是否可以走查询缓存)
帮助我们分析问题
3:查询日志存储方式(log_output)
日志文件(FILE)
mysql(数据库名就是mysql)库的general_log表(TABLE)
日志文件 + general_log表(FILE,TABLE)
注:log_output的值同时控制慢查询日志的存储方式
4:查询日志相参数
general_log:0(OFF)/1(ON)
general_log_file:相对路径 --日志文件位置
log_output:FILE|TABLE|FILE,TABLE|NONE --如果开启建议设置为TABLE
引用
三、慢查询日志
1概述
用于记录执行时间超过指定阈值(long_query_time)的所有DML和select语句
如果设置log_queries_not_using_indexes = 1,则所有没有使用索引的查询语句都会被当作慢查询记录到慢查询日志中.
2:存储位置
SHOW VARIABLES LIKE '%slow_query_log_file%';
引用
四、二进制日志
1:概述
二进制日志又称为binlog,记录了所有对数据库的修改操作.因此,select,show这样只查询的语句不会记录进binlog日志
2:作用
用于时间点恢复(备份恢复),主从同步
备份恢复:定时备份数据库+binlog实现备份恢复
3:binglog三种记录方式(生产环境一般使用row模式)
statement模式:记录对数据库做出修改的语句,将修改语句以二进制形式记录到binlog中.优点:日志量小,IO快.缺点:可能需要记录一些修改时的额外信息,不能保证完全恢复已有数据
row模式:以行为单位记录修改操作,记录具体修改了哪一行的哪些数据.一条update语句修改了多少行就记录多少行日志.优点:可以完全恢复记录日志时的修改操作.缺点:日质量大,IO慢.
mixed模式:混合使用statement和row模式
4:binlog中的”事件”和”位置”
5:binlog相关参数
log_bin:控制是否开启二进制日志,只读.只能在配置文件中配置,配置了就代表开启,没有配置就代表关闭;值为binlog的文件名前缀.
sql_log_bin:控制当前会话是否开启二进制日志.关闭则不记录当前会话的数据库修改操作
binlog_format:binlog的记录格式(statement,row,mixed)
max_binlog_size:binlog单个文件最大大小;字节为单位;超出自动滚动(后缀加1生成新binlog)
sync_binlog:二进制日志从内存刷写进磁盘的间隔(以事务为单位)
binlog-do-db: 指定记录的数据库;
binlog-ignore-db: 指定不记录的数据库
注意:binlog-do-db和binlog-ignore-db一次只指定一个数据库,指定多个数据库需要多个语句。而且,MySQL会将所有的数据库名称改成小写,在指定数据库时必须全部使用小写名字,否则不会起作用。
引用:
五、中继日志(replay log)
保存主从同步时从服务器需要执行的数据库操作(slave库的IO线程将接收到的主库的binlog记入从库的中继日志中,以便实现主从同步)
六、事务日志
概述:
事务日志是innoDB存储引擎级别的,只有innoDB存储引擎才有事务日志,其他存储引擎(不支持事务)没有