查询日志:query log
慢查询日志:slow query log
事务日志:transaction log
二进制日志:binary log
中继日志:relay log
错误日志:error log
我们依次说:
1、查询日志:
记录查询操作
文件:file
表:table
general_log=ON|OFF
general_log_file=HOSTNAME.log
log_output=TABLE|FILE|NONE
我们可以设置general_log为OFF关闭,或者设置log_output为NONE进行关闭
当log_output设置为TABLE时,mariadb会将日志保存在mysql库的general_log表中
2、慢查询日志
执行时长超过指定时长的查询操作
SHOW GLOBAL VARIABLES LIKE 'long_query_time';
SELECT @@GLOBAL.long_query_time;
SET GLOBAL long_query_time=##;
服务器参数:
slow_query_log=ON|OFF
slow_query_log_file=slow.log
log_slow_filiter:
SHOW VARIABLES LIKE 'log_slow_fil%'\G;
*************************** 1. row ***************************
Variable_name: log_slow_filter
Value: admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,
query_cache_miss,tmp_table,tmp_table_on_disk
log_slow_queries=OFF 指定是否开启慢查询日志(被slow_query_log取代)
log_slow_rate_limit=1
log_slow_verbosity=
min_examined_row_limit:查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
log_queries_not_using_indexes: 不使用索引的慢查询日志是否记录到索引
3、错误日志
mysqld启动或关闭过程中输出的事件信息
mysqld运行过程中产生的错误信息
event scheduler运行一个event时产生的日志信息
在主从复制架构中的从服务器上启动从服务器线程时产生的信息
log_error=/PATH
log_warnings=1|0:是否记录警告信息至错误日志中
4、二进制日志
记录导致数据发生改变或者潜在发生改变的SQL语句
SHOW { BINARY|MASTER } LOGS;
查看mariadb自行管理的二进制日志列表
SHOW MASTER STATUS;
查看使用中的二进制日志
SHOW BINARY EVENTS [IN 'binary_logfile'] [FROM POSITION] [limit offset,row_count]
二进制日志格式
基于语句记录 statement
基于行记录 row
混合模式:mixed,让系统自行决定
查看格式
SELECT @@binlog_format 会话级别
SELECT @@GLOBAL.binlog_format 全局级别
设置格式
SET binlog_format='';
二进制日志的构成
两类文件
日志文件:mysql-bin.00000x 二进制格式(可以使用mysqlbinlog读取)
索引文件:mysql-bin.index ,文本格式
服务器变量:
sql_log_bin=ON|OFF 是否记录二进制日志
log_bin=/path
binlog_format=STATEMENT|ROW|MIXED
max_binlog_size=1073741842 单个二进制文件的最大体积,默认为1G
达到最大体积会自动回滚
文件上限时的大小未必为精确值,因为事件不能被截断
sync_binlog:是否开启二进制同步功能(会使性能下降)
mysqlbinlog:客户端命令工具
二进制日志事件的格式:
# at 1159
#181004 11:33:32 server id 1 end_log_pos 1291 Query thread_id=2 exec_time=0
error_code=0
SET TIMESTAMP=1538624012/*!*/;
INSERT INTO students(Name,Age,StuID) VALUES('Huang YueYing',19,27)
/*!*/;
事件发生的时间日期:181004 11:33:32
事件发生的服务器表示:server id 1
事件结束的位置:end_log_pos 1291(下一个事件开始的位置)
事件的类型:Query
事件发生时所在服务器执行此时间的线程id:thread_id 2
语句的时间戳与将其写入二进制日志中的时间差:exec_time=0
错误代码:error_code=0
事件内容:INSERT INTO ...)
中继日志:
主从复制架构中,从服务器用来存放从主服务器上同步而来的二进制日志中读取到的内容的事件
事务日志:
事务型存储引擎自行管理和使用
redo log
undo log