mysql语言几天能学会_离学会Mysql管理你欠缺的有几个日志了解

各位同学,快到五一了,今天Jeson回顾了下Mysql,作为Mysql管理人员,对Mysql的日志了解是极为重要的,甚至会超过数据本身管理。

好了,首先,我列举下,如下这些Mysql我们应该掌握的日志类型,分类整理这些日志的功能上带来的重要性。如下列表:

AAffA0nNPuCLAAAAAElFTkSuQmCC

接下来,Jeson继续详细介绍下这些日志对应的功能和重要性:

AAffA0nNPuCLAAAAAElFTkSuQmCC

1、undo日志(log)

undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。

2、redo日志(log)

当数据库对数据做修改的时候,需要把数据页从磁盘读到buffer pool中,然后在buffer pool中进行修改,那么这个时候buffer pool中的数据页就与磁盘上的数据页内容不一致,称buffer pool的数据页为dirty page 脏数据,如果这个时候发生非正常的DB服务重启,那么这些数据还没在内存,并没有同步到磁盘文件中(注意,同步到磁盘文件是个随机IO),也就是会发生数据丢失,如果这个时候,能够在有一个文件,当buffer pool 中的data page变更结束后,把相应修改记录记录到这个文件(注意,记录日志是顺序IO),那么当DB服务发生crash的情况,恢复DB的时候,也可以根据这个文件的记录内容,重新应用到磁盘文件,数据保持一致。

补充、 Undo + Redo事务的简化过程:

假设有A、B两个数据,值分别为1,2,开始一个事务,事务的操作内容为:把1修改为3,2修改为4,那么实际的记录如下(简化):

A.事务开始.

B.记录A=1到undo log.

C.修改A=3.

D.记录A=3到redo log.

E.记录B=2到undo log.

F.修改B=4.

G.记录B=4到redo log.

H.将redo log写入磁盘。

I.事务提交

3、核心日志类型binlog 日志(log):

作用类似于Oracle的归档日志,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)。

4、主从同步所需要用到的日志binlog、relaylog

relay日志(log):

从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器,从而使从服务器和主服务器的数据保持一致。

5、语句分析日志

Slow 日志(log):

记录所有sql语句执行时间超过long_query_time秒的所有查询或不使用索引的查询。

Query 日志(log):

所有连接到mysql的sql语句,都将记录到该日志文件或表,缺省未开启该日志。

怎么样?同学们不要简单的去看这些介绍:

想一想Mysql为什么会相比其它数据库数据保障性更为可靠?

Mysql的主从模式为什么需要用到Binglog、Relaylo来作?

undo、redo 日志是如何来保障数据库数据强一致性的?

最后五一快到了,Jeson祝大家节日愉快,开心玩耍。来,给这篇文章点个赞吧

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

AAffA0nNPuCLAAAAAElFTkSuQmCC

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值