mysql日志文件作用_mysql的日志文件及其作用

MySQL中有六种日志文件,分别是:

重做日志(redo log)

回滚日志(undo log)

二进制日志(binlog)

中继日志(relay log)

1. redo log

a.作用

b.内容

物理格式的日志,记录的是物理数据页面的修改的信息,其redo log是顺序写入redo log file的物理文件中去的。

b.开始节点

事务开始之后就产生redo log,redo log的落盘并不是随着事务的提交才写入的,而是在事务的执行过程中,便开始写入redo log文件中。

c.结束节点

当对应事务的脏页写入到磁盘之后,redo log的使命也就完成了,重做日志占用的空间就可以重用(被覆盖)。

2.undo log

a.作用

保证了事务的原子性,当事务开始回滚的时候会用到

b.内容:

逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复至事务之前的状态,而不是从物理页面上操作实现的,这一点是不同于redo log的。

c.开始节点:

事务开始之前,将当前是的版本生成undo log,undo 也会产生 redo 来保证undo log的可靠性

d.结束节点:

当事务提交之后,undo log并不能立马被删除,而是放入待清理的链表,由purge线程判断是否由其他事务在使用undo段中表的上一个事务之前的版本信息,决定是否可以清理undo log的日志空间。

3. binlog

a.作用

主从复制,

前提:主库将操作记录存到binlog中,

在发生主从复制时,

1. 主库会发起一个log dump线程,用来给从库I/O线程传binlog;

2.从库发起一个I/O线程接收binlog文件,并将得到的binlog文件写到本地relay-log(中继日志)中,

3.从库发起一个SQL 读取中继日志文件,逐一执行sql语句

在主从复制的时候需要注意的事

1) Master将操作语句记录到binlog日志中,然后授予slave远程连接的权限(master一定要开启binlog二进制日志功能,通常为了数据安全考虑,salve也开启binlog功能)

2) Slave开始俩个线程:IO线程和sql线程,其中:IO线程负责读取master的binlog内容到中继日志relay log里,sql线程负责从中继日志里读取binlog内容,并更新到slave的数据库,这样就能保持slave数据和master数据保持一致了

3) 至少有俩个Mysql的服务

4) 最好确保master和slave服务器上的Mysql版本相同,或者主服务器小于子服务器

5) Master和slave 俩节点时间需同步

4.relay-log

作用已经在上面介绍过了,不再重复介绍了

已经

原文:https://www.cnblogs.com/zhixinSHOU/p/13215142.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值