一、日志的分类
查询日志(general_query_log):默认关闭
慢查询日志(slow_query_loh):执行时间超过指定时长,即为慢查询日志。
错误日志(erro_log):默认开启
二进制日志(binary_log):修改相关的操作,用来实现复制的凭据。
中继日志(relay_log):从服务器上的二进制日志
事务日志():随机I/O转换为顺序I/O
日志文件组:至少两个,实现轮询,
二、查看日志
查看所有日志:
SHOW GLOBAL VARIABLES LIKE '%log%'
查询日志:
mysql 中的参数:general_log来控制查询日志
查看是否启用:
show variables like ‘%general_log%’
注意:OFF表示关闭
查看是否开启将日志计入表中(由:log_output控制)
show variables like ‘%log_output%’
注意:OFF表示不记录入表中,记录入文件中。
开启关闭查询日志:
set gloabl general_log=ON|OFF
查看查询日志:
查看查询日志文件放置位置:show variables like ‘%general_log_file%’
慢查询日志:
慢查询日志相关参数:
slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。
log-slow-queries :旧版(5.6以下版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
slow-query-log-file:新版(5.6及以上版本)MySQL数据库慢查询日志存储路径。可以不设置该参数,系统则会默认给一个缺省的文件host_name-slow.log
long_query_time :慢查询阈值,当查询时间多于设定的阈值时,记录日志。
log_queries_not_using_indexes:未使用索引的查询也被记录到慢查询日志中(可选项)。
log_output:日志存储方式。log_output='FILE'表示将日志存入文件,默认值是'FILE'。log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。MySQL数据库支持同时两种日志存储方式,配置的时候以逗号隔开即可,如:log_output='FILE,TABLE'。日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用慢查询日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。
错误日志:
错误日志查询相关参数:
log_error = /path/to/error_log_file:错误日志存放位置
log_warnings = {1|0}:错误日志是否打开
二进制日志:(关键字:binary)
什么是二进制日志:用来记录操作MySQL数据库中的写入性操作(增删改,但不包括查询),相当于sqlserver中的完整恢复模式下的事务日志文件。
二进制日志的作用:
用于复制,配置了主从复制的时候,主服务器会将其产生的二进制日志发送到slave端,slave端会利用这个二进制日志的信息在本地重做,实现主从同步
用于恢复,MySQL可以在全备和差异备份的基础上,利用二进制日志进行基于时间点或者事务Id的恢复操作。原理雷同于主从复制的日志重做。
二进制日志相关参数:
log_bin={1|0} :二进制日志打开或关闭
show binary log:查看服务器所有二进制日志
show master status :查看当前二进制日志状态
show master logs:查看点前二进制文件的个数
max_binlog_cache_size:表示二进制日志能够使用的最大cache(缓存) 内存大小
expire_logs_days = 2:设置二进制日志自动清理时间,2表示超过两天会自动清理。
中继日志:(关键字:relay_log)
对于非从服务器,中继日志没用。
中继日志相关参数:
relay_log 中继日志存储位置和文件名
relay_log_info_file 记录master数据库二进制日志的pos和中继日志的pos
max_relay_log_size 中继日志的文件最大SIZE
relay_log_purge 是否自动清理中继日志
relay_log_recovery 中继日志自动恢复
relay_log_space_limit 中继日志空间限制
sync_relay_log 中继日志同步方式
sync_relay_log_info 主从复制状态记录文件info_file更新方式