mysql的日志格式分日志分析

1 日志分为三种格式

statement 基于语句的

row 基于行的

mixed 复合的

区别:
基于语句的 简单,精悍,服务器会将数据修改事件以SQL语句的形式写入二进制,内容比较容易理解

语句行的 对要修改哪些数据  提供了跟精细的控制,但是不容易理解,出现这种格式的原因在于,有些语句可能不够明确,在主服务器和从服务器上执行可能会出现不同的效果

基于mixed  服务器会根据最适当的时候切换使用基于语句或者基于行的格式

2 如何查看当前系统的格式

mysql> show global variables like ‘%format%‘;

3 如何修改

暂时修改  当前会话或别的会话

mysql> set session binlog_format=‘mixed‘;

mysql> set global binlog_format=‘mixed‘;

重启mysqld 就不生效了

永久生效

写入my.cnf 的配置文件当中

binlog_format=

4 演示的不同格式效果

[[email protected] logs]# mysqlbinlog master_bin.000003 和 不断set 修改 format_log

mysql> show binlog events in ‘master_bin.000003‘;  简便的查看每个pos期间执行的操作内容

基于statement 语句的

# at 781
#141116 22:40:42 server id 100 end_log_pos 897 CRC32 0x63842d06 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1416148842/*!*/;
insert student (id,name) values (1,‘andy‘)
/*!*/;

| master_bin.000003 |  781 | Query       |       100 |         897 | use `mydb`; insert student (id,name) values (1,‘andy‘)

基于row的

# at 1254
#141116 22:43:38 server id 100 end_log_pos 1303 CRC32 0x115dc0d4 Write_rows: table id 70 flags: STMT_END_F

BINLOG ‘
GrhoVBNkAAAANQAAAOYEAAAAAEYAAAAAAAEABG15ZGIAB3N0dWRlbnQAAgP+Av4UA9TLV8c=
GrhoVB5kAAAAMQAAABcFAAAAAEYAAAAAAAEAAgAC//wCAAAACGN1aWRlaHVh1MBdEQ==

其实这条执行的操作也是一个insert 语句但是 我们无法阅读

| master_bin.000003 | 1254 | Write_rows  |       100 |        1303 | table_id: 70 flags: STMT_END_F

基于mixed的 这里它自动选择了合适的 statement 基于语句的

| master_bin.000003 | 1492 | Query       |       100 |        1615 | use `mydb`; insert student (id,name) values (4,‘zhangxueyou‘)

时间: 2024-10-18 11:06:20

mysql的日志格式分日志分析的相关文章

Nginx日志格式与日志切割篇三

一:作用 Ngx_http_log_module:定义日志格式,并且以指定的格式保存. 二:示例配置 log_format compression '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log

apache 定义日志格式 及日志记录

操作步骤: 一:在apache主配置文件里定义日志的格式 vim /usr/local/apache2/conf/httpd.conf        <IfModule log_config_module>            LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined          

mysql row日志格式下 查看binlog sql语句

有时候我们需要使用row作为binlog的日志格式,即配置文件使用了binlog_format= row 参数 这样以来,我们在查看数据库binlog内容时候,就看不到增删改查的具体语句了,在数据库恢复的时候 不利于我们查找恢复数据点. 使用row日志格式的日志: 可以看到都是一段段类似加密过的字符串一样,不要着急,其实sql真实语句就在这里这里,只不过 是经过64位编码转换后的内容,我们使用mysqlbinlog对应的参数即可查看具体的sql内容: mysqlbinlog --base64-o

自定义tornado日志格式

本文和大家分享的主要是tornado日志格式自定义相关内容,一起来看看吧,希望对大家学习python有所帮助. 第一次玩tornado.版本4.x.为了解决日志格式的问题,google了很多,没一个有效的. tornado日志格式分两块,一块是logging的格式,一块是tornado请求消息格式. tornado默认的访问日志输出是这样的: WARNING:tornado.access:404 GET / (127.0.0.1) 167.93ms 其中, WARNING:tornado.acc

Hadoop1.2.1 日志格式说明及启停方式

日志格式: 日志名称解析: Hadoop启停的三种方式: . 停止后面的以此类推...... 另外 hadoop-daemons.sh 表示启动多个,比如datanode跟tasktracker在真实环境都会有多个 附:

MySQL系列:innodb源码分析之mini transaction

日志是innodb一个非常重要的模块,在innodb中有两类日志:redo log和undo log.其中redolog日志是用来做数据异常恢复和数据库重启时页数据同步恢复的,redo log是建立在在mini transaction基础上.数据库在执行事务时,通过minitransaction产生redo log来保证事务的持久性. 1.mini transaction三个协议 mini-transcation是用来实现innodb的物理逻辑日志的写入和页恢复的,通过mini-transcat

MySQL系列:innodb源码分析之重做日志结构

在innodb的引擎实现中,为了实现事务的持久性,构建了重做日志系统.重做日志由两部分组成:内存日志缓冲区(redo log buffer)和重做日志文件.这样设计的目的显而易见,日志缓冲区是为了加快写日志的速度,而重做日志文件为日志数据提供持久化的作用.在innodb的重做日志系统中,为了更好实现日志的易恢复性.安全性和持久化性,引入了以下几个概念:LSN.log block.日志文件组.checkpoint和归档日志.以下我们分别一一来进行分析. 1.LSN 在innodb中的重做日志系统中

MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析

随笔 - 66 文章 - 0 评论 - 19 MySQL慢查询(二) - pt-query-digest详解慢查询日志 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等

MySQL调优系列_日志分析

技术准备 宿主于Ubuntu14.04.2平台下,基于MYSQL5.5.46版本. 日志文件记录了MySQL数据库的各种类型的活动,作为日常定位问题的最常用的一种分析手段,Mysql数据库中常用的日志文件分为以下几类:错误日志.二进制日志.慢查询日志,查询日志. 一.错误日志 该日志记录了MySQL运行过程中启动.运行.关闭过程中的一些详细记录,在一旦出现问题的时候,可以先查看该日志,该日志不但记录了出错信息,同样也记录了一些警告,当然也有一些运行信息. 可以通过如下命令,来查看错误日志的文件路