MySQL日志功能详解(1)

MySQL日志:(以下都位全局服务器变量)

MySQL > show global variables like ‘%log%‘;

MySQL 6类日志简单介绍

查询日志:默认为关闭(产生大量写操作) 所有跟查询相关的语句

慢查询日志:查询执行时长超过指定时长的查询,即为慢查询
        (包括查询本身,以及查询所依赖的资源不被允许[表被锁定])

错误日志:跟错误信息相关,以及mysql启动,关闭,主从复制等信息

二进制日志:记录跟修改相关的操作,用来实现复制的凭据(可是实现数据恢复)

中继日志:从服务器上的二进制日志(从主服务器上复制过来的)

事务日志:将随机I/O转换为顺序I/O (事务支持回滚) 
  (查询操作首先在innodb_buffer --> 事务日志 --> 数据文件)
       日志文件组:至少要存在两个,实现轮询(事务日志所在的硬盘要足够可靠)
       
       事务如果在数据库内存中,回滚操作开销很小
       如果数据库内存空间不够,事务会存到事务日志中,回滚开销适中
       如果事务日志也写满,则需要同步到数据文件中,此时回滚操作开销非常大(要删除数据文件中的内容)
       所以:尽可能使用小事务来替代大事务来提升事务引擎的性能

       当一个事务提交后,数据会立即同步到事务日志中去(顺序I/O速度较快)
       此时如果系统崩溃,下次重新启动后,事务日志会将已经提交的数据同步到数据文件中去
       而将未提交的事务进行回滚,使数据恢复到一致性状态 此过程叫做崩溃性恢复

       innodb等支持事务的存储引擎,支持崩溃性恢复
       MyISAM不支持崩溃性恢复

       MySQL > show global variables like ‘innodb%‘;
       ...
       | innodb_log_group_home_dir    ./ |    -->  事务日志存储位置         
       ...

       相对路径都是相对于数据目录

查询日志:

log:{ON|oFF}:是否记录所有语句的日志信息于一般查询日志文件(general_log)

log_output={TABLE|FILE|NONE}

table和file 可以同时出现,用逗号分隔即可

如果设置log_output为table,表的位置为mysql库下的generan_log表

MySQL > show tables in mysql like ‘general_log‘;
        +-------------------------------+
        | Tables_in_mysql (general_log) |
        +-------------------------------+
        | general_log             |
        +-------------------------------+
    general_log:是否启用查询日志
    general_log_file:定义了一般查询日志保存的文件
MySQL > show global variables like ‘log‘;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log           | OFF   |
+---------------+-------+

MySQL > show global variables like ‘log_output‘;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | FILE  |
+---------------+-------+

MySQL > show global variables like ‘general_log‘;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| general_log   | OFF   |
+---------------+-------+

MySQL > show global variables like ‘general_log_file‘;
+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+

慢查询日志

slow_query_log={ON|OFF} (0禁用,1启用) (全局)

是否启用慢查询日志,它的输出位置也取决

log_output={table|file|none}

表名及位置:mysql库下的slow_log表

slow_query_log_file:www-slow.log

定义慢查询日志的文件路名称径及

long_query_time : 10.00000 慢查询的时间

(将某张表锁定,可进行实验,不一定成功)

long_slow_filter:不记录慢查记录(过滤器)

log_slow_queries:会话变量,每个用户可以自己管理

log_slow_verbosity:是否记录详细的信息

log_slow_rate_limit:速率

错误日志:

服务器启动和关闭过程中的信息;

服务器运行过程中的错误信息

事件调度器运行一个事件时产生的信息

在复制架构中的从服务器上启动从服务器线程时产生的信息

log_error = /path/to/error_log_file

log_warnings = {1|0}

是否记录警告信息保存至错误日志中

时间: 2024-12-09 02:53:28

MySQL日志功能详解(1)的相关文章

MySQL日志功能详解查询、慢查询

MySQL日志:大量的IO操作不建议写到文件中 mysql> show global variables like 'innodb%'; mysql> show global variables like '%log%';  general_log                             | OFF   log                                     | OFF [临时开启记录日志] mysql> set global log='ON';

MySQL日志功能详解(2)

二进制日志:(多个线程会争用,可以首先写到缓冲区中) 记录了当前服务器的数据修改和有潜在可能性影响数据修改的语句 默认在数据目录下,通常情况下为mysql-bin     [[email protected] data]# file mysql-bin.000001      mysql-bin.000001: MySQL replication log  复制日志 可以通过mysqlbinlog命令来查看 时间记录 time 偏移位置 position MySQL > show master 

Mysql 日志管理详解

日志对于服务器维护来说是非常重要的,它记录了服务器运行的信息,许多操作都会写入到日志文件,通过日志文件可以了解服务器的运行状态.服务器性能等:对维护人员进行排错,故障处理,优化等提供详细的依据.MySQL中有六种不同类型的日志 一.日志种类 1.错误日志:记录mysql启动,运行或停止时出现的问题信息,一般也会记录警告信息 2.一般查询日志:记录与建立的客户端连接和执行的语句 3.慢查询日志:记录所有执行时间超高long_query_time 的所有查询或不使用索引的查询,可以帮助我们定位服务器

MySQL数据库优化详解(收藏)

MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * from t1;mysql索引 ALTER TABLE用来创建普通索引.UNIQUE索引或PRIMARY KEY索引ALTER TABLE table_name ADD INDEX index_name (column_list)ALTER TABLE table_name ADD UNIQUE (colu

MySQL的binlog详解(转)

MySQL的binlog详解 什么是binlog binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句.语句以"事件"的形式保存,它描述数据更改. binlog作用 因为有了数据更新的binlog,所以可以用于实时备份,与master/slave复制 和binlog有关参数 log_bin 设置此参数表示启用binlog功能,并指定路径名称 log_bin_index 设置此参数是指定二进制索引文件的路径与名称 binlog_

MySQL主从架构详解

1.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收

Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法

Log4J日志配置详解 一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders(输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置. 1.Loggers Loggers组件在此系统中被分为五个级别:DEBUG.INFO.WARN.ERROR和FATAL.这五个级别是有顺序的,DEBUG < INFO < WARN <

(转)MySQL备份原理详解

MySQL备份原理详解 原文:http://www.cnblogs.com/cchust/p/5452557.html 备份是数据安全的最后一道防线,对于任何数据丢失的场景,备份虽然不一定能恢复百分之百的数据(取决于备份周期),但至少能将损失降到最低.衡量备份恢复有两个重要的指标:恢复点目标(RPO)和恢复时间目标(RTO),前者重点关注能恢复到什么程度,而后者则重点关注恢复需要多长时间.这篇文章主要讨论MySQL的备份方案,重点介绍几种备份方式的原理,包括文件系统快照(LVM),逻辑备份工具M

MySQL数据库备份详解

原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据可能也已经被删除了, 我们不能使用从数据库上的数据来恢复主数据库上的数据,只能通过备份进行误删除数据的恢复 一. 备份的分类 1.按备份的结果来分: 逻辑备份 其备份结果为SQL语句,适合于所有存储引擎,恢复时需要较多时间,逻辑备份时,对于MyISAM存储引擎是需要进行锁表操作的,通过使用的mysq