`

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设置的太小了。










分享到:
评论

相关推荐

    mysql日志文件的使用.docx

    MySQL日志文件在数据库管理中扮演着至关重要的角色,它们记录了数据库的各种操作,帮助管理员监控、诊断问题以及实现数据恢复。以下是对MySQL日志类型的详细解释和使用方法: 1. **错误日志(The error log)**:这...

    mysql日志文件的使用.pdf

    MySQL日志文件是数据库管理的重要组成部分,它们记录了MySQL服务器的各种操作,有助于故障排查、数据恢复和性能优化。本文将详细介绍MySQL的日志类型、配置方法以及如何查看和使用这些日志。 1. MySQL日志类型: -...

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

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

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

    MySQL日志文件是数据库管理系统中不可或缺的一部分,它们记录了数据库操作的详细信息,对于故障排查、数据恢复和性能优化都至关重要。以下是对不同类型的MySQL日志文件的详细说明: 1. 错误日志(Error Log):错误...

    日志文件解析MySQL版

    在这个“日志文件解析MySQL版”的资源包中,提供了JAVA源代码、可执行jar文件、日志文件样例以及MySQL建表脚本,这将帮助我们构建一个完整的日志分析系统,以下将详细介绍其中涉及的知识点。 首先,**JAVA日志解析*...

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

    MySQL日志文件是数据库系统用来记录各种操作的重要组件,它对于数据库的监控、故障排查以及数据恢复至关重要。MySQL中的日志文件通常包含错误日志、查询日志、二进制日志等多种类型。 1. **错误日志**(Error Log)...

    MySQL日志分析(包括工具)

    ### MySQL日志分析详解 #### 一、引言 MySQL作为一种广泛使用的开源关系型数据库管理系统,在维护数据库稳定性与性能方面发挥着至关重要的作用。...希望本文能够帮助读者更好地理解和运用MySQL日志文件。

    MySQL日志文件详解

    MySQL日志文件是数据库管理的关键元素,它们提供了对数据库操作的详细记录,有助于故障排查、性能优化和数据恢复。MySQL支持多种类型的日志文件,包括: 1. **错误日志 (Error Log)**:错误日志记录了MySQL服务器...

    MySQL数据库日志管理.ppt

    删除通用查询日志可以直接删除日志文件,或者重新建立新的通用查询日志文件。 慢查询日志 慢查询日志记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。启动和设置慢查询日志可以通过配置文件...

    阿里开发的,基于mysql日志消费客户端.zip

    基于 MySQL 日志消费客户端是一种用于处理 MySQL 数据库的日志文件的软件。它可以帮助用户实时监控数据库的状态,自动捕获和处理数据库的异常情况,从而提高数据库的可靠性和稳定性。 MySQL 日志消费客户端的主要...

    mysql删除日志方法.docx

    本文将详细介绍四种清理MySQL日志的方法,并提供具体的实施步骤和注意事项。 #### 方法一:使用 PURGE MASTER LOGS 命令 **语法**: ```sql PURGE {BINARY | MASTER} LOGS {TO 'log_name' | BEFORE datetime_expr}...

    mysql日志.txt

    mysql log 学习

    MySQL DBA之精通日志管理

    #### 一、MySQL日志文件类型 MySQL提供了多种日志文件来帮助DBA监控系统运行状态以及进行故障排除,具体包括以下几种: 1. **错误日志(Error Log)**:记录MySQL服务器启动、运行或关闭过程中发生的任何问题,是...

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

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

    Centos7安装mysql8.0压缩包.docx

    使用cat命令查看mysql日志文件,获取初始密码。 配置mysql服务 创建mysqld服务文件,并配置mysql服务的启动项,包括端口号、数据目录、日志文件等。使用systemctl命令重新加载服务配置文件。 创建mysql命令软链接...

Global site tag (gtag.js) - Google Analytics