MySQL日志概述
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。
http://www.cnblogs.com/shijiaqi1066/p/3859866.html
MySQL常用日志
错误日志:--log-err 记录启动,运行,停止mysql时出现的信息。
二进制日志:--log-bin 记录所有更改数据的语句,还用于复制,恢复数据库用。
查询日志:--log 记录建立的客户端连接和执行的语句。
慢查询日志:--log-slow-queries 记录所有执行超过long_query_time秒的所有查询。
更新日志:--log-update 二进制日志已经代替了更新日志,更新日志在MySQL 5.1中不再使用。
查看系统日志的相关配置信息
命令:show global variables like '%log%';
选项说明:
log:表示查询日志与慢查询日志是否开启。是一个总开关。
log_output:日志的存储方式,以FILE或以TABLE存储日志。
general_log:表示查询日志是否开启。
general_log_file:/mydata/data/mysql.log
这些值都可以使用SET语句临时修改。若需要需要永久生效,则只需要修改配置文件中的变量。
错误日志
MySQL一般默认开启了错误日志。
错误日志的记录的信息内容:
- 服务器启动和关闭过程中的信息。
- 服务器运行过程中的错误信息。
- 事件调度器运行一个事件时产生的信息。
- 在从服务器上启动从服务器进程时产生的信息。
日志一般位于数据目录下datadir 。错误日志的名称一般为 主机名.err 。
错误日志的配置
- log-error :是否启用错误日志。
- log-warnings:是否启用警告日志。
二进制日志
记录修改数据或有可能引起数据改变的MySQL语句。
日志的位置
使用--log-bin=[file_name]选项启动时,mysqld开始将数据变更情况写入日志文件。没有指定file_name值,默认名为主机名后跟“-bin”。若给出了文件名,但没包含路径,则问默认写入datadir指定的目录中。
日志的格式
MySQL5.5 中,二进制日志格式分为三种,通过--binlog-format设置:
STATEMENT
MySQL5.1 之前的版本都采用这种方式,日志中记录的都是语句。mysqlbinlog工具,可以清晰地看到每条语句的文本。这种格式的优点是日志记录清晰易读,日志量少,对IO影响小。缺点是在某些情况下slave的日志复制会出错。
ROW
MySQL 5.1.11之后,出现了这种新的日志格式。它将每一行的变更记录到日志中,而不是记录SQL语句。这种格式的优点是会记录每一行数据的变化细节,不会出现无法复制。缺点是日志量,对IO影响大。
MIXED
目前MySQL默认的日志格式。该格式混合了STATEMENT和ROW两种日志,避免两种各自的缺点,尽可能利用了两种的优点。默认情况下采用STATEMENT,特殊情况下使用ROW。
- 使用了DML语句。
- 使用了临时表。
- 使用了UUID()、USER()、CURRENT_USER()、FOUND_ROWS()、ROW_COUNT()等不确定函数。这种函数在主从中的值不一定相同。
- 表的存储引擎为NDB,这时对于表的DML操作都会以ROW格式记录。
- 使用了INSERT DELAY语句。
- 使用了用户定义函数。
日志的读取
使用mysqlbinlog命令读取二进制日志。
日志的删除
对于OLTP系统,每条会生成大量的二进制日志。日志若长时间不清楚会浪费很大的磁盘空间。所以需要定期的清理二进制日志。
方法1
命令:RESTART MASTER;
该命令会删除所有的binlog日志。新日志编号重新从“000001”开始。
方法2
命令:PURGE MASTER LOGS TO 'mysql-bin.******';
该命令删除“******”编号之前所有的日志。
方法3
命令:PURGE MASTER LOGS BEFORE 'yyyy-mm-dd hh24:mi:ss';
该命令删除日志为“yyyy-mm-dd hh24:mi:ss”之前的所有日志。
方法4
设置参数expire_logs_days = # ,此参数的含义是设置日志的过期天数,过了指定的天数后,日志将会被自动删除,这样有利于DBA管理日志的工作量。
其他选项
--binlog-do-db=db_name
告诉主服务器,如果当前的数据库(即USE选定的数据库)是db_name,应将更新记录到二进制日志中。其它所有没有明显指定的数据库被忽略。
--binlog-ignore-db=db_name
告诉主服务器,如果当前的数据库(即USE选定的数据库)是db_name,不将更新保存到二进制日志中。
若数据库启动时使用选项--binlog-do-db=DB_A,使用语句“use DB_B”置DB_B为当前数据库,此时使用update语句修改DB_A的表数据时出现如下情况:
- 数据库DB_B不在允许binlog的列表内,该语句不写入二进制日志文件。
- 数据库DB_B在允许binlog的列表内,该语句写入二进制日志文件。
查询日志
MySQL默认不启用查询日志。查询日志不光会记录查询语句,同样也会增删改有相应记录。由于日志量非常大,浪费磁盘IO,所以一般不建议开启。
查询日志的格式是纯文本的,可以直接读取。
慢查询日志
慢查询日志可以记录长时间的查询。慢查询默认是关闭的,由于慢查询日志对系统性能的问题很有帮助,所以建议开启,并经常查看。
慢查询的时长,不是光指的是sql语句的查询时间。是从查询启动开启到结束的时长,任何因为阻塞而导致时间也会包含在内。例:因为表锁而导致sql语句超时。
有关慢查询日志功能的相关参数说明:
log-slow-queries
指定日志文件存放位置,该目录文件一定要有写的权限。可以不用设置,系统会给一个缺省的文件host_name-slow.log
long_query_time
SQL执行时间阈值,慢查询的单位为秒,可以精确到微秒。10.000000表示10秒整。
打开mysql的慢查询日志很简单,只需要在mysql的配置文件里的[mysqld]下面加上
log-slow-queries=mysql_slow.log
long_query_time=
慢查询日志用来收集那些花费太长时间(超过指定时间)执行的SQL语句,该指定时间由long_query_time服务器变量设定。
--log-slow-queries[=file_name]选项启动慢查询日志。如果没有给出file_name值,默认未主机名,后缀为“-slow.log”;如果给出文件名,但不是绝对路径名,文件则写入数据目录。
查询慢查询日志相关的常量
命令:show global variables like '%slow%';
若slow_query_log和log_slow_queries显示为on,那说明服务器的慢查询日志已经开启了。
slow_launch_time跟慢查询日志没有任何关系, 它代表的是thread create的一个阈值。
查询慢查询日志的阈值
命令:show global variables like 'long_query_time';
使用mysqldumpslow命令可以快速定位系统的SQL瓶颈。
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。
http://www.cnblogs.com/shijiaqi1066/p/3859866.html
MySQL日志概述的更多相关文章
- mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...
- 【第六章】MySQL日志文件管理
1.日志文件管理概述: 配置文件:/etc/my.cnf 作用:MySQL日志文件是用来记录MySQL数据库客户端连接情况.SQL语句的执行情况以及错误信息告示. 分类:MySQL日志文件分为4种:错 ...
- MySQL 日志初探
目录 MySQL 日志初探 零.概述 一.Error Log(错误日志) 二.General Query Log(通用查询日志) 三.Slow Query Log (慢查询日志) 四.Binary L ...
- Mysql日志解析
修改Mysql配置 Mysql配置地址为: C:\Program Files (x86)\MySQL\MySQL Server 5.5 如果无法修改可以把my.ini拷贝出来,修改完后,再拷贝回去! ...
- Mysql 日志 (转)
MySQL日志: 主要包含:错误日志.查询日志.慢查询日志.事务日志.二进制日志: 错误日志 在mysql数据库中,错误日志功能是默认开启的.并且,错误日志无法被禁止.默认情况下,错误日志存储在mys ...
- mysql日志与备份恢复
一.mysql日志: mysql的日志种类有很多,常见的有二进制日志,一般查询日志,满查询日志,中继日志,事务日志等,具体信息可以通过 mysql> SHOW GLOBAL VARIABLES ...
- mysql日志开启和查看
mysql日志开启和查看. 找到mysql根目录下的my.ini文件,打开在下面插入 log-bin=mysql-bin binlog_format=mixed 然后重启mysql. 在dos端登录m ...
- MySQL日志管理
MySQL日志管理 2013年09月26日 ⁄ MySQL ⁄ 共 14266字 ⁄ 评论数 ⁄ 被围观 , views+ 一.日志类型: MySQL有几个不同的日志文件,可以帮助你找出mysqld内 ...
- Mysql日志操作
Mysql日志 mysql的日志类型:错误日志: -log-err记录mysql服务的启动.运行.停止mysql服务时出现的问题查询日志: -log记录建立的客户端连接和执行的语句慢查询日志: -lo ...
随机推荐
- pageControl设置不居中显示,居左或居右
UIPageControl控件,默认是居中显示的,如下图: 在很多的APP中,会看到pageControl是居左或居右显示的,如下图: 如何控制pageControl的位置显示呢? 设置为居右的代 ...
- bzoj 2226: [Spoj 5971] LCMSum 数论
2226: [Spoj 5971] LCMSum Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 578 Solved: 259[Submit][St ...
- Silicon Labs电容式触摸感应按键技术原理及应用
市场上的消费电子产品已经开始逐步采用触摸感应按键,以取代传统的机械式按键.针对此趋势,Silicon Labs公司推出了内置微控制器(MCU)功能的电容式触摸感应按键(Capacitive Touch ...
- linux No manual entry for
我的博客:www.while0.com 原来除了安装man,还要安装man-pages. yum install man -y yum install man-pages -y
- Linux 关机命令 重启命令
Linux centos重启命令: 1.reboot2.shutdown -r now 立刻重启(root用户使用)3.shutdown -r 10 过10分钟自动重启(root用户使用)4.shut ...
- Robotium跨应用处理方法
相信用过一段时间Robotium的同学一般都遇到过如下情况:界面跳转到被测程序外以后,Robotium就毫无对策了,这也是Instrumentation框架最致命的一个缺点;然而领导是不会管你这些很“ ...
- Ubuntu 桌面歌词
Ubuntu 有个用来显示歌词软件叫 osd-lyrics. 这个软件的强大之处在于他可以和各种播放器配合, 并且可以自动下载歌词. 自从升级到14.04后不能用了,便以为该软件被废弃了. 无意中发现 ...
- PHP Sessions子系统会话固定漏洞
漏洞名称: PHP Sessions子系统会话固定漏洞 CNNVD编号: CNNVD-201308-193 发布时间: 2013-08-22 更新时间: 2013-08-22 危害等级: 中危 漏 ...
- 通过ComponentName获取相应的Widget
最近在锁屏上研究,如果预置widget,研究了好久,终于找到方法了,先上代码: private int getAppWidgetFromComName(ComponentName providerCo ...
- HDOJ 1013题Digital Roots 大数,9余数定理
Problem Description The digital root of a positive integer is found by summing the digits of the int ...