binlog的一些问题

1、$ mysqlbinlog mysql-bin.000559 > bin000559.sql

mysqlbinlog: unknown variable ‘default-character-set=utf8‘

解决方法:

加--no-defaults参数后可以解决

mysqlbinlog --no-defaults mysql-bin.000559 |less

2、因为binlog日志格式是ROW,查看row模式二进制日志的sql格式命令如下

mysqlbinlog  --no-defaults --base64-output=decode-rows -v mysql-bin.000559 |less

3、业务binlog增加特别快,不到5分钟,写一个binlog,每个binlog 5OOM

分析binlog日志发现,频繁update一个表含有是mediumblob型

binlog日志模式为row模式,每次更新会记录表中所有列值,含有大字段的行更新频繁,导致binlog增长过快!

mysql5.6中已新增参数binlog_row_image,我已将压测服的该参数设置为minimal,表示binlog日志只记录修改的列而不是行中所有列的值,如果行中的BLOGs 字段并不是每次都更新,则不会记录。

前提条件是:这些大字段的值本身在实际更新时的频率不高。

实际压测发现,原来不到5分钟生成一个500M的binlog,现在是8~9分钟一个500M的binlog。

效果不是很明显,所以还需要程序端来优化

时间: 2024-08-24 20:18:19

binlog的一些问题的相关文章

MySQL binlog日志恢复数据

我们了解了MySQL 的 binlog 日志的开启方式以及 binlog 日志的一些原理和常用操作,我们知道,binlog 有两大作用,一个是使用 binlog 恢复数据,另一个就是用来做主从复制.本篇笔记就是来记录如何使用 binlog 日志来做数据恢复.当然了,使用 binlog 日志所恢复的数据只能是部分数据,并不能够使用 binlog 日志来做数据库的备份,如果想要做数据库备份,依然要使用我们传统的备份方法,而 binlog 可以作为增量备份. 视频链接:http://www.ronco

查看binlog文件的2种方式

1.使用show binlog events a.获取binlog文件列表 mysql> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000005 | 1288 | | mysql-bin.000006 | 120 | +------------------+-----------+ mysql>

Binlog的三种模式

binlog模式分三种(row,statement,mixed) 1.Row 日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况. 优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改了,修改成什么样了,所以row的日志内容会非常清楚的记录下每一行数据修改的细节,非常容易理解.而且不会出现某些特定情况下的存储过程和function,以及trig

Python 查找binlog文件

经常需要在 binlog 中查找一些日志信息,于是写了一个简单的脚本.对于非常巨大的 binlog 文件,该脚本可能会速度慢,毕竟还是用的 list,暂时没想到好办法. 详细看代码: #/usr/bin/python #2016-04-12 #search string in the binlogs #usage: #put this file into binlog-dir,exec as: #"python test.py 111 123 update" or #"pyt

MySQL之truncate表后恢复思路整理(前提是有备份且开启binlog)

1.1对数据库thunder进行备份 mysqldump -S /tmp/mysql3316.sock  --single-transaction --master-data=2 thunder >thunder_full_2015112.sql 1.2进行truncate table操作并insert into table (work)[email protected]:mysql3316.sock [(none)]>select * from thunder.tb1; +----+----

mysql binlog row格式查看

MySQL 5.1开始,binlog支持row-based的格式,默认情况下只能看到一些经过base-64编码的信息,如 DELIMITER /*!*/; # at 7493962 #090827 5:25:03 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.1.26-rc-community-log created 090827 5:25:03 BINLOG ' L6iVSg8BAAAAZgAAAAAAAAAAAAQANS4xL

Windows下Mysql 5.7.19 开启bin-log以及mysql配置

一.配置环境: OS:Win10 Mysql:5.7.19 二.我的Mysql配置文件(my.ini)如下: [client] port=3306 default-character-set=utf8 [mysqld]  #Path to install software directory  basedir=E:\mysql-5.7.19 #Path to the database directory datadir=G:\mysql_data #Port Number port=3306 #

Mysql binlog 详细解读

Mysql的binlog主要用于逻辑同步以及二阶段提交的安全性保证,而在平时的使用中我们DBA也会从中获取一些重要的信息,比如说主从同步延迟了我们可以通过binlog查看当前事务执行的内容,比如可以利用binlog+备份的方式进行误删回滚,开源工具中也有很多利用binlog做闪回.同步数据到缓存中的方案,异地多活的高可用框架完成后有点空闲就对binlog的组成深入了解了下(基于mysql5.7版本,binlog版本v4),mysql 5.0之后binlog都采用的v4版本,结构如下分为heade

MySQL binlog相关分析

1.redolog.binlog的简单分析 图解:redolog和binlog机制 2.开启binlog及关注点 3.关注binlog的相关参数 4.binlog模式分析 5.关于binlog的使用 补充:双一模式 一.区别redolog和binlog 1.如下表格的一个简单对比   redolog binlog 日志作用 保护脏数据 数据库备份恢复使用 引擎支持 只适合InnoDB引擎 所有引擎 日志格式 物理日志 逻辑日志,SQL语句 提交方式 快速提交 提交时一次性写入 保存形式 会被循环

0816关于MySQL的审计 init-connect+binlog实现用户操作追踪

转自:http://blog.sina.com.cn/s/blog_605f5b4f01013xkv.html mysql 用init-connect+binlog实现用户操作追踪 做access 的ip的log 记录 在MYSQL中,每个连接都会先执行init-connect,进行连接的初始化.我们可以在这里获取用户的登录名称和thread的ID值.然后配合binlog,就可以追踪到每个操作语句的操作时间,操作人等.实现审计. 实验过程:1:创建登录日志库,登录日志表 CREATE DATAB