收到监控短信,说更新和插入阀值报警,于是登陆mysql-monitor上查看,确实如此,如图:登陆mysql服务器上,通过binlog分析,17:05之前和之后的,看是哪个表更新
收到监控短信,说更新和插入阀值报警,于是登陆mysql-monitor上查看,确实如此,美国空间,如图:
登陆mysql服务器上,通过binlog分析,17:05之前和之后的,看是哪个表更新较大。
[root@xxx-02 logs]# mysqlbinlog --no-defaults --base64-output=decode-rows -v -v mysql-bin.053373 |more
/*!40019 set @@session.max_insert_delayed_threads=0*/;
/*!50003 set @old_completion_type=@@completion_type,completion_type=0*/;
delimiter /*!*/;
# at 4
#120802 16:36:47 server id 4713306 end_log_pos 106 start: binlog v 4, server v 5.1.43sp1-br38368-enterprise-gpl-pro-log c
reated 120802 16:36:47
然后用这条命令分析,得出写操作频繁的表
[root@xxx-02 logs]# mysqlbinlog --no-defaults --base64-output=decode-rows -v -v mysql-bin.053373 |awk '/###/{if($0~/update|insert|delete/)count[$2 $nf]++}end{for(i in count)print i,\t,count[i]}' | column -t | sort -k3nr | more
update db.dynamic 133971
update db.user 54834
update db.quota 24938
update db.orderhistory 24482
update db.bossoperation 19767
update db.smscount 18235
update db.buddy 10919
insert db.buddy_log 10024
=====================================================================
接着查看17:05之后的binlog日志。
[root@xxx-02 logs]# mysqlbinlog --no-defaults --base64-output=decode-rows -v -v mysql-bin.053375 |more
/*!40019 set @@session.max_insert_delayed_threads=0*/;
/*!50003 set @old_completion_type=@@completion_type,completion_type=0*/;
delimiter /*!*/;
# at 4
#120802 17:10:54 server id 4713306 end_log_pos 106 start: binlog v 4, server v 5.1.43sp1-br38368-enterprise-gpl-pro-log c
reated 120802 17:10:54
# at 106
然后用这条命令分析,得出写操作频繁的表
[root@xxx-02 logs]# mysqlbinlog --no-defaults --base64-output=decode-rows -v -v mysql-bin.053375 |awk '/###/{if($0~/update|insert|delete/)count[$2 $nf]++}end{for(i in count)print i,\t,count[i]}' | column -t | sort -k3nr
insert db.buddy_log 194160
insert db.buddy 192587
update db.dynamic 62767
update db.user 30103
update db.orderhistory 12507
update db.quota 12318
update db.bossoperation 9892
这样比较直观的显示出哪些表更新较多,然后找开发确认问题,是否是业务增长导致。
本文出自 “贺春旸的技术专栏” 博客,网站空间,请务必保留此出处
,香港虚拟主机