针对一个BINLOG日志的分析

-- 当前binlog_format | ROW
[root@109 mysql]# cat wang1010.txt
/*!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 /*!*/;
# at 4
#171010 16:15:41 server id 109 end_log_pos 120 CRC32 0x62153ff3 Start: binlog v 4, server v 5.6.36-log created 171010 16:15:41
# Warning: this binlog is either in use or was not closed properly.
BINLOG '
rYHcWQ9tAAAAdAAAAHgAAAABAAQANS42LjM2LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAfM/
FWI=
'/*!*/;
# at 120
#171010 16:50:25 server id 109 end_log_pos 250 CRC32 0x3b7ba6f0 Query thread_id=3487 exec_time=0 error_code=0
use `wang0728`/*!*/;
SET TIMESTAMP=1507625425/*!*/;
SET @@session.pseudo_thread_id=3487/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create table wang1010(id int ,name varchar(20))
/*!*/;

# at 250
#171010 16:50:41 server id 109 end_log_pos 326 CRC32 0x50dafb46 Query thread_id=3487 exec_time=0 error_code=0
SET TIMESTAMP=1507625441/*!*/;
BEGIN
/*!*/;
# at 326
#171010 16:50:41 server id 109 end_log_pos 384 CRC32 0xc12a366e Table_map: `wang0728`.`wang1010` mapped to number 94
# at 384
#171010 16:50:41 server id 109 end_log_pos 430 CRC32 0x32327701 Write_rows: table id 94 flags: STMT_END_F

BINLOG '
4YncWRNtAAAAOgAAAIABAAAAAF4AAAAAAAEACHdhbmcwNzI4AAh3YW5nMTAxMAACAw8CPAADbjYq
wQ==
4YncWR5tAAAALgAAAK4BAAAAAF4AAAAAAAEAAgAC//wBAAAABXdhbmdxAXcyMg==
'/*!*/;
### INSERT INTO `wang0728`.`wang1010`
### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
### @2='wangq' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
# at 430
#171010 16:50:41 server id 109 end_log_pos 461 CRC32 0xdf1bff19 Xid = 1855
COMMIT /*!*/; -- 通过COMMIT进行分割,多少个COMMIT对应的多个提交操作
# at 461

-- 第二个事物 插入数据
#171010 16:50:57 server id 109 end_log_pos 537 CRC32 0xfd3f88a0 Query thread_id=3487 exec_time=0 error_code=0 -- 开始时间 SERVER_ID 线程ID 执行时长 是否有错误
SET TIMESTAMP=1507625457/*!*/;-- 时间戳标志 来源于FROM_UNIXTIME
BEGIN
/*!*/;
# at 537
#171010 16:50:57 server id 109 end_log_pos 595 CRC32 0x42dbbe1e Table_map: `wang0728`.`wang1010` mapped to number 94
# at 595
#171010 16:50:57 server id 109 end_log_pos 642 CRC32 0xf93f3fdf Write_rows: table id 94 flags: STMT_END_F -- Write_rows代表ROWS_EVENT分为三种:WRITE_ROWS_EVENT,UPDATE_ROWS_EVENT,DELETE_ROWS_EVENT,分别对应insert,update和delete操作。

BINLOG '
8YncWRNtAAAAOgAAAFMCAAAAAF4AAAAAAAEACHdhbmcwNzI4AAh3YW5nMTAxMAACAw8CPAADHr7b
Qg==
8YncWR5tAAAALwAAAIICAAAAAF4AAAAAAAEAAgAC//wCAAAABmZhbmdmYd8/P/k=
'/*!*/;
### INSERT INTO `wang0728`.`wang1010` -- 执行具体SQL 逻辑SQL语句 insert into wang1010 values(2,'fangfa');
### SET
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
### @2='fangfa' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
# at 642
#171010 16:50:57 server id 109 end_log_pos 673 CRC32 0xeffda5ba Xid = 1856-- 在事务提交时,不管是STATEMENT还是ROW格式的binlog,都会在末尾添加一个XID_EVENT事件代表事务的结束。该事件记录了该事务的ID,在MySQL进行崩溃恢复时,根据事务在binlog中的提交情况来决定是否提交存储引擎中状态为prepared的事务。
COMMIT/*!*/;-- 执行提交操作
# at 673

-- 第三个事物 修改数据
#171010 16:51:15 server id 109 end_log_pos 749 CRC32 0x367d25aa Query thread_id=3487 exec_time=0 error_code=0
SET TIMESTAMP=1507625475/*!*/;
BEGIN
/*!*/;
# at 749
#171010 16:51:15 server id 109 end_log_pos 807 CRC32 0xb1f654d9 Table_map: `wang0728`.`wang1010` mapped to number 94
# at 807
#171010 16:51:15 server id 109 end_log_pos 864 CRC32 0x88e157f4 Update_rows: table id 94 flags: STMT_END_F

BINLOG '
A4rcWRNtAAAAOgAAACcDAAAAAF4AAAAAAAEACHdhbmcwNzI4AAh3YW5nMTAxMAACAw8CPAAD2VT2
sQ==
A4rcWR9tAAAAOQAAAGADAAAAAF4AAAAAAAEAAgAC///8AQAAAAV3YW5ncfwBAAAABHl1YW70V+GI
'/*!*/;
### UPDATE `wang0728`.`wang1010`
### WHERE
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
### @2='wangq' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */ -- 逻辑SQL语句 update wang1010 set name='yuan' where id=1;
### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
### @2='yuan' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
# at 864
#171010 16:51:15 server id 109 end_log_pos 895 CRC32 0x6065d0a5 Xid = 1857
COMMIT/*!*/;
# at 895

-- 第四个事物 删除数据
#171010 16:51:27 server id 109 end_log_pos 971 CRC32 0x313a7b00 Query thread_id=3487 exec_time=0 error_code=0
SET TIMESTAMP=1507625487/*!*/;
BEGIN
/*!*/;
# at 971
#171010 16:51:27 server id 109 end_log_pos 1029 CRC32 0xfecc1bd5 Table_map: `wang0728`.`wang1010` mapped to number 94
# at 1029
#171010 16:51:27 server id 109 end_log_pos 1074 CRC32 0xbae577a2 Delete_rows: table id 94 flags: STMT_END_F

BINLOG '
D4rcWRNtAAAAOgAAAAUEAAAAAF4AAAAAAAEACHdhbmcwNzI4AAh3YW5nMTAxMAACAw8CPAAD1RvM
/g==
D4rcWSBtAAAALQAAADIEAAAAAF4AAAAAAAEAAgAC//wBAAAABHl1YW6id+W6
'/*!*/;
### DELETE FROM `wang0728`.`wang1010` -- 逻辑SQL语句 delete from wang1010 where id=1;
### WHERE
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
### @2='yuan' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
# at 1074
#171010 16:51:27 server id 109 end_log_pos 1105 CRC32 0x36a54189 Xid = 1858 --
COMMIT/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */; -- 为什么最后存在一个ROLLBACK ??
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

-- 恢复数据的方法 mysqlbinlog MySQL-bin.000011 | mysql -uroot -p111111
或者
mysqlbinlog --start-position=134 --stop-position=330 yueliangdao_binglog.000001 >test1.txt
进入MYSQL导入
mysql> source c:\\test1.txt

参考 http://www.cnblogs.com/ivictor/p/5780037.html

1010针对一个binlog日志的分析的更多相关文章

  1. 监听MySQL的binlog日志工具分析:Canal

    Canal是阿里巴巴旗下的一款开源项目,利用Java开发.主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费,目前主要支持MySQL. GitHub地址:https://github. ...

  2. 解说mysql之binlog日志以及利用binlog日志恢复数据

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  3. Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...

  4. MySQL的binlog日志<转>

    binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...

  5. MySQL binlog日志操作详解

    MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. bi ...

  6. Mysql利用binlog日志恢复数据操作(转)

    a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...

  7. MySQL的binlog日志恢复(转)

    binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...

  8. 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

    众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...

  9. MySQL二进制binlog日志说明以及利用binlog日志恢复数据

    MySQL的binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全量备份+binlog日志恢复增量数据部分). 一.关于 ...

随机推荐

  1. B2241 打地鼠 暴力模拟

    大水题!!!30分钟AC(算上思考时间),直接模拟就行,加一个判断约数的剪枝,再多加几个剪枝就可以过(数据巨水) 我也就会做暴力的题了. 题干: Description 打地鼠是这样的一个游戏:地面上 ...

  2. LeetCode.3-最长无重复字符子串(Longest Substring Without Repeating Characters)

    这是悦乐书的第341次更新,第365篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Medium级别的第2题Longest Substring Without Repeating Cha ...

  3. layui富文本编译器添加图片

    1.创建富文本编辑器 <form class="layui-form" method="post" id="myForm" encty ...

  4. Vue Element-ui table只展开一行

    直接上代码了哈~ <template> <div class="app-content"> <div class="table_expand ...

  5. POJ 2945 trie树

    Find the Clones Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7704 Accepted: 2879 Descr ...

  6. css的外边距合并或者外边距塌陷问题

    第一种情况: 已知两个宽和高均为100px,margin均为20px的div垂直排列,现象如下图所示: 当设置css1的margin-bottom:40px:或者css2的margin-top:40p ...

  7. (转) 前端模块化:CommonJS,AMD,CMD,ES6

    模块化的开发方式可以提高代码复用率,方便进行代码的管理.通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数.目前流行的js模块化规范有CommonJS.AMD.CMD以及ES6的模块 ...

  8. SQL Server2008优化之SET STATISTICS开关

    一.准备工作 缓存对于某个查询的性能影响十分之大,所以优化之前要清空缓存. 清除Buffer Pool时面的所有缓存 DBCC DROPCLEANBUFFERS清除Buffer Pool里的所有缓存的 ...

  9. 百鸡百钱===百马百担====for循环嵌套

    package com.zuoye.test;//百鸡百钱5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡.public class Baiji { public static voi ...

  10. 测试 Zoundry Raven

    安装很方便,看看发布的内容是否好用 但发现从博客上取下来的内容是有问题的,不能正常打开