mysql 日志管理

日志管理:

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;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 日志文件对于一个服务器来说是非常重要的,它记录着服务器的运行信息,许多操作都会写日到日志文件,通过日志文件可以监视...
    时待吾阅读 1,127评论 0 5
  • 日志文件 日志的管理 1.错误日志 作用排查MySQL运行过程的故障配置默认开启默认路径和名字:datadir/h...
    大仙儿没溜儿阅读 300评论 0 0
  • 1.错误日志 1.1 作用 MySQL启动及工作过程中,状态\报错\警告\。 1.2怎么配置? 默认时在datad...
    我要笑阅读 322评论 0 0
  • 日志管理 1.错入日志 1.1:作用 mysql启动及工作过程中,状态/报错/警告。 1.2怎么配置? 1.3如何...
    北疆07阅读 268评论 0 0
  • Mysql日志管理: 介绍:错误日志、二进制日志、慢日志 1、错误日志 配置方式:在配置文件中(my.cnf)中添...
    你好_请关照阅读 242评论 0 0

友情链接更多精彩内容