`

mysql 日志文件

 
阅读更多
1.错误日志文件
该文件记录了mysql启动,运行,关闭过程进程了记录,mysql dba在遇到问题时应该首先查看该文件,该文件不但记录了错误信息,也记录了一些警告信息或者不正确的信息。通过命令

mysql> show variables like 'log_error';
+---------------+-------------------------------------------------+
| Variable_name | Value                                           |
+---------------+-------------------------------------------------+
| log_error     | /home/service/mysql/data/var/hs_test_42.com.err |
+---------------+-------------------------------------------------+

hs_test_42.com 为主机名,通过hostname命令可以查看



2.慢查询日志
慢查询功能为sql语句优化带来了很好的帮助,可以设置一个阀值,将运行时间超过该值的所有sql语句都记录在慢查询日志文件中,该阀值可以通过long_query_time来设置,默认为10秒

默认情况下,mysql数据库并不启动慢查询日志,需要手工将这个参数设置为on,然后启动。

mysql> show variables like '%long%';
+---------------------------------------------------+----------+
| Variable_name                                     | Value    |
+---------------------------------------------------+----------+
| long_query_time                                   | 10.000000 |


ysql> show variables like 'log_slow_queries';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| log_slow_queries | OFF   |


从mysql5.1开始,long_query_time开始以微妙记录sql语句运行的时间,之前仅用秒为单位,这样可以更精确的记录sql运行时间。


另一个和慢查询有关的参数是log_queries_not_using_indexes,如果运行的sql语句没有使用索引,则mysql数据库同样会将这条语句记录到慢查询日志中去,查看是否打开了show variables like 'log_queries_not_using_indexes。

mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
+-------------------------------+-------+


mysql服务器运行的时间越长,会有更多的慢查询日志,mysql提供命令mysqldumpslow,更容易分析该文件。


查看锁定时间最长的10条sql语句:
@hs_test_42:/home/service/mysql/data]$/usr/local/mysql/bin/mysqldumpslow  -s al -n 10 david.log


从mysql5.1开始可以将慢查询的日志记录放入表slow_log中。
show create table mysql.slow_log;


参数log_output指定了慢查询的输出格式,默认为FILE,你可以设定为TABLE,然后就可以查询mysql框架下的slow_log表了。
mysql> show variables like 'log_output';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | FILE  |
+---------------+-------+

设置输出格式为TABLE
set global log_output='TABLE';


测试一下:
select sleep(10);


log_output 是动态的,并且是全局的,可以在线修改。


3.查询日志
查询日志记录了所有对mysql数据库请求的信息,不论这些请求是否得到了正确的执行。默认文件名为:主机名.log
同样从mysql5.1开始,可以将查询日志的记录放入mysql架构下的general_log表,该表的使用方法和slow_log基本一样。



4.二进制日志
二进制日志记录了对数据库执行更改的所有操作,但是不包括select,和show这类操作,因为这类操作队数据本身并没有修改。二进制还包括了执行数据库更改操作的时间和执行时间等信息。

二进制日志文件主要有一些作用:
1. 恢复(recovery)  某些数据的恢复需要二进制日志,如当一个数据库全备文件恢复后,我们可以通过二进制日志进行point-in-time的恢复。

2. 复制(replication) 其原理与恢复类似,通过复制和执行二进制日志使得一台远程的mysql数据库(一般称为salve或者standby)与一台Mysql数据库(一般称为master或者primary)进行实时同步。


通过配置参数log-bin[=name] 可以启动二进制日志,如果不指定name,则默认二进制日志文件名为主机名,后缀名为二进制日志的序列号,所在路径为
mysql> show variables like 'datadir';
+---------------+-------------------------------+
| Variable_name | Value                         |
+---------------+-------------------------------+
| datadir       | /home/service/mysql/data/var/ |
+---------------+-------------------------------+


bin_long.index为二进制索引文件,用来存储过往生成的二进制日志序列号。


二进制日志文件在默认情况下是没有启动的,需要手动的指定参数来启动,开启这个是对性能有影响,根据mysql的测试表明,开启日志是性能降低1%。



以下配置影响着二进制日志记录的信息和行为:

1> max_binlog_size

指定单个二进制日志文件的最大值,如果超过该值,则产生新的二进制日志文件,后缀名+1,并且记录到.index文件。mysql5.0开始默认为1GB。

2>binlog_cache_size

当使用事务表的存储引擎(如InnoDB存储引擎)时,所有未提交的二进制日志会被记录到一个缓存中,等该事务 提交时直接将缓存中的二进制日志写入二进制日志文件,而该缓存的打掉由binlog_cache_size决定,默认为32KB,此外binlog_cache_sizes是基于会话的,也就是说,当一个线程开始一个事务时,mysql会自动的分配一个大小为binlog_cache_size的缓存,因此该值的设置需要相当的小心,不能设置过大。当一个事务的记录大于设定的binlog_cache_size时,mysql会把缓存中的日志写入一个临时文件,因此该值不能太小。通过查看binlog_cache_disk_use ,binlog_cache_use 的状态,判断当前的binlog_cache_size设置是否合适。
Binlog_cache_use记录了使用缓存写二进制日志的次数
binlog_cache_disk_use 记录了使用临时文件写二进制日志的次数。

如果binlog_cache_disk_use使用次数过多,说明binlog_cache_size设置的太小了。










分享到:
评论

相关推荐

    使用Kettle获取MySQL日志文件名称

    使用Kettle获取MySQL日志文件名称

    mysql日志文件在哪 如何修改MySQL日志文件位置

    MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考。 今天需要改MySQL日志文件的位置,发现在/etc/my.cnf中怎么也改不了。 后来...

    MySQL日志文件详解

    MySQL日志文件分类 1.错误日志(Error Log) 2.二进制日志(Binary Log & Binary Log Index) 3.通用查询日志(query log) 4.慢查询日志(slow query log) 5.Innodb的在线 redo 日志(innodb redo log) 6.更新日

    日志文件解析MySQL版

    日志文件解析MySQL版。将日志文件解析,分析统计并存入数据库。 资源包含JAVA源代码、可执行jar文件、日志文件样例、MySQL建表脚本。

    Mysql日志文件和日志类型介绍

    MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 记入文件中的信息类型 错误日志 记录启动、运行或停止mysqld时出现的问题。 查询日志 记录建立的客户端连接和执行的...

    mysql日志文件的使用.pdf

    ...

    mysql日志文件的使用.docx

    。。。

    mysql日志.txt

    mysql log 学习

    MySQL数据库:数据库日志管理.pptx

    MySQL日志文件类型 日志文件 日志文件 数据库日志管理 启用日志 二进制日志可以在启动服务器的时候启用,这需要修改C:\Program Files\MySQL文件夹中的my.ini选项文件。打开该文件,找到[mysqld]所在行,在该行后面...

    MySQL数据库日志管理.ppt

    MySQL数据库日志管理.ppt

    MySQL备份与恢复实战(PDF版)

    包含下列主题:mysql 日志文件,使用mysqld 加相应选项来启用某种日志。Mysql完全备份及恢复:mysqldump 对MyISAM 或InnoDB 完全备份,mysqlhotcopy 对MyISAM 完全备份。增量备份:使用二进制日志增量备份,使用...

    MySql 5.1 参考手册.chm

    5.11. MySQL日志文件 5.11.1. 错误日志 5.11.2. 通用查询日志 5.11.3. 二进制日志 5.11.4. 慢速查询日志 5.11.5. 日志文件维护 5.12. 在同一台机器上运行多个MySQL服务器 5.12.1. 在Windows下运行多个服务器 5.12.2....

    MySQL 5.1参考手册

    5.11. MySQL日志文件 5.11.1. 错误日志 5.11.2. 通用查询日志 5.11.3. 二进制日志 5.11.4. 慢速查询日志 5.11.5. 日志文件维护 5.12. 在同一台机器上运行多个MySQL服务器 5.12.1. 在Windows下运行多个服务器 ...

    精通MySQL日志管理

    精通MySQL日志管理,这对处理故障与优化太关键了

    MySQL 5.1中文手冊

    5.11. MySQL日志文件 5.11.1. 错误日志 5.11.2. 通用查询日志 5.11.3. 二进制日志 5.11.4. 慢速查询日志 5.11.5. 日志文件维护 5.12. 在同一台机器上运行多个MySQL服务器 5.12.1. 在Windows下运行多个服务器 5.12.2....

    MySQL日志分析(包括工具)

    介绍MySQL数据库的一套日志纪录文件,可分为4种日志——错误日志、二进制日志、查询日志和慢查询日志。 以及4种日志的作用

    MySQL 5.1官方简体中文参考手册

    5.11. MySQL日志文件 5.11.1. 错误日志 5.11.2. 通用查询日志 5.11.3. 二进制日志 5.11.4. 慢速查询日志 5.11.5. 日志文件维护 5.12. 在同一台机器上运行多个MySQL服务器 5.12.1. 在Windows下运行多个服务器 5.12.2....

Global site tag (gtag.js) - Google Analytics