线上处理问题的时候经常遇到业务说写入了但是数据不对,这种情况八成是业务改了之后又改过来了。但是我们需要证据,下面我们就说说简单的binlog分析

工具:mysqlbinlog

#-vvv显示明文sql内容方便查阅
#start-datetime分析开始时间
#stop-datatime分析结束时间
#-d数据库名称
#mysql-bin.000001 二进制文件
$mysqlbinlog -vvv --start-datetime='2018-11-15 18:47:00' --stop-datetime='2018-11-15 18:59:01' -uxxxxx --socket=/export/data/mysql/tmp/mysql.socket --port=3358  -d xxxxx mysql-bin.000001 > 1.txt
 
#通过执行以上命令就可以获取这个时间段里面的binlog信息

以下是部分解析出来的内容,文件里面有时间戳,可以根据时间戳就判断某个操作是否执行

at 590290541
#181115 18:47:00 server id 23083726  end_log_pos 590290606 CRC32 0x644652ac     GTID    last_committed=210987   sequence_number=210988  rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'd2eabe2a-d5cb-11e8-a72a-fa169c5fc76e:191960'/*!*/;
at 590290606
#181115 18:47:00 server id 23083726  end_log_pos 590290695 CRC32 0xcdd93a59     Query   thread_id=95124 exec_time=0 error_code=0
SET TIMESTAMP=1542278820/*!*/;
SET @@session.pseudo_thread_id=95124/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1073741824/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=45,@@session.collation_connection=45,@@session.collation_server=45/*!*/;
SET @@session.time_zone='SYSTEM'/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
at 590290695
#181115 18:47:00 server id 23083726  end_log_pos 590291436 CRC32 0xf28f1bd8     Rows_query
insert into xxxxx(do_no, group_key, wave_strategy, auto_able, expect_pick_time, partitions, loc_code_list, priority, wms_sku_list, merge_no, weight, volume, area_id, area_name, latitude, longitude, wh_id, tenant_id, uuid, create_time, wh_name, wh_code, expect_arrive_starttime, expect_arrive_endtime, do_create_date, genera_source, extend_data) values ('65000372273101''sell_default', 0, 1, '2018-11-15 19:18:00'null'[\"36518\",\"40001\"]', 5, '[1007116,1002291,1011345]'null, 4.580, 14178.416, 200030, '褐石园区''40.016893''116.322341', 131231, 1, '65000372273101-1', now(), '五彩城店''WCC''2018-11-15 19:30:00''2018-11-15 20:15:00''2018-11-15 18:47:00''AI''{\"workFood\":\"1\"}')
at 590291436
#181115 18:47:00 server id 23083726  end_log_pos 590291571 CRC32 0x3a2c02ea     Table_map: `xxxxxx`.`wms_ai_do` mapped to number 262
at 590291571
#181115 18:47:00 server id 23083726  end_log_pos 590291874 CRC32 0x8f14b7cb     Write_rows: table id 262 flags: STMT_END_F
 

binlog分析方法的更多相关文章

  1. Android APP性能分析方法及工具

    近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借 ...

  2. Linux下java进程CPU占用率高分析方法

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

  3. Mysql 死锁的详细分析方法

    用数据库的时候,偶尔会出现死锁,针对我们的业务系统,出现死锁的直接结果就是系统卡顿.客户找事儿,所以我们也在想尽全力的消除掉数据库的死锁.出现死锁的时候,如果只是想解锁,用show full proc ...

  4. 面向对象分析方法(I)

    找出最关键的一些业务场景:一般通过动词来寻找,比如招聘系统中,一个应聘人投递一个职位就是一次应聘,应聘就是一个业务场景:一个学生参加某门课的考试,那么考试就是一个业务场景:一个学生去图书馆借书,那么借 ...

  5. Linux内核源码分析方法

    一.内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径.我们都 ...

  6. 删除binlog的方法

    不知道你有没有为mysql的binlog占用大量磁盘感到无奈,my.cnf里binlog的size可以设置多大做分割,但没有看到删除的配置,在mysql里show了一下variables, mysql ...

  7. Java内存溢出分析方法(Eclipse Memory Analyzer 使用简单入门)

    转载至:http://outofmemory.cn/java/jvm/OutOfMemoryError-analysis 工具 安装Memory Analyse Tools(MAT) 工具, 可以直接 ...

  8. mysql中删除binlog的方法?mysql中如何删除binlog?

    需求描述: 在mysql中如何删除binlog,因为随着数据库的运行,mysql中产生的binlog会越来越大,有可能把磁盘撑爆了,所以记录下删除 binlog的方法. 操作过程: 1.通过系统参数控 ...

  9. Linux内核源代码分析方法

    Linux内核源代码分析方法   一.内核源代码之我见 Linux内核代码的庞大令不少人"望而生畏",也正由于如此,使得人们对Linux的了解仅处于泛泛的层次.假设想透析Linux ...

随机推荐

  1. Swing开发图形界面有如下优势

    Swing开发图形界面有如下优势 : Swing组件不再依赖于本地平台的GUI,无须采用各种平台的GUI交集,因此Swing提供了大量图形界面组件,远远超出了AWT所提供的图形界面组件集. Swing ...

  2. CentOS系统中last命令的作用

    CentOS系统中last命令的作用是显示近期用户或终端的登录情况,它的使用权限是所有用户.通过last命令查看该程序的log,管理员可以获知谁曾经或企图连接系统. 格式 last [—R] [—n] ...

  3. CentOS 6.5 下Vim 配置图解

    分享个CentOS 6.5 下Vim 配置图文详解,希望对大家有所帮助. 1. 登录并进入你常用的用户名下,查看其主目录 命令: # su xxx $ cd xxx $ ls -a 2.查看并建立目录 ...

  4. bootstrap table使用指南

    Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分页,以及编辑.导出.过滤(扩展)等等的功能. 目 ...

  5. 关于Unity 获得和使用GetComponent<MeshFilter>().mesh时的心得

    原文地址:http://blog.sina.com.cn/s/blog_7d9405e50100s061.html 今天在使用Unity3D的时候遇到了一个问题:_tesGameObject是在Pro ...

  6. 【R】array 2 string

    paste(1:10, collapse = '') http://stackoverflow.com/questions/2098368/how-do-i-concatenate-a-vector- ...

  7. javascript在字符串中提取网址并替换成超链接

    var str = " http://wasmip.baidu.com.cn/mip/km/archives/km_archives_main/kmArchivesMain.do?metho ...

  8. HDU2717BFS

    /* WA了12发简直不能忍! . 题意非常简单.从正整数a变为b有三种方法: +1,-1.*2 特殊情况一:a与b相等不须要搜索 特殊情况二:a>b时.结果必定是a-b不需搜 特殊情况三:比較 ...

  9. swift--控件工厂类的实现

    控件工厂类,简而言之就是,减少代码的复用率,只在哪里用,然后在哪里调: 代码如下: import UIKit class ViewFactory: UIView,UITextFieldDelegate ...

  10. ios 调用系统应用的方法 应用间跳转的方法

    声明一个私有方法: #pragma mark - 私有方法 -(void)openUrl:(NSString *)urlStr{ //注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送 ...