pt-query-digest slowquery.log
现在结果(错误)是:
18.2s用户时间,100ms系统时间,35.61M RSS,105.19M vsz
当前日期:2016年7月7日星期四17:18:43
主机名:Jammer
文件:slowquery.log
管道进程5(迭代)导致错误:sprintf中的冗余参数位于/usr/bin/pt-query-digest第2556行.
将重试管道进程4(迭代)2次.
..
..(相同的结果打印两次)
..
管道导致错误:管道进程5(迭代)导致错误:sprintf中的冗余参数位于/usr/bin/pt-query-digest第2556行.
终止管道,因为进程4(迭代)导致了太多错误.
现在有关环境的细节,我使用的是Ubuntu 16.04,MariaDB 10.1.14,Percona-Toolkit 2.2.16
我在bug-report找到了一些东西,但它就像一个解决方法,并没有真正解决错误.即使在应用补丁之后,命令结果看起来也不够令人满意.
我在ubuntu 16.04 MysqL上面临同样的问题.
我的慢查询日志的内容如下.
/usr/sbin / MysqLd,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)).开始于:
Tcp端口:3306 Unix套接字:/var/run/MysqLd/MysqLd.sock
时间Id命令参数
/usr/sbin / MysqLd,版本:5.7.16-0ubuntu0.16.04.1-log((Ubuntu)).开始于:
Tcp端口:3306 Unix套接字:/var/run/MysqLd/MysqLd.sock
时间Id命令参数
时间:2016-12-08T05:13:55.140764Z
User @ Host:root [root] @ localhost [] Id:20
Query_time:0.003770 Lock_time:0.000200 Rows_sent:1 Rows_examined:2
SET时间戳= 1481174035;
SELECT COUNT(*)FROM INFORMATION_SCHEMA.TRIGGERS;
错误是一样的:
管道导致错误:管道流程5(迭代)导致了一个错误
错误:sprintf中的冗余参数位于/usr/bin/pt-query-digest第2556行.
Ubuntu 16.04
MysqL Ver 14.14 Distrib 5.7.16
pt-query-digest 2.2.16
这个补丁似乎可以解决pt-query-digest中这个特定的地方:
--- percona-toolkit-2.2.16/bin/pt-query-digest 2015-11-06 14:56:23.000000000 -0500 +++ percona-toolkit-2.2.20/bin/pt-query-digest 2016-12-06 17:01:51.000000000 -0500 @@ -2555,8 +2583,8 @@ } return sprintf( $num =~ m/\./ || $n - ? "%.${p}f%s" - : '%d',+ ? '%1$.'.$p.'f%2$s' + : '%1$d',$num,$units[$n]); }
但正如原始问题和错误报告中所提到的,相当多的工具/功能受到影响,完整的错误修复包括许多小的更改:
https://github.com/percona/percona-toolkit/pull/73/files