暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase创建索引超时错误一则

原创 清酒和歌 2020-07-31
2750

概述

问题描述:

在构建索引时,提示-4064,mysql命令行客户端提示:Lost connection to MySQL server during query;即使是一张非常小的表也是如此。除索引操作外,其他事物操作一切正常
会话参数如下:
ob_query_timeout=1000000000000;
ob_trx_timeout=1000000000000;
ob_trx_idle_timeout=1000000000000;
interactive_timeout=28800;
wait_timeout=28800;
版本信息:2.2.20

问题分析

分析过程:

在7月29日下午添加全局索引时,MySQL返回报错:Lost connection to MySQL server during query;提示超时。
为其他表添加索引时,添加索引动作一直被挂起,直至命令行返回超时。
具体过程:

1、查看ob的日志,发现周期性的在重复一个调度任务,根据唯一的trace_id定位到具体SQL,可以看到就是添加索引的语句。
2、查询:select * from __all_virtual_rebalance_task_stat where is_scheduled = ‘YES’ 发现有非常多的rebalace 的任务在执行,is_scheduled字段为YES状态,而且is_replicate字段为No状态,可以判断索引处于构建状态,但是没有到达构建的最终状态。
3、查询:select * from __all_virtual_table表发现并不存在该索引。。
4、定位到时由于索引超时取消创建,但是后台的构建任务没有被回退清理导致

解决

暂时解决方案:

1、禁止构建全局索引。
2、启动强制切换rs来暂时恢复

  1. ALTER TENANT sys PRIMARY_ZONE=’’; --设置sys租户的zone,使其切换
  2. ALTER SYSTEM SWITCH REPLICA LEADER PARTITION_ID=‘0%0@1099%’ SERVER=‘IP:2882’。–将所有的核心表切主

根本解决方案:

集群升级最新版本

最后修改时间:2020-08-17 18:48:50
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论