【OceanBase诊断调优 】—— 建索引执行报错问题排查

devtools/2024/9/20 7:15:44/ 标签: 数据库, oceanbase

背景

建索引可能因各种各样的原因产生报错,本文主要介绍碰到建索引报错时,如何定位到建索引报错的日志,方便后续进一步使用工具一键收集日志/根因分析,分析根本原因。

备注:此文档中涉及的语句适用于版本号>=4.2.3和 >= 4.3的。

问题排查

建索引主要分为几个阶段

  1. 发送RPC给RS执行建索引的第一步schema变更,并生成调度任务
  2. RS按照状态机执行调度任务,具体分为如下步骤
    1. 等事务结束
    2. 数据补全
    3. 校验checksum
    4. 索引表生效
    5. 失败/成功清理
  1. 建索引的工作线程刷新到RS执行任务完成,返回结果

建索引报错的日志分析的基本思路是根据建索引的基本步骤,判断建索引失败在哪一步,然后决策收集哪些机器的日志,排查的基本步骤如下

  1. 获取DDL报错表格的名字和租户的名字,可以作为输入参数
  2. 根据表格名字和租户名字,获取table_id,tenant_id
select tenant_id from __all_tenant where tenant_name = '租户名';
select table_id from __all_virtual_table where table_name = '表名' and tenant_id = '租户id';
  1. 根据索引名,查询到索引表ID
1. 根据索引名,查询索引表的id
select table_id from __all_virtual_table_history where tenant_id = 'xxx' and data_table_id = 'xxx' and table_name like '%索引名%';
  1. 根据索引表ID,查询__all_virtual_ddl_error_message表格中是否有记录(select task_id from __all_virtual_ddl_error_message where tenant_id = 'xxxx' and object_id = 'xxxx'),如果无记录,那说明失败在发送RPC,打印出信息,提示此时需要人工接入排查(这里后续梳理出需要添加的信息方便排查问题),否则进入步骤5
  2. 根据__all_virtual_ddl_error_message中查询到的task_id字段,查询__all_rootservice_event_history表(select event, trace_id,value6,rs_svr_ip, rs_svr_port from __all_rootservice_event_history where tenant_id = xxxx and value4 = 'task_id' and value2 != 0 and event != 'switch_state' and event not like 'index build task process fail' order by gmt_create desc limit 1;),根据失败所在的步骤,决策收集的信息,如果event字段的值为是ddl wait trans end ctx try_wait,那么进入步骤6,如果是 index sstable build task finish,那么进入步骤7,如果是其他的步骤,那么进入步骤8
  3. 如果是在等事务结束阶段失败,也就是event的名字为ddl wait trans end ctx try_wait,那么根据trace_id,去捞主表所有的tablet所在leader节点的日志
  4. 如果是在补数据阶段失败,那么根据value6字段解析出补数据失败的observer地址,根据observer地址以及trace_id,捞取observer对应的日志
  5. 如果是其他阶段失败,那么根据trace_id,以及rs_svr_ip和rs_svr_port来捞取执行时主RS的日志

OceanBase敏捷诊断工具相关链接:

github仓库GitHub - oceanbase/oceanbase-diagnostic-tool: OceanBase Diagnostic Tool is designed to help OceanBase users quickly gather necessary information and analyze the cause of the problem.
rpm包下载OceanBase分布式数据库-海量数据 笔笔算数
文档链接OceanBase分布式数据库-海量数据 笔笔算数

http://www.ppmy.cn/devtools/14287.html

相关文章

iOS 17上如何恢复数据?iOS 17 数据恢复软件

“您好,我正在为我的 iPhone 寻找一款iOS 17 数据恢复软件。升级到 iOS 17 后,我丢失了 iPhone 上的所有照片、联系人和消息。有什么建议吗?” ——丹尼 iOS 17数据恢复软件下载 升级到iOS 17后如何恢复丢失的数据?由于在 iPhone…

linux权限维持(二)

3.SSH 后门 3.1 SSH 软连接后门 软连接后门的原理是利用了 PAM 配置文件的作用,将 sshd 文件软连接名称设置为 su ,这样应用在启动过 程中他会去PAM 配置文件夹中寻找是否存在对应名称的配置信息 (su) ,然而 su 在 pam_rootok 只检测 uid…

pytorch与深度学习

PyTorch是一个开源的深度学习框架,与深度学习密切相关。它提供了丰富的工具和函数,使得深度学习任务变得更加简单和高效。 以下是PyTorch与深度学习相关的几个方面: 张量操作:PyTorch中的核心数据结构是张量(tensor&a…

c++:数据结构链表list的模拟实现

文章目录 链表的知识回顾前期工作构造节点迭代器注意构造迭代器解引用*迭代器迭代器->迭代器迭代器- -判断两个迭代器是否相等 链表empty_init构造拷贝构造swapoperatorbegin和endinsertpush_backpush_fronterasepop_backpop_frontsizeemptyclear析构 链表的知识回顾 链表是…

探索人工智能的边界:GPT 4.0与文心一言 4.0免费使用体验全揭秘!

探索人工智能的边界:GPT与文心一言免费试用体验全揭秘! 前言免费使用文心一言4.0的方法官方入口进入存在的问题免费使用文心一言4.0的方法 免费使用GPT4.0的方法官方入口进入存在的问题免费使用GPT4.0的方法 前言 未来已来,人工智能已经可以…

【 AIGC 研究最新方向(上)】面向平面、视觉、时尚设计的高可用 AIGC 研究方向总结

目前面向平面、视觉、时尚等设计领域的高可用 AIGC 方向有以下 4 种: 透明图层生成可控生成图像定制化SVG 生成 本篇(上篇)介绍 1、2,而下篇将介绍 3、4。 透明图层生成 LayerDiffuse 代表性论文:Transparent Imag…

第55篇:创建Nios II工程之Hello_World<一>

Q:本期我们开始介绍创建Platform Designer系统,并设计基于Nios II Professor的Hello_world工程。 A:设计流程和实验原理:需要用到的IP组件有Clock Source、Nios II Professor、On-Chip Memory、JTAG UART和System ID外设。Nios I…

Yolov5 v7.0目标检测——详细记录环境配置、自定义数据处理、模型训练与常用错误解决方法(数据集为河道漂浮物)

1. Yolov5 YOLOv5是是YOLO系列的一个延伸,其网络结构共分为:input、backbone、neck和head四个模块,yolov5对yolov4网络的四个部分都进行了修改,并取得了较大的提升,在input端使用了Mosaic数据增强、自适应锚框计算、自…

Vue实现多角色登录,Vue-Router路由守卫控制权限页面

实现页面侧边栏和头部不变,当点击某个功能时,只有主体部分发生变化,这要用到子路由技术 我的项目结构如上,其中包含侧边栏和头部的文件是Manage.vue,主页面是Home.vue,个人页面是Person.vue,用户…

redis分布式锁 -- 基于redisson实现

1. 总结 1.1 加锁机制 线程去获取锁,获取成功: 执行 lua脚本,保存数据到 redis数据库。 线程去获取锁,获取失败: 一直通过 while循环尝试获取锁,获取成功后,执行 lua脚本,保存数据到 redis数据库。 1.2…

《深入浅出.NET框架设计与实现》笔记6.1——ASP.NET Core应用程序多种运行模式之一——自宿主(Self-Hosting)

ASP.NET Core应用程序可以在多种运行模式下运行,包括自宿主(Self-Hosting)、IIS服务承载、桌面应用程序、服务承载。 因此选择和时的模式很重要。 自宿主(Self-Hosting) 自宿主是指 ASP.NET Core 应用程序独立运行&a…

ArcGIS无法开始编辑TIN!开始编辑TIN显示灰色

ArcGIS无法开始编辑TIN!开始编辑TIN显示灰色? 解决方案! 1、确认自定义——扩展模块中空间分析、3D分析模块勾选。 2、确认以上后,还是不能编辑的话,我们可以调出 3D分析分析工具条,你就会发现。TIN编辑工…

内核定时器

内核定时器 定时器是我们最常用到的功能,一般用来完成延时功能。下面我们来学习linux提供的几种内核延时方法。 在真正使用内核定时器之前我们先看几个重要的系统全局变量: HZ:顾名思义就是频率, 在头文件include/asm-generic/param.h中定义 # define HZ CONFIG_HZ。而CON…

iOS问题记录 - Xcode 15安装低版本iOS模拟器(持续更新)

文章目录 前言开发环境问题描述问题分析1. 定位问题2. 逆向分析2.1. IDA Free2.2. Hopper Disassembler Demo 3. 模拟器日志4. supportedArchs 解决方案最后 前言 最近新需求很多,项目改动很大,开发完成后想测一遍在低版本iOS系统上的兼容性&#xff0c…

ROS Node

ROS Node ROS(Robot Operating System)节点是指在ROS中运行的基本单元,它们是一个独立的进程,执行特定的任务,并与其他节点进行通信以完成更复杂的功能。ROS节点是ROS中实现模块化、分布式和可扩展性的关键组件之一。…

力扣287. 寻找重复数

Problem: 287. 寻找重复数 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 利用二分查找搜索1 ~ n中重复的元素,我们每次取出当前二分查找的区间的中间元素mid并在元始的数组nums中统计小于mid的元素的个数count: 若count > mid则说明重复的…

解决Java Heap Space问题的排查与优化方法

引言: 在 Java 开发中,经常会遇到 “java heap space” 错误,这意味着程序需要更多的堆内存来执行所需的操作。本文将介绍如何排查和解决这个问题,并提供一些优化方法,以避免类似的错误发生。 1. 确认错误信息 当遇到…

【JavaScript】axios

基础使用 <script src"https://cdn.bootcdn.net/ajax/libs/axios/1.5.0/axios.min.js"></script> <script>axios.get(https://study.duyiedu.com/api/herolist).then(res> {console.log(res.data)}) </script>get - params <script s…

Node.js -- fs模块

文章目录 1. 写入文件1.1 写入文件1.2 同步和异步1.3 文件追加写入1.4 流式写入1.5 文件写入的场景 2. 读取文件2.1 异步和同步读取2.2 读取文件应用场景2.3 流式读取2.4 fs 练习 -- 文件复制 3. 文件重命名和移动4. 文件删除5. 文件夹操作5.1 创建文件夹5.2 读取文件夹5.3 删除…

更新至2022年上市公司数字化转型数据合集(四份数据合集)

更新至2022年上市公司数字化转型数据合集&#xff08;四份数据合集&#xff09; 一、2000-2022年上市公司数字化转型数据&#xff08;年报词频、文本统计&#xff09; 二、2007-2022年上市公司数字化转型数据&#xff08;年报和管理层讨论&#xff09;&#xff08;含原始数据…