摘要:本文主要向大家介绍了MySQL数据库之离学会Mysql管理你欠缺的有几个日志了解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。
本文主要向大家介绍了MySQL数据库之离学会Mysql管理你欠缺的有几个日志了解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。
各位同学,快到五一了,今天Jeson回顾了下Mysql,作为Mysql管理人员,对Mysql的日志了解是极为重要的,甚至会超过数据本身管理。
好了,首先,我列举下,如下这些Mysql我们应该掌握的日志类型,分类整理这些日志的功能上带来的重要性。如下列表:
接下来,Jeson继续详细介绍下这些日志对应的功能和重要性:
undo日志用于存放数据修改被修改前的值,假设修改 tba 表中 id=2的行数据,把Name='B' 修改为Name = 'B2' ,那么undo日志就会用来存放Name='B'的记录,如果这个修改出现异常,可以使用undo日志来实现回滚操作,保证事务的一致性。
当数据库对数据做修改的时候,需要把数据页从磁盘读到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.事务提交
relay日志(log):
从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后SQL线程会读取relay-log日志的内容并应用到从服务器,从而使从服务器和主服务器的数据保持一致。
Slow 日志(log):
记录所有sql语句执行时间超过long_query_time秒的所有查询或不使用索引的查询。
Query 日志(log):
所有连接到mysql的sql语句,都将记录到该日志文件或表,缺省未开启该日志。
怎么样?同学们不要简单的去看这些介绍:
想一想Mysql为什么会相比其它数据库数据保障性更为可靠?
Mysql的主从模式为什么需要用到Binglog、Relaylo来作?
undo、redo 日志是如何来保障数据库数据强一致性的?
本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号