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

在使用percona 5.7时,Pt-online-schema-change不会对死锁错误进行重试雷竞技下载官网

    XML 可打印的

描述

    根据我在论坛上的帖子:https://www.雷竞技下载官网percona.com/forums/questions-discussions/percona-toolkit/50169-using-pt-online-schema-change-with-percona-5-7

    我可以使用percona-xtradb-cluster-server-5.7在一个dev (Debian 8)流浪环境中复制这个问题:雷竞技下载官网

    服务器版本:5.7.19-17-57 Percona Xt雷竞技下载官网raDB Cluster (GPL), Release rel17, Revision 35cdc81, WSREP version 29.22, wsrep_29.22

    我用一个基本测试表建立了一个3节点集群:

    创建表test_a (test_id)int(10) unsigned NOT NULL AUTO_INCREMENT, ' column_a ' varchar(80) DEFAULT NULL, ' column_b ' varchar(20) DEFAULT NULL, ' active ' tinyint(1) unsigned DEFAULT NULL, ' created ' timestamp NULL DEFAULT NULL, ' modified ' timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (' test_id ')) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

    我填充了~400k记录,然后我设置了4个基本的php进程,不断更新表中的随机记录。进程被写入集群中的随机节点,以复制生产环境中发生的情况。

    然后,当4个进程忙于更新随机记录时,我在其中一个节点上运行pt-online-schema-change工具

    PTDEBUG=1 pt-online-schema-change——alterDROP COLUMN column_bD=test_pt_online_schema_change,t=test_a——execute——ask-pass——u root——alter-foreign-keys-method=auto——chunk-size=5000 -P 6000 -S /tmp/mysql.6000.sock

    我已经附加了脚本的输出,但它实际上达到了死锁/冲突,并且不会重试INSERT到新表命令

    ...#重试:3823 7147尝试10次中的1次# pt_online_schema_change:11332 7147 INSERT LOW_PRIORITY IGNORE INTO ' test_pt_online_schema_change '' _test_a_new ' (' test_id ', ' column_a ', ' active ', ' created ', ' modified ') SELECT ' test_id ', ' column_a ', ' active ', ' created ', ' modified ' FROM ' test_pt_online_schema_change '。' test_a ' FORCE INDEX(' PRIMARY ') WHERE ((' test_id ' >= ?)) AND ((' test_id ' <= ?))锁定共享模式/*pt-online-schema-change 7147 copy nibble*/下边界:1上边界:14998 #重试:3829 7147尝试代码失败:DBD::mysql::st执行失败:wsprep检测到死锁/冲突,并中止事务。尝试重新启动事务[声明INSERT LOW_PRIORITY IGNORE INTO ' test_pt_online_schema_change '。' _test_a_new ' (' test_id ', ' column_a ', ' active ', ' created ', ' modified ') SELECT ' test_id ', ' column_a ', ' active ', ' created ', ' modified ' FROM ' test_pt_online_schema_change '。' test_a ' FORCE INDEX(' PRIMARY ') WHERE ((' test_id ' >= ?)) AND ((' test_id ' <= ?))锁定共享模式/*pt-online-schema-change 7147 copy nibble*/with ParamValues: 0=' 1 ', 1 =“14998”/usr/bin/pt-online-schema-change行11336。# # pt_online_schema_change:11242 7147重试失败:DBD::mysql::st execute failed: wsprep检测到死锁/冲突并中止事务。尝试重新启动事务[声明INSERT LOW_PRIORITY IGNORE INTO ' test_pt_online_schema_change '。' _test_a_new ' (' test_id ', ' column_a ', ' active ', ' created ', ' modified ') SELECT ' test_id ', ' column_a ', ' active ', ' created ', ' modified ' FROM ' test_pt_online_schema_change '。' test_a ' FORCE INDEX(' PRIMARY ') WHERE ((' test_id ' >= ?)) AND ((' test_id ' <= ?))锁定共享模式/*pt-online-schema-change 7147 copy nibble*/with ParamValues: 0=' 1 ', 1 =“14998”/usr/bin/pt-online-schema-change行11336。# #重试:3845 7147尝试代码不成功#清理任务:6550 7147调用清理任务代码(0x32f6878) # pt_online_schema_change:9319 7147清理触发器…

    我们已经尝试在生产环境中降低块大小,但仍然遇到了这个问题。

    附件

      活动

          carlos.salguero"></span></span>卡洛斯Salguero</span></span>
                  </dd>
                 </dl>
                 <dl>
                  <dt title=
          futuresam"></span></span>山姆·格兰特</span></span>
                  </dd>
                 </dl>
                </div>
                <div class=
          投票:
          0 为这个问题投票
          观察人士:
          4 开始关注这个问题

          日期

            创建:
            更新:
            解决:

            时间跟踪

              估计:
              原始估计-未指定"></td>
                     </tr>
                    </tbody>
                   </table>
                  </dd>
                  <dd id= 未指定
              剩余:
              剩余估计- 0分钟"></td>
                     </tr>
                    </tbody>
                   </table>
                  </dd>
                  <dd id= 0米
              记录:
              时间:2天"></td>
                     </tr>
                    </tbody>
                   </table>
                  </dd>
                  <dd id= 二维

              聪明的清单