mysql log

一、general query log

1、简介

general query log会记录客户端的连接与断开,以及收到的每一个sql语句。

2、相关配置

  • log_output:指定general_log和slow_query_log的输出形式,可以是table或file,或者两者皆有

  • general_log:控制开关

  • general_log_file:指定输出文件,如果不指定,则默认为$(hostname).log。

3、日志管理

如果想要重命名文件,运行以下命令:

mv host_name.log host_name_bak.log
mysqladmin flush-logs general
mv host_name_bak.log backup_dir

二、slow query log

1、简介

slow query log包含满足设定的“慢”条件的查询(也可包含管理)语句。

2、配置

  • log_output:指定general_log和slow_query_log的输出形式,可以是table或file,或者两者皆有

  • slow query log:控制开关

  • slow_query_log_file:指定输出文件

  • 慢日志查询由执行时间超过long_query_time,至少检查min_examined_row_limit行的查询组成

  • log_queries_not_using_indexes:配置是否记录不使用索引进行查找的查询,默认不记录。

  • log_slow_admin_statements:配置是否记录管理语句,默认不记录。

3、日志管理

mysqldumpslow解析MySQL慢日志文件并总结其内容:

-s sort_type:指定输出的排序规则
    t,at:按查询时间或平均查询时间排序
    l,al:按锁时间或平均锁时间排序
    r,ar:按发送的行数或平均行数排序
    c:按数量排序
-t N:仅输出前N个查询
#输出示例
Reading mysql slow query log from /usr/local/mysql/data/mysqld80-slow.log
Count: 1  Time=4.32s (4s)  Lock=0.00s (0s)  Rows=0.0 (0), root[root]@localhost
 insert into t2 select * from t1

Count: 3  Time=2.53s (7s)  Lock=0.00s (0s)  Rows=0.0 (0), root[root]@localhost
 insert into t2 select * from t1 limit N

Count: 3  Time=2.13s (6s)  Lock=0.00s (0s)  Rows=0.0 (0), root[root]@localhost
 insert into t1 select * from t1

三、binary log

1、简介

二进制日志包含描述数据库更改(如表结构和数据的更改)的事件,也包含可能导致更改的语句的事件(例如没有删除任何数据的delete语句,除非是ROW格式)。二进制日志还包含每条语句花费的时间。

二进制日志可用于以下场景:

  • 主从复制,用于数据更改的的记录源,发给从服务器;

  • 数据恢复,恢复备份后,需要重新执行记录之后的bin log中的内容

2、配置

  • binlog_format:指定bin log的格式,可为STATEMENT(基于语句)、ROW(基于行,默认)和MIXED(混合)。如果你正在使用InnoDB表,并且事务隔离级别是READ COMMITTED或READ UNCOMMITTED,那么只能使用基于行的日志记录。

  • log_bin:binary log开关,默认开启

  • log_bin_basename:指定bin log文件的前缀,如果不指定则文件前缀为$(hostname)-bin。日志滚动的条件包括日志刷新、重启服务、当前文件大于max_binlog_size大小。

  • max_binlog_size:如果当前binary log的文件大小大于该值,则自动进行滚动。

  • log_bin_index:bin log的索引文件名。

  • binlog_encryption:为binary log和中继日志文件加密

  • binlog_cache_size:事务处理时,缓存事务语句的大小

  • max_binlog_cache_size:缓存事务语句的缓存最大总大小

  • sync_binlog:每次写入日志时是否都进行磁盘刷新

监控

  • binlog_cache_use:缓存区存储语句的事务数

  • binlog_cache_disk_use:多少事务使用了磁盘临时文件

3、日志管理

日志滚动:mysqladmin flush-log binary

删除旧文件:PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr }

error log

四、error log

1、简介

error log包含mysqld启动和关闭时间的记录,还包含服务器启动和关闭期间以及服务器运行期间发生的错误、警告和注意事项等诊断消息。

error log也可以配置为向table写入,及performance_schema.error_log表(从8.0.22开始),表实现使用固定大小的内存中环形缓冲区,必要时自动丢弃旧事件,为新事件腾出空间。

2、配置

log_error:没有指定的话,会输出到console;如果设置,但没有指定值,则输出到默认值host_name.err;如果指定值,则输出到对应的文件。

Error_log_buffered_bytes:error_log表的大小

Error_log_buffered_events:error_log表中的事件数量

Error_log_expired_events:表中丢弃的事件数量

Error_log_latest_write:上一次写表的时间

五、日志管理

1、日志备份

redhat平台下,可以直接使用mysql-log-rotate进行日志回滚;

2、日志刷新

flush log操作会产生如下影响:

  • binary log:关闭现有文件,创建一个新的文件并打开

  • error log:关闭文件,然后打开

  • general log:关闭文件,然后打开

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值