mysql 日志管理

2020-03-26  本文已影响0人  later02

日志管理:

1.错误日志:

作用:记录mysql从启动以来,所有的状态,警告,错误。

为我们定位数据库问题,提供帮助。

配置方法:

默认:开启状态,datadir 目录下,本机为 /data/3306/

izm5ej125b6mhu0tdhdzy9z.err

定制方法:

vi  /etc/my.cnf 

log_error = /tmp/mysql.log 

重启生效

1.3怎么看错误日志

查看【ERROR】标记的错误

2.binlog 二进制日志

作用:

主要进行数据库变化(DDL,DCL,DML)性质的日志

数据恢复,主从复制中应用,记录的是逻辑日志,(sql语句)

如何配置:

默认:8.0版本以前没有开启。我们建议生产开启

配置方法:

vi /etc/my.cnf 

server_id = 0~65535  #主机编号,主从设置,5.7以后开binlog要设置

log_bin = /data/binlog/mysql-bin #日志位置点+ 日志名前缀

sync_binlog =1  binlog刷盘策略,#双一中的一个一。每次书屋提交立即刷到磁盘

binlog_format = row  #binlog记录的模式为row模式

说明:一定要和数据盘分开

 例如:

/dev/sdb ---->/data/3306

/dev/sdc ----->/data/binlog  

binlog记录内容详解

引入:

binlog是sql层的功能,记录的是变更sql语句,

不记录查询语句。

记录sql语句的种类:

DDL:原封不动的记录当前的DDL( statement方式语句)

DCL:原封不动的记录当前的DCL( statement方式语句)

DML:只记录已经提交的事务DML

DML三种记录方式:

binlog_format(binlog的记录格式)参数影响

1.statement(5.6默认) SBR(statement based replication),语句模式原封不动记录当前DML;

2.ROW模式(5.7默认 推荐),RBR(row based replication) 记录数据行的变化,用户看不懂,需要分析工具。

3.mixed(混合) MBR(mixed based replication) 模式:statement 和row模式的混合

面试题:

SBR与RBR对比

statement:可读性高,日志量少,但是不够严谨

row:可读性很低,日志量大,足够严谨。

例如:遇到插入中执行了带有时间的函数。

statement 时间会获取当前的日志,row记录了之前的具体时间。

所以建议row模式。

even(事件)是什么?

介绍:

二进制日志的最小记录单元

对于DDL,DCL,一个语句就是一个event

对于DML语句来讲:只记录已提交的事务。

例如:以下的列子,就被分为了4个event

       start       stop (position标记号)

begin;  120 - 340 

dml1  340 - 460 

dml2 460 - 550 

commit; 550 - 760 

event的组成 

三部分构成:

1.事件的开始标识

2.事件内容

3.事件的结束标识

position:

开始标识:at 194 

结束标识:end_log_pos 254 

位置号的作用:

为了方便我们截取事件。

binlog的查看

查看是否开启:

查看位置:

文件查看:

二进制日志内置查看命令:

1)查看目前有几个日志文件

mysql> show binary logs;

+------------------+-----------+

| Log_name        | File_size |

+------------------+-----------+

| mysql-bin.000001 |      154 |

+------------------+-----------+

1 row in set (0.00 sec)

2)查看当前在用的日志文件

mysql> show master status;

3)查看二进制日志事件 

 show binlog events in 'mysql-bin.000001';

+------------------+-----+----------------+-----------+-------------+---------------------------------------+

| Log_name        | Pos | Event_type    | Server_id | End_log_pos | Info                                  |

+------------------+-----+----------------+-----------+-------------+---------------------------------------+

| mysql-bin.000001 |  4 | Format_desc    |        6 |        123 | Server ver: 5.7.26-log, Binlog ver: 4 |

| mysql-bin.000001 | 123 | Previous_gtids |        6 |        154 |                                      |

+------------------+-----+----------------+-----------+-------------+---------------------------------------+

以上是正常的头格式:

执行语句:

mysql> create database oldguo charset utf8mb4;

上一篇 下一篇

猜你喜欢

热点阅读