博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL系列详解三:MySQL中各类日志详解-技术流ken
阅读量:7223 次
发布时间:2019-06-29

本文共 7243 字,大约阅读时间需要 24 分钟。

 

前言

日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 。下面分别对他们进行介绍。

 

查询日志

 

1.查看查询日志变量

查询日志即查看日志记录了所有对 MySQL 数据库请求的信息,不论这些请求是否得到了正确的执行。默认为 主机名.log

mysql> show global variables like "%gen%log%";+------------------+------------------------------------+| Variable_name    | Value                              |+------------------+------------------------------------+| general_log      | OFF                                || general_log_file | /data/mysql/mysql3306/data/ken.log |+------------------+------------------------------------+2 rows in set (0.00 sec)

 

2.查询日志变量详解

1 log on|off:                 指定是否记录查询日志     <<< mysql5.6开始就弃用该选项2 general_log:                指定是否记录查询日志3 log_output none|table|file: 指定将记录到的查询保存到什么位置4 file:                       保存成一个文件5 table:                      保存成一张表6 none:                       不记录7 general_log_file:           指定将查询日志保存成哪个文件、叫什么名

 

慢查询日志

 

1.查看慢查询日志变量

慢查询日志用来记录响应时间超过阈值的SQL语句,所以我们可以设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询日志文件中。该阈值可以通过参数 slow_launch_time来设置,默认为2秒。

1 mysql> show global variables like "%slow%"; 2 +---------------------------+----------+ 3 | Variable_name             | Value    | 4 +---------------------------+----------+ 5 | log_slow_admin_statements | OFF      | 6 | log_slow_slave_statements | ON       | 7 | slow_launch_time          | 2        | 8 | slow_query_log            | ON       | 9 | slow_query_log_file       | slow.log |10 +---------------------------+----------+11 5 rows in set (0.00 sec)

 

2.慢查询日志变量详解

1 slow_query_log on|off:  指定是否启用慢查询日志2 slow_query_log_file:    指定慢查询日志文件3 slow_launch_time:       指定在多长时间内没有执行完额查询是慢查询4 log_output:             指定将记录到的查询保存到什么位置

 

错误日志

 

1.查看错误日志变量

错误日志文件对MySQL的启动,运行,关闭过程进行了记录。

1 mysql> show global variables like "%error%"; 2 +---------------------+--------------+ 3 | Variable_name       | Value        | 4 +---------------------+--------------+ 5 | binlog_error_action | ABORT_SERVER | 6 | log_error           | ./error.log  | 7 | log_error_verbosity | 3            | 8 | max_connect_errors  | 100000       | 9 | max_error_count     | 64           |10 | slave_skip_errors   | OFF          |11 +---------------------+--------------+12 6 rows in set (0.00 sec)

 

2.错误日志变量详解

1 log_error:        指定错误日志的文件及其路径2 log_warnings:     指定将哪个级别的警告日志记录到错误日志中3 sql_warnings:     指定是否记录在执行sql语句时候所触发的经过信息

 

 

二进制日志

 

1.关于二进制日志以及二进制日志变量

二进制日志记录了对数据库执行更改的所有操作,但是不包括 select 和 show 这类操作,因为这类操作对数据本身并没有修改,如果你还想记录select和show操作,那只能使用查询日志了,而不是二进制日志。

此外,二进制还包括了执行数据库更改操作的时间和执行时间等信息。 二进制日志主要有以下几种作用 :

  • 恢复(recovery) : 某些数据的恢复需要二进制日志,如当一个数据库全备文件恢复后,我们可以通过二进制的日志进行 point-in-time 的恢复
  • 复制(replication) : 通过复制和执行二进制日志使得一台远程的 MySQL 数据库(一般是slave 或者 standby) 与一台MySQL数据库(一般为master或者primary) 进行实时同步
  • 审计(audit) :用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入攻击

 

1 mysql> show global variables like "%bin%"; 2 +--------------------------------------------+--------------------------------------------+ 3 | Variable_name                              | Value                                      | 4 +--------------------------------------------+--------------------------------------------+ 5 | bind_address                               | *                                          | 6 | binlog_cache_size                          | 1048576                                    | 7 | binlog_checksum                            | CRC32                                      | 8 | binlog_direct_non_transactional_updates    | OFF                                        | 9 | binlog_error_action                        | ABORT_SERVER                               |10 | binlog_format                              | ROW                                        |11 | binlog_group_commit_sync_delay             | 0                                          |12 | binlog_group_commit_sync_no_delay_count    | 0         ...

 

2.二进制日志变量详解

1 log_bin on|off:                         也是指定是否启用二进制日志(全局的) 2 log_bin_basename /path/to/binlog:       指定二进制日志的文件的基名 3 log_bin_index /path/to/binlog.index:    指定二进制日志文件的索引文件 4 binlog_format row|mixex|statement:      指定基于那种方式进行记录 5 sync_binlog #:                          指定隔多久将缓存中的信息刷新到二进制日志文件中。 6                                       -->每次提交事务,会将缓存中的内存刷新到二进制日志文件中。 7                                       -->默认每个sql语句是一个事务,而且默认事务会自动提交,所以,默认的性能很差 8 max_binlog_size #:                      指定二进制日志文件的上限,超过上限回滚动 9 max_binlog_cache_size  #:               指定二进制日志缓存空间大小,空间被填满,会自动滚动10 sql_log_off on|off:                     是否将一般的查询操作记录到二进制日志中11 sql_log_bin on|off:                     也是指定是否启用二进制日志(会话级别)12 log_bin_trust_function_creators on|off: 指定是否允许创建可能导致不安全的函数

 

 3.查看二进制日志文件

对于二进制日志文件来说,不像错误日志文件,慢查询日志文件那样用cat,vim等命令可以查看,它需要通过 MySQL 提供的工具 mysqlbinlog

1 [root@ken ~]# mysqlbinlog /data/mysql/mysql3306/logs/mysql-bin.000001  2 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; 3 /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; 4 DELIMITER /*!*/; 5 # at 4 6 #181012  0:34:24 server id 1003306  end_log_pos 123 CRC32 0x27fde4a9     Start: binlog v 4, server v 5.7.23-log created 181012  0:34:24 at startup 7 ROLLBACK/*!*/; 8 BINLOG ' 9 kHu/Ww8qTw8AdwAAAHsAAAAAAAQANS43LjIzLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA10 AAAAAAAAAAAAAAAAAACQe79bEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA11 Aank/Sc=12 '/*!*/;13 # at 12314 #181012  0:34:24 server id 1003306  end_log_pos 154 CRC32 0x4e3fc05f     Previous-GTIDs15 # [empty]16 # at 15417 #181012  0:34:26 server id 1003306  end_log_pos 177 CRC32 0x368d3215     Stop18 SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;19 DELIMITER ;20 # End of log file21 /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;22 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

 

中继日志

 

1.查看中继日志日志变量

用于实现mysql的主从复制

 

1 mysql> show global variables like "%relay%"; 2 +---------------------------+--------------------------------------------+ 3 | Variable_name             | Value                                      | 4 +---------------------------+--------------------------------------------+ 5 | max_relay_log_size        | 134217728                                  | 6 | relay_log                 | relay-bin                                  | 7 | relay_log_basename        | /data/mysql/mysql3306/data/relay-bin       | 8 | relay_log_index           | /data/mysql/mysql3306/data/relay-bin.index | 9 | relay_log_info_file       | relay-log.info                             |10 | relay_log_info_repository | FILE                                       |11 | relay_log_purge           | ON                                         |12 | relay_log_recovery        | ON                                         |13 | relay_log_space_limit     | 0                                          |14 | sync_relay_log            | 10000                                      |15 | sync_relay_log_info       | 10000                                      |16 +---------------------------+--------------------------------------------+17 11 rows in set (0.00 sec)

 

 

2.二进制日志变量详解

1 relay_log fileName:       指定中继日志的文件名。【文件名为空,表示禁用了中继日志】2 relay_log_index:          索引表3 relay_log_info_file:      记录中继日志文件的相关信息4 relay_log_purge:          指定是否自动删除无用的中继日志文件5 relay_log_recovery:       是否可以对中继日志做自动恢复相关的配置6 relay_log_space_limit:    指定中继日志可以占用的空间大小(0表示不限制)

 

 3.SQL线程应用中继日志流程

转载于:https://www.cnblogs.com/kenken2018/p/9818266.html

你可能感兴趣的文章
POJ_2446_Chessboard
查看>>
Codeforces_B.Maximum Sum of Digits
查看>>
整体二分
查看>>
关于Eclipse中的快捷键占用的解决.
查看>>
[CodeForces948D]Perfect Security(01字典树)
查看>>
ELK-Python(一)
查看>>
221. Maximal Square - Medium
查看>>
277. Find the Celebrity - Medium
查看>>
[Programming Entity Framework] 第1章 ADO.NET实体框架介绍(一)
查看>>
JSONP的优缺点
查看>>
永久关闭WPS热点
查看>>
痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(5)- 语音识别实现(SpeechRecognition, PocketSphinx0.1.15)...
查看>>
HDU——1285 确定比赛名次
查看>>
atof
查看>>
通用js模块02:validutils.js
查看>>
git 的安装与初始化
查看>>
iPhone打包步骤
查看>>
java中函数形参的理解
查看>>
数据结构与算法----->算法----->高级排序算法:快速排序
查看>>
ubuntu中安装VMWare tools
查看>>