- 浏览: 498239 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (335)
- VM (2)
- python 基础 (78)
- C (7)
- php (38)
- django (8)
- c++ (1)
- python 服务端编程 (21)
- ubuntu (1)
- linux (26)
- mysql (24)
- 缓存管理 (5)
- nginx (4)
- linux 命令行 (16)
- web (8)
- javascript (8)
- python 模块 (3)
- java (6)
- 面试题 (2)
- tornado (1)
- 运维 (10)
- 网络编程 (0)
- svn (5)
- css (1)
- mongodb (3)
- vim (8)
- infobright (1)
- shell (1)
- 算法 (2)
- redis (1)
最新评论
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启动,运行,关闭过程进程了记录,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中OPTIMIZE TABLE的作用
2014-09-15 13:54 8571、先来看看多次删除插入操作后的表索引情况 mysql&g ... -
mysqld和mysqld_safe 有什么区别
2014-09-10 15:01 836直接运行mysqld程序来启动MySQL服务的方法很少见,my ... -
【转】sql where 1=1和 0=1 的作用
2014-07-24 17:32 833http://www.cnblogs.com/junyuz/ ... -
对mysql explain讲的比较清楚的
2014-06-21 21:10 669http://www.blogjava.net/persis ... -
mysql 查询的时候设置时区
2014-05-14 10:12 1007set time_zone = '-8:00'; -
OLTP, OLAP
2014-04-13 11:27 735OLTP :在线事务处理, 如blog ,电子商务,网络游戏 ... -
mysql UNIX时间戳与日期的相互转换
2014-02-25 16:07 712UNIX时间戳转换为日期用函数: FROM_UNIXTIME ... -
linux下MySQL安装及设置
2014-02-20 21:17 925转自:http://www.en ... -
MySQL的Grant命令
2014-02-20 21:16 740转:http://yingxiong.iteye.com/ ... -
mysql中int(10)代表什么意思
2014-02-20 09:48 992int(M) 在 integer 数据类型中,M 表示最大显示 ... -
mysql 客户端乱码
2014-01-22 17:59 809数据库表的编码为utf-8,查询数据库,客户端汉字显示 ... -
linux mysql的安装
2014-01-18 19:23 8011.直接用该命令可以安装Mysql的服务器端跟客户端,后面 ... -
mysqldump备份 直接输入密码
2014-01-16 16:55 836mysqldump备份,一次直接输入密码,-p(大写的P表示 ... -
mysql-devel的包是干什么用的
2013-11-29 11:37 2423主要是供自己写C程序用的头文件和静态链接库,如果不作C开发,可 ... -
【转】Mysql MERGE引擎简介
2013-11-16 00:21 960http://blog.csdn.net/qmhball/a ... -
mysql 备份操作
2013-11-11 16:23 716备份的分类: 1. hot backup 热备份 hotba ... -
【转】MySQL体系结构
2013-11-07 18:29 807http://www.cnblogs.com/yjf512/a ... -
(查询结果合并) union和union all 的使用
2013-11-07 12:14 806原文地址: http://www.cnblogs.com/qi ... -
数据库索引
2013-09-12 14:51 875索引是一个独立的物理的数据库结构,它是某个表中的一列或者多列 ... -
MySQL 数据类型 详解
2013-09-12 14:21 641数值类型 MySQL 的数值数据类型可以大致划分为 ...
相关推荐
MySQL日志文件在数据库管理中扮演着至关重要的角色,它们记录了数据库的各种操作,帮助管理员监控、诊断问题以及实现数据恢复。以下是对MySQL日志类型的详细解释和使用方法: 1. **错误日志(The error log)**:这...
MySQL日志文件是数据库管理的重要组成部分,它们记录了MySQL服务器的各种操作,有助于故障排查、数据恢复和性能优化。本文将详细介绍MySQL的日志类型、配置方法以及如何查看和使用这些日志。 1. MySQL日志类型: -...
使用Kettle获取MySQL日志文件名称
MySQL日志文件是数据库管理系统中不可或缺的一部分,它们记录了数据库操作的详细信息,对于故障排查、数据恢复和性能优化都至关重要。以下是对不同类型的MySQL日志文件的详细说明: 1. 错误日志(Error Log):错误...
在这个“日志文件解析MySQL版”的资源包中,提供了JAVA源代码、可执行jar文件、日志文件样例以及MySQL建表脚本,这将帮助我们构建一个完整的日志分析系统,以下将详细介绍其中涉及的知识点。 首先,**JAVA日志解析*...
MySQL日志文件是数据库系统用来记录各种操作的重要组件,它对于数据库的监控、故障排查以及数据恢复至关重要。MySQL中的日志文件通常包含错误日志、查询日志、二进制日志等多种类型。 1. **错误日志**(Error Log)...
### MySQL日志分析详解 #### 一、引言 MySQL作为一种广泛使用的开源关系型数据库管理系统,在维护数据库稳定性与性能方面发挥着至关重要的作用。...希望本文能够帮助读者更好地理解和运用MySQL日志文件。
MySQL日志文件是数据库管理的关键元素,它们提供了对数据库操作的详细记录,有助于故障排查、性能优化和数据恢复。MySQL支持多种类型的日志文件,包括: 1. **错误日志 (Error Log)**:错误日志记录了MySQL服务器...
删除通用查询日志可以直接删除日志文件,或者重新建立新的通用查询日志文件。 慢查询日志 慢查询日志记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。启动和设置慢查询日志可以通过配置文件...
基于 MySQL 日志消费客户端是一种用于处理 MySQL 数据库的日志文件的软件。它可以帮助用户实时监控数据库的状态,自动捕获和处理数据库的异常情况,从而提高数据库的可靠性和稳定性。 MySQL 日志消费客户端的主要...
本文将详细介绍四种清理MySQL日志的方法,并提供具体的实施步骤和注意事项。 #### 方法一:使用 PURGE MASTER LOGS 命令 **语法**: ```sql PURGE {BINARY | MASTER} LOGS {TO 'log_name' | BEFORE datetime_expr}...
mysql log 学习
#### 一、MySQL日志文件类型 MySQL提供了多种日志文件来帮助DBA监控系统运行状态以及进行故障排除,具体包括以下几种: 1. **错误日志(Error Log)**:记录MySQL服务器启动、运行或关闭过程中发生的任何问题,是...
包含下列主题:mysql 日志文件,使用mysqld 加相应选项来启用某种日志。Mysql完全备份及恢复:mysqldump 对MyISAM 或InnoDB 完全备份,mysqlhotcopy 对MyISAM 完全备份。增量备份:使用二进制日志增量备份,使用...
使用cat命令查看mysql日志文件,获取初始密码。 配置mysql服务 创建mysqld服务文件,并配置mysql服务的启动项,包括端口号、数据目录、日志文件等。使用systemctl命令重新加载服务配置文件。 创建mysql命令软链接...