MySQL 日志功能详解
MySQL日志分类
1:查询日志 :query log
2:慢查询日志:slow_query_log 查询执行时长超过指定时长的查询操作所记录日志
3:错误日志:error log
4:二进制日志:binary log
5:中继日志:relay log (主从复制会讲解)
6:事务日志:transaction log
查询日志 (query log一般不启用)
general_log = {ON|OFF}: 是否启用查询日志
general_log_file = /logs/mysql/general_log:当log_output为FILE类型时,日志信息的记录位置;
log_output = {TABLE|FILE|NONE}
log_output = TABLE,FILE
慢查询日志 (slow_query_log 必须启用)
慢查询日志产生的来源
SQL语句返回的结果集大,或者SQL语句没有被优化器优化,或SQL语句没有使用索引
慢查询日志的作用
慢查询日志用于对执行速率较慢的SQL语句就像过滤,有利于SQL代码的优化
1:执行时长超出指定时长的操作
show global variables like 'long_query_time'; 查看指定的时长
set global long_query_time = 自定义时长
2:slow_query_log = {ON|OFF}:是否启用慢查询日志
set global slow_query_log = ON
3:slow_query_log_file = mariadb1-slow.log
4:log_slow_filter = admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk 过滤条件
5:log_slow_rate_limit = 1 指定记录速率
6:log_slow_verbosity = 指定内容级别
中继日志(relay log)
在主从复制架构中,从服务器用于保存从主服务器的二进制日志中读取到的时间
事物日志(transaction log)
事物日志由事物型存储引擎自行管理和使用,无需手动管理
redo log:将一组SQL语句安装先后顺序再执行一次
undo log:回滚到之前数据集没有发生改变的状态
错误日志 (error log 必须启用)
1:错误日志信息产生的来源
mysqld启动和关闭过程中输出的信息;
mysqld运行中产生的错误信息;
event scheduler运行一个event时产生的日志信息
在主从复制架构中的从服务器上启动从服务器线程时产生的日志信息;
2:错误日志的作用
二进制日志可以反应MySQL数据库的错误信息,用于调试
3:如何开启错误日志
log_error = /path/to/somefile
log_warnings = {ON|OFF}:是否记录警告信息于错误日志中;
二进制日志(binary log)
1:二级制日志信息产生的来源
记录导致数据改变,或者潜在改变数据的SQL语句
2:二级制日志的作用
用于通过'重新执行'日志文件中的记录的事件(SQL语句)来生成数据副本,也就是用于主从复制
3:服务器变量
(1)sql_log_bin = [on|off] 是否记录二进制日志, 通常为on
(2)log_bin= on :记录位置,通常为on,如果为off,那么需要在my.cnf配置文件中添加一项:log_bin=mysql-bin,用来指明二进制日志保存的路径名,对于yum安装的MySQL,保存于/var/lib/mysql/mysql-bin.000001这样的二进制日志中
(3)binlog_format = MIXED :二进制记录的格式
(4)max_binlog_size = 1073741824 :单个二进制文件的最大值,默认为1G
到达最大值会自动滚动
文件达到上限的大小未必是精确值
(5)max_binlog_cache_size = 18446744073709547520
(6)sync_binlog = 0:设定多久同步一次二进制日志文件;0表示不同步;任何正值都表示记录多少个语句后同步一次;
4:查看二进制文件的信息
show master status: 显示当前正在使用的二进制文件名
show {binary | master} logs:查看当前二进制文件记录end_log_pos(结束位置)的值,其实当前正在记录的二进制文件的大小。
5:日志记录的格式分类
基于“SQL语句”记录: statement
基于“行”记录:row
“混合模式” :mixed,系统自行判断
6:二进制日志文件的构成
日志文件:mysql-bin.文件序号
例如: mysql-bin.000001
索引文件:mysql-bin.index
例如:mysql-bin.index
7:使用 mysqlbinlog 客户端命令工具查看二进制文件
mysqlbinlog /var/lib/mysql/mysql-bin.000001
8: 二进制格式解析
# at 19364
#140829 15:50:07 server id 1 end_log_pos 19486 Query thread_id=13 exec_time=0 error_code=0
SET TIMESTAMP=1409298607/*!*/;
GRANT SELECT ON tdb.* TO tuser@localhost
/*!*/;
# at 19486
事件发生的日期和时间;(140829 15:50:07)
事件发生在服务器的标识(server id)
事件的结束位置:(end_log_pos 19486)
事件的类型:(Query)
事件发生时所在的服务器执行此事件的线程的ID:(thread_id=13)
语句的时间戳与将其写入二进制文件中的时间差:(exec_time=0)
错误代码:(error_code=0)
事件内容:(SET TIMESTAMP=1409298607/*!*/;
GRANT SELECT ON tdb.* TO tuser@localhost)
GTID事件专属:
事件所属的全局事务的GTID:(GTID 0-1-2)
MySQL 日志功能详解的更多相关文章
- MySQL日志功能详解
MySQL日志功能详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查询日志 它是用来保存所有跟查询相关的日志,这种日志类型默认是关闭状态的,因为MySQL的用户有很多,如果 ...
- 关于syslog日志功能详解 事件日志分析、EventLog Analyzer
关于syslog日志功能详解 事件日志分析.EventLog Analyzer 一.日志管理 保障网络安全 Windows系统日志分析 Syslog日志分析 应用程序日志分析 Windows终端服务器 ...
- MySQL 日志管理详解
大纲 一.日志分类 二.日志详解 注:MySQL版本,Mysql-5.5.32(不同版本的mysql变量有所不同) 一.日志分类 错误日志 查询日志 慢查询日志 二进制日志 中继日志 事务日志 滚动日 ...
- 干货:yii日志功能详解
转载请注明来自souldak,微博:@evagle 一.基本日志功能 详细的介绍查看官网的document:http://www.yiiframework.com/doc/guide/1.1/en/t ...
- nginx 日志功能详解
nginx 日志功能 在 nginx 中有两种日志: access_log:访问日志,通过访问日志可以获取用户的IP.请求处理的时间.浏览器信息等 error_log:错误日志,记录了访问出错的信息, ...
- MySQL的用户密码过期功能详解
MySQL的用户密码过期功能详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 先说明两个术语. Payment Ca ...
- MySQL数据库优化详解(收藏)
MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * ...
- (转)MySQL备份原理详解
MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之 ...
- MySQL数据库备份详解
原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...
随机推荐
- 【五】安装fcig
安装fcig 安装fcig 此步骤是为了让spawn-fcgi能够识别自定义的demo 编译文件 自定义c文件 测试成功后,启动spawn cgi进行代理托管 此步骤是为了让spawn-fcgi能够识 ...
- helpera64开机bootlogo-BUG
环境: HelperA64开发板 Linux3.10内核 时间:2019.01.12 目标:修改开机bootlogo的BUG 问题: 1.24bit深度的bootlogo.bmp图片会导致Qt5有色差 ...
- 20155322 2016-2017-2 《Java程序设计》 第一周学习总结
20155322 2016-2017-2 <Java程序设计> 第一周学习总结 教材学习内容总结 本周学习内容的主要是: 一.浏览教材,根据自己的理解每章提出一个问题. 在浏览教材后,我提 ...
- 20155323刘威良第二次实验 Java面向对象程序设计
20155323刘威良第二次实验 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 ...
- RHCSA-考前准备
1.考前准备 RHCSA classroom虚拟机和server虚拟机 将两台虚拟机切换到初始化快照 打开虚拟机电源,当出现提示时选择我已移动该虚拟机 系统密码: classroom: root As ...
- MySQL 安装 + Windows7
Window版本 1.下载 http://dev.mysql.com/downloads/mysql/ 2.解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:D:\m ...
- Drupal8 Console 命令行工具
转载:https://yplam.com/post/79 Drupal Console 是面向Drupal 8 的一套命令行工具,用来生成Drupal 8模板代码,并且可以跟Drupal 8应用进行交 ...
- Scrapy爬取美女图片第四集 突破反爬虫(上)
本周又和大家见面了,首先说一下我最近正在做和将要做的一些事情.(我的新书<Python爬虫开发与项目实战>出版了,大家可以看一下样章) 技术方面的事情:本次端午假期没有休息,正在使用fl ...
- javaweb(三十九)——数据库连接池
一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...
- C# 如何使用 RabbitMQ 实现消息收发
本文是基于http://www.cnblogs.com/cheng-lei/articles/7274513.html的项目结构进行搭建的,了解之前请先阅读http://www.cnblogs.com ...