本文介绍: 当redolog设置commit发生异常时,并不会回滚事务,它会执行上图框住的逻辑,虽然redo log是处于prepare阶段,但是能通过事务id找到对应的binlog日志,所以MySQL认为是完整的,就会提交事务恢复数据。因此,之后用binlog日志恢复数据时,就会少这一次更新,恢复出来的这一行c值是o,而原库因为redo log日志恢复,这一行c值是1,最终数据不一致。在这种情况下,就可能导致你恢复从服务器的时候,无法从宕机前的中继日志里读取数据,以为是日志文件损坏了,其实是名称不对了。
Mysql高级 — 日志篇
*日志类型
1.mysql的6类日志:
2.日志的弊端
*日志类型
1.mysql的6类日志:
2.日志的弊端
*慢查询日志(slow query log)
*通用查询日志(general query log)
1.作用:
2.问题场景:
3.查看当前状态 :
4.启动日志:
方式1:永久性方式
方式2:临时性方式
5.查看日志 :
6.停止日志
方式1:永久性方式
方式2:临时性方式
7.删除刷新日志
*错误日志(error log)
1.启动日志
2.查看日志
3.删除刷新日志
*二进制日志
1.binlog主要应用场景:|
2.查看默认情况
3.日志参数设置
方式1:永久性方式
4.查看日志
查看二进制日志文件列表及大小
将事件以伪SQL的形式表现出来
伪SQL命令,不显示binlog格式的语句
查看到position点信息事件:
binlog格式查看
mysql —initialize
binlog格式种类
5.使用日志恢复数据
细节:因为回放数据的操作也被记录,所以需要刷新logs
mysqlbinlog恢复数据的语法如下:
6.删除二进制日志
PURGE MASTER LOGS:删除指定日志文件
RESET MASTER:删除所有的二进制日志文件
7.其它场景
8.写入机制
9.binlog与redolog对比
两阶段提交方案:
redo log与binlog两份日志之间的逻辑不一致问题
*中继日志(relay log)
1.查看中继日志
2.恢复的典型错误
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。