MySQL日志设置双1_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}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值