mysql binlog redo_mysql的binlog与redo log

binlog

Mysql Binlog是二进制格式的日志文件,用来记录Mysql内部对数据库的改动(只记录对数据的修改操作),主要用于数据库的主从复制以及增量恢复。

获取binlog日志列表

MariaDB [examples]> show master logs;

+-----------+-----------+

| Log_name | File_size |

+-----------+-----------+

| ON.000001 | 9893 |

+-----------+-----------+

可知当前只有一个binlog文件:ON.000001

MariaDB [examples]> show binary logs;

+-----------+-----------+

| Log_name | File_size |

+-----------+-----------+

| ON.000001 | 9893 |

+-----------+-----------+

1 row in set (0.134 sec)

查看examples.prefix的表结构

MariaDB [examples]> show create table prefix \G;

*************************** 1. row ***************************

Table: prefix

Create Table: CREATE TABLE `prefix` (

`a` int(10) NOT NULL,

`b` int(10) NOT NULL,

`c` int(10) NOT NULL,

KEY `I_index` (`a`,`b`,`c`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

对全表进行更新操作

MariaDB [examples]> update prefix set b=a+101;

Query OK, 32 rows affected (0.201 sec)

Rows matched: 32 Changed: 32 Warnings: 0

可以看到有32条数据发生了更新

查看binlog(也可以在日志文件目录通过mysqlbinlog ON.000001命令查看)

MariaDB [(none)]> show binlog events in 'ON.000001' \G;

...

...

...

*************************** 108. row ***************************

Log_name: ON.000001

Pos: 9893

Event_type: Gtid

Server_id: 1

End_log_pos: 9935

Info: BEGIN GTID 0-1-48

*************************** 109. row ***************************

Log_name: ON.000001

Pos: 9935

Event_type: Query

Server_id: 1

End_log_pos: 10031

Info: use `examples`; update prefix set b=a+101

*************************** 110. row ***************************

Log_name: ON.000001

Pos: 10031

Event_type: Xid

Server_id: 1

End_log_pos: 10062

Info: COMMIT /* xid=883 */

有很多条记录,本次更新操作增加了这三条数据,其中第109是我们显示执行的SQL,而第108与109条是事务的开始与结束。

关于Xid:

Binlog::GTID_EVENT:

A global transaction identifier (GTID)

开启事务

Binlog::QUERY_EVENT:

The query event is used to send text querys right the binlog.

mysql中create,insert,update,delete的Event_type均为Query类型,初看觉得很奇怪,这里只是类型定义而已。

Binlog::XID_EVENT:

Transaction ID for 2PC, written whenever a COMMIT is expected.

提交事务

看看官方对各个字段的解释

Log_name

The name of the file that is being listed.

Pos

The position at which the event occurs.

Event_type

An identifier that describes the event type.

Server_id

The server ID of the server on which the event originated.

End_log_pos

The position at which the next event begins, which is equal to Pos plus the size of the event.

Info

More detailed information about the event type. The format of this information depends on the event type.

redo log

The redo log is a disk-based data structure used during crash recovery to correct data written by incomplete transactions

关于redo log,文件名前缀为ib_logfile, 尝试用mysqlbinlog读取

mysqlbinlog ib_logfile1

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;

/*!40019 SET @@session.max_insert_delayed_threads=0*/;

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER /*!*/;

ERROR: File is not a binary log file.

google一圈,目前尚没发现有可以解析该类文件的工具,只能从文档中了解其具体结构。

后面有时间研究下源码,写个ib_logfile的解析器玩玩

参考:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367237.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何把网址配置为http和https可以同时访问

1.打开iis7 ,找到具体站点 2.点击站点后右侧有个绑定按钮 3.点击绑定,增加https,设置端口,ssl选择 iis证书 4.找到ssl设置,要求证书不勾选,客户证书,忽略 5.如果右侧不显示浏览站点https,点击站点高级设置-已启用协议&…

【前端轶事】Chrome 小恐龙背后的故事

本文转自 FEPulse 公众号(微信搜索 FEPulse,精选国内外最新前端资讯,为你把握前端脉搏)。 如果你是 Chrome 用户,一定对那萌萌哒的小恐龙不陌生,每当互联网连接断开时,你便能看到那只小恐龙&am…

高起专计算机专业答案,Windows知识题(高起专)答案

WORD格式可编辑.第2章Windows操作系统及其应用(单选题)1.Windows操作系统的主要功能是___B___。A.实现软、硬件转换B.管理计算机系统所有的软、硬件C.把源程序转换为目标程序D.进行数据处理提示:操作系统属于系统软件,它的主要功能是:管理系统…

深浅copy

深浅copy对比 列表赋值 例如:列表a[‘a’, b, c, d, 1, 2, 3],当执行代码ba,可以得到b[‘a’, b, c, d, 1, 2, 3],具体实现如下: >>> a[a, b, c, d, 1, 2, 3] >>> ba >>> id(a),id(b) (280…

mysql5 varchar_MYSQL 5.7 VARCHAR 类型实验

MYSQL 的VARCHAR 类型字段的最多能存储多少字符?模糊记得 VARCHAR 最多能存65535个字符,真的吗?理论上,一个字符类型能存的字符数量跟选取的编码字符集和存储长度限制肯定是有关系的,字符编码长度越小,长度…

《React源码解析》系列完结!

前言 距离第一篇《React源码解析(一)》已经过去将近4个月的时间,由于是我第一次进行源码解析相关的写作,思路和文笔还不够成熟。一百多天以来,我基于读者反馈反思这几篇文章中的不足,同时也在不断学习借鉴其他优秀作者的写作方法…

优化Java序列化– Java,XML,JSON,Kryo,POF

也许我很天真,但是我一直认为Java序列化肯定是将Java对象序列化为二进制形式的最快,最有效的方法。 毕竟Java是第7个主要发行版,所以这不是新技术,并且由于每个JDK似乎都比上一个快,因此我错误地认为序列化现在必须非常…

html5 css 字体加粗,HTML和CSS实现字体加粗的三种方法

大家在浏览网站时有没有注意到,页面中有些文字或字体加粗了,正在学习HTML和CSS的小伙伴,你知道HTML如何给文字加粗吗?CSS怎么设置字体加粗呢?这篇文章给大家总结了给字体和文字加粗的三种方法,包括HTML中的…

浅谈模拟退火

核心思想 模拟退火十分好写,它的核心思想就是: 每一次降温都可以从当前状态转移到另一种相近状态(没有严格定义,可以自己想产生相近解的方法) 如果那个相近状态的答案更优,当然转移到那种状态! …

如何应用前端技术唤起app及判断用户来源及与原生交互的原理

做唤起时需要native端进行配合, h5唤起app这种需求是常见的。在移动为王的时代,h5在app导流上发挥着重要的作用。 目前我们采用的唤起方式是url scheme(iOS,Android平台都支持),只需原生APP开发时注册scheme, 那么用户…

mysql 设置client char_mysql编码问题:show variables like “%char%”

mysql编码设置mysql> SHOW VARIABLES LIKE character_set_%;------------------------------------------------------| Variable_name | Value |------------------------------------------------------| character_set_client | latin1 || character_set_connection | la…

虾扯蛋之函数防抖和节流

背景 今天在coding的时候,做了一个搜索框,也正是这个搜索框,让我和后台小伙伴直接由铁磁变为塑料兄弟。那到底发生啥了呢?其实很简单,其实很无奈,就是我用王者的手速把他的接口访问崩了! 我们在…

四川省内二本计算机公立好的大学排名,四川有哪些二本院校是公立的?附四川省公立二本大学排名及分数线...

选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>四川省内的公办大学一直以来都是历年高考生及家长关注的重点,本篇文章我将针对“四川省有多少所二本公立大学?有哪四川省内的公办大学一直以来都是历年高考生及…

NetBeans 7.4 Beta提示警告无效的异常处理

有许多例子说明Java异常处理可能比首次出现时要困难得多,Josh Bloch专门将一整章的《 Effective Java》 (两个版本)专门用于异常处理。 Java中的检查异常模型 仍然 “ 有争议” 。 我很高兴看到我最近下载的NetBeans 7.4 beta有一些提示&…

平心静气

昨天做一个功能的时候需要修改ofbiz代码,增加关联的表和查询字段,本以为很简单,照着写一下就好了,但是一直报错.临近下班,苦思冥想没有找到原因,八点左右不得已回家了. 第二天早上半个小时搞定.关键还是要平心静气,其实只是一个大小写的问题,由于大小写不匹配,没有匹配到对应的…

mysql5.7.17解压版安装_Windows中 MySQL5.7.17解压版安装步骤

1、先去MySQL官网下载。当前最新版是5.7.19,可能安装方法不同了,本人测试没有安装成功,若有安装成功的朋友,希望分享一下安装步骤。2、将下载的压缩包解压出来,然后在“MySQL解压目录”中新建“data”文件夹。如下图&a…

大学计算机结课论文怎么写,大学本科计算机论文格式_大学本科计算机毕业论文范文...

导读:如何撰写出满意的大学本科计算机论文是现在很多人都为之苦恼的问题之一,而论文的撰写也并非易事,必定是需要花费很多心思和汗水的,本论文分类为大学计算机论文,下面是小编为大家整理的几篇大学本科计算机论文范文…

关于Java和Scala同步的五件事你不知道

实际上,所有服务器应用程序都需要在多个线程之间进行某种同步。 大多数同步工作是在框架级别为我们完成的,例如通过我们的Web服务器,数据库客户端或消息传递框架。 Java和Scala提供了许多组件来编写可靠的多线程应用程序。 这些包括对象池&am…

Keepalived详解之 - LVS(IPVS)管理工具ipvsadm使用指南

ipvsadm是什么? ipvsadm是用来配置、维护或者查看Linux内核当中virtual server table的一个工具, LVS(Linux virtual server)能基于一个集群当中的两个或者多个节点来创建弹性网络服务, 集群中的处于激活状态的节点能将服务请求重定向到一组实际提供服务的主机当中, 提供包括T…

精读《你不知道的javascript》中卷

前言 《你不知道的 javascript》是一个前端学习必读的系列,让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书《你不知道的javascript》中卷介绍了该系列的两个主题:“类型和语法”以…