mysql-日志管理

一、mysql日志文件的作用

1、能记录物理数据页面的修改的信息;

2、能将数据从逻辑上恢复至事务之前的状态;

3、能以二进制文件的形式记录了数据库中的操作;

4、能记录错误的相关信息;

5、能从主服务器中二进制文件取的事件等等。

image

普通日志

记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来 ,记录的格式为 {Time ,Id ,Command,Argument }。

也正因为mysql服务器需要不断地记录日志,开启General log会产生不小的系统开销。 因此,Mysql默认是把General log关闭的。
mysql> show variables like 'general_log%';
+------------------+---------------------------------------+
| Variable_name    | Value                                 |
+------------------+---------------------------------------+
| general_log      | OFF                                   |
| general_log_file | /www.yuchaoit.cn/mysql_3306/db-51.log |
+------------------+---------------------------------------+
2 rows in set (0.01 sec)
可以开启该功能,命令临时修改
mysql> set global general_log = on;
Query OK, 0 rows affected (0.00 sec)

mysql> set global general_log = on;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'general_log%';

# 永久配置,则写入my.cnf即可
对于普通日志的功能,一般都是关闭的,查询日志的信息量很大,网站用户的海量请求,日志频繁写入,对于磁盘的IO影响很大。

但是对于网访问量不大,并且企业对于SQL审计要求较高,可以开启该功能。

二进制日志binlog

binlog是记录数据库被修改的SQL语句,对数据造成影响了。

一般是DDL和DML语句,包含
insert
update
delete
create
drop
alter
等关键字

作用

记录mysql数据的增量数据,且用来做增量数据恢复,前面超哥已经完整的讲过、全量备份、增量备份的区别,如果不开启binlog,将无法恢复完整的数据。

以及用在主从数据复制

慢查询日志

慢查询日志(slow query log)用于记录执行时间拆过指定值(long_query_time)或者没有使用索引、结果集大于1000行的SQL语句。

image

posted @ 2023-10-27 14:16  村尚chun叔  阅读(9)  评论(0编辑  收藏  举报