mysql-bin分析_mysql-bin日志分析

mysql的4种日志:

日志默认在$MYSQL_HOME/data目录下。

可以登录到mysql查看日志情况:

mysql> show variables like '%log%';

mysql> show variables like '%slow%';

1.二进制日志,文件名:mysql-bin.* ,在my.cnf中配置。数据库的主从依赖此文件。mysql-bin 记录了mysql的DDL和DML操作(不含select),但文件是二进制格式,必需用mysqlbinlog命令查看。

2.错误日志,文件名:*.err,记录启动/关闭、运行时严重错误信息。

3.查询日志,记录客户端所有的sql,包含select,对mysql有一定性能影响,不建议开启。

4.慢查询日志,记录了低于my.cnf配置中,long_query_time的sql. 文件名:*-slow.log

显示2014-04-01后的update语句,主要做分析时使用。

注: 这条命令中有空格。

# mysqlbinlog --start-datetime="2014-04-01 00:00:00" /usr/local/mysql-5.5.30/data/mysql-bin.000012 |grep -E "update |use "

应用这条命令的简单的python脚本:

import os

cmd = ''' mysqlbinlog --start-datetime="2014-04-01 00:00:00"

/usr/local/mysql-5.5.30/data/mysql-bin.000012 |grep -E "update |use "

'''

rc = 0

pio = os.popen(cmd)

for i in pio.readlines():

ti = i.replace('\n', "")

#ti = i

if len(ti)>256: print ti[:256] #防止sql太长

else: print ti

rc += 1

pio.close()

print "rowcount: %d" % rc

倒排序,最近的二进制日志。

# ls mysql-bin.0* -1 -C

排除掉注释,只关注DML语句。

# mysqlbinlog mysql-bin.000034 | grep -v "^#"  | grep -E "use |insert |update |delete |alert |create "

上一条的进化版,每条语句截取前128字符。

# mysqlbinlog --start-datetime="2014-04-01 00:00:00"  mysql-bin14.000012|grep -v "^#"|grep -E "use |insert |update |delete |alert |create "|awk '{print substr($0,0,128)}'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值