上传项目图片:“Percona Toolkit”雷竞技下载官网
  1. 雷竞技下载官网Percona工具包
  2. pt - 1739

pt-table-checksum的Disable-qrt-plugin选项被破坏

    XML 可打印的

细节

    • 错误
    • 状态: Done">完成
    • 解决方法: 固定
    • 3.0.10此处3.0.123.0.13
    • 3.5.0
    • pt-table-checksum
    • 没有一个
    • 1

    描述

      从perco雷竞技下载官网na toolkit 3.0.10开始,发布说明中声明pt-table-checksum禁用QRT插件。根据——disable-qrt-plugin命令行标志,这可能是一个可配置的选项。

      然而,pt-table-checksum强制禁用所有slave上的QRT,不管这个选项的值是多少——除非这个选项被显式地设置为TRUE,否则它仍然是OFF。

      在主机上禁用QRT由if()语句控制- if($o->get('disable-qrt-plugin')在第10158行(这是PT 3.0.13)

      但是从第10492行开始,对于slave没有这样的if()语句。

      我的$slave (@$slaves) {My $qrt_plugin_status;Eval {($qrt_plugin_status) = $slave->{dbh}->selectrow_arrayref(“选择@@QUERY_RESPONSE_TIME_SESSION_STATS”);};如果($EVAL_ERROR) {PTDEBUG && _d“QRT插件未安装在从机上”。奴隶- > {dsn_name});$slave->{qrt_plugin_status} = undef;下一个;} $奴隶- > {qrt_plugin_status} = $ qrt_plugin_status - > [0];如果($slave->{qrt_plugin_status}) {PTDEBUG && _d(在slave上禁用qrt插件状态。奴隶- > {dsn_name});奴隶- >{胸径}- >'SET GLOBAL query_response_time_stats = off');}}

      然后在11523行,当QRT插件被重置回其原始值时,代码再次被包装在条件中:

      #恢复原始QRT pligin状态如果(o - >(美元“disable-qrt-plugin”) {eval {如果($original_qrt_plugin_master_status) {PTDEBUG && _d(在主服务器上恢复qrt插件状态);master_dbh - >"SET GLOBAL query_response_time_stats = $original_qrt_plugin_master_status->[0]");}我的$slave (@$slaves) {如果($slave->{qrt_plugin_status}) {PTDEBUG && _d(“在从机上恢复qrt插件状态”。奴隶- > {dsn_name});奴隶- >{胸径}- >"SET GLOBAL query_response_time_stats = $slave->{qrt_plugin_status}");}}};如果($EVAL_ERROR){警告无法恢复qrt_plugin状态:$EVAL_ERROR;}}

      所以,QRT默默地被关闭,它永远不会回来-如果你的奴隶被提升为主人,你会想知道为什么你突然没有指标。

      解决这个问题的方法很简单——用if $o->get('disable-qrt-plugin') {..}”

      附件

        问题的链接

          活动

              sveta.smirnovaSveta Smirnova
              ravyn440厄尼Souhrada
              投票:
              0 为这个问题投票
              观察人士:
              4 开始关注这个问题

              日期

                创建:
                更新:
                解决:

                聪明的清单