我们在使用Doris的时候,有时候会遇到用户在查询的时候出现失败,出现类似下面这种错误:

tablet=33903.2001738452.784560b62ce005b4-03d036e54a7ff7bb, res=-xxx, backend=x.x.x.x

Doris 1.1.x 之前版本定位方法

这个时候我们都知道通过下面的命令来去查看这个tablet 情况

show tablet 33903

然后再返回的信息里执行最后有一列的命令

SHOW PROC '/dbs/11015/19297/partitions/19296/19298/19299';

这个时候我们可以看到这个tablet 所有的副本

这里只是演示,我的环境是单副本,实际情况下是多副本(默认三副本)

mysql> SHOW PROC '/dbs/11015/19297/partitions/19296/19298/19299'; 

好,到这里我们看到这出问题这个tablet 所有的副本,在上面这个查询返回结果里我们关注几个字段

  1. State :tablet 副本状态,NORMAL表示副本是正常的
  2. IsBad :副本是否损坏,如果是true,说明这个副本存在问题
  3. VersionCount :tablet 数据的版本数量,这个如果太多,说明compaction可能失败了,或者是compaction速度跟不上,需要去查日志,监控等,分析原因
  4. LstFailedVersion :这里如果值大于0说明这个副本是有问题的,正常情况下这个值只能是-1
  5. LstFailedTime :正常这个值是null,如果有值说明有问题,值对应的是最后失败的时间点
  6. 如果你数据是多副本,应该所有副本的DataSize,RowCount是完全一样的
  7. Version :这个是 tablet 副本的版本号,要和tablet所有的partition里的VisibleVersion 完全一致,否则说明这个tablet副本也是有问题的,正常情况下tablet所有副本Version都是和tablet 所在partition里的VisibleVersion完全一致。同时这个字段和LstSuccessVersion也是完全一致的
  8. 我们怎么去查看tablet 所在 Partition的Version
    1. 查看 tablet 所在 partition VisibleVersion

查看命令:

 SHOW PROC '/dbs/<db id>/<table id>/partitions';

这个命令会列出表的所有分区

在我们show tablet tablet_id 的时候返回的信息里最后一列,我们通过这一列可以知道我们要找的tablet 对应的 partition id

SHOW PROC '/dbs/11015/19297/partitions/19296/19298/19299';

这样我们就可以在下面这个列表里找到我们这个tablet 的 partition VisibleVersion

mysql> SHOW PROC '/dbs/11015/19297/partitions';

这个时候我们通过上面1-8条说明里讲解的内容就可以定位错误的 tablet 副本

  • 如果只是其中一个副本损坏,我们可以通过下面命令将这个副本设置成 bad ,删除副本,让其自动恢复

    ADMIN SET REPLICA STATUS PROPERTIES("tablet_id" = "10001", "backend_id" = "20001", "status" = "bad");

  • 如果是多个副本都损坏,并且是分区表的情况下,可以删除这个分区,然后手动重建这个分区,重新导入数据即可
  • 如果是多个副本都损坏,并且是非分区表的情况下,只能删除这个表重新导入数据。

Doris 1.1.x 之前版本定位方法

Doris 在 1.1.x 之后的版本里提供了一个更简单检查 tablet 副本状态的工具:

 ADMIN DIAGNOSE TABLET tblet_id

我们可以通过上面的命令去检查tablet 是否正常

该语句用于诊断指定 tablet。结果中将显示这个 tablet 的信息和一些潜在的问题。

示例:

mysql>  admin diagnose tablet 19299;

结果中的各行信息如下:

  1. TabletExist: Tablet是否存在
  2. TabletId: Tablet ID
  3. Database: Tablet 所属 DB 和其 ID
  4. Table: Tablet 所属 Table 和其 ID
  5. Partition: Tablet 所属 Partition 和其 ID
  6. MaterializedIndex: Tablet 所属物化视图和其 ID
  7. Replicas(ReplicaId -> BackendId): Tablet 各副本和其所在 BE。
  8. ReplicasNum: 副本数量是否正确。
  9. ReplicaBackendStatus: 副本所在 BE 节点是否正常。
  10. ReplicaVersionStatus: 副本的版本号是否正常。
  11. ReplicaStatus: 副本状态是否正常。
  12. ReplicaCompactionStatus: 副本 Compaction 状态是否正常。

Doris 运维篇:Apache Doris 如何定位处理问题的Tablet相关推荐

  1. centos7 如何安装部署k8s_架构运维篇(五):Centos7/Linux中安装部署RocketMQ

    上一篇 架构运维篇(四):Centos7/Linux中Tomcat安装SSL证书实践 这一篇讲一下在Centos7/Linux安装RocketMQ,MQ的具体应用场景和使用就不再啰嗦了.我在没有使用过 ...

  2. java安装不上有关故障排除,Java有关问题排查(运维篇)

    Java问题排查(运维篇) 每一位开发想必都会遇到线上服务告警,而导致这样原因的肯能有流量增加或是代码中bug异常没有抓住导致,而此刻我们就需要去排查问题. 1:业务增加,导致FGC频繁发送,如果不知 ...

  3. 蚂蚁金服 Service Mesh 大规模落地系列 - 运维篇

    <蚂蚁金服 Service Mesh 大规模落地系列>将会从核心.RPC.消息.无线网关.控制面.安全.运维.测试等模块对 Service Mesh 双十一大规模落地实践进行详细解析,文末 ...

  4. 视频教程-Prometheus+Grafana企业级监控实战(运维篇)2020年视频教程-Linux

    Prometheus+Grafana企业级监控实战(运维篇)2020年视频教程 资深DevOps工程师,曾经在华为,乐逗游戏工作,目前就职于知名物流公司工作 希望结合工作实践 给大家带来很多干货 周龙 ...

  5. spring Boot 2 运维篇(spring boot程序的打包与部署,多环境开发配置文件的配置,spring boot集成日志框架)

    目录 1.SpringBoot程序的打包与运行 程序打包 程序运行 SpringBoot程序打包失败处理 命令行启动常见问题及解决方案 SpringBoot项目快速启动(Linux版) 2.配置高级 ...

  6. doris历程_基于 Apache Doris 的小米增长分析平台实践

    1.背景 随着小米互联网业务的发展,各个产品线利用用户行为数据对业务进行增长分析的需求越来越迫切.显然,让每个业务产品线都自己搭建一套增长分析系统,不仅成本高昂,也会导致效率低下.我们希望能有一款产品 ...

  7. 解读 2018 之运维篇:我们离高效智能的运维还有多远

    2018 年接近尾声,InfoQ 策划了"解读 2018"年终技术盘点系列文章,希望能够给读者清晰地梳理出重要技术领域在这一年来的发展和变化.本篇文章是运维领域 2018 年终盘点 ...

  8. linux学习之运维篇

    RHCSA.RHCE Red Hat Linux认证学习指南(第6版) RHCSARHCE Red Hat Linux认证模拟考试解析与虚拟机(Exams EX200 & EX300)(配光盘 ...

  9. 华为云服务-运维篇-应用健康状况追踪-性能监测

    文章目录 前言 性能监测意义 应用性能监控 Java 应用探针 步骤一.登录虚拟机 步骤二 .Java应用启动添加配置项 步骤三. APM 步骤四.应用性能管理 APM 步骤五.查看监控的应用性能管理 ...

  10. 《Linux运维篇:Linux系统运维指南》

    一.Linux运维之知识篇 二.Linux运维之系统篇 <Linux运维总结:使用U盘制作Linux镜像> <Linux运维实战:创建LVM挂载到指定目录> <Linux ...

最新文章

  1. linux 设置与网络同步的时间
  2. 002_推箱子-关卡数据
  3. HuaWeiCloud_model_arts
  4. Hibernate——Query查询
  5. Shell for循环
  6. howdoi 简单分析
  7. ASP.NET Core中使用IOC三部曲(一.使用ASP.NET Core自带的IOC容器)
  8. avalon.js 转义html,avalon模块的内建适配器
  9. android默认exported_android:exported 属性详解-阿里云开发者社区
  10. HWM和delete,drop,truncate的关系
  11. ByteBufferMessageSet分析
  12. 《ActionScript 3.0基础教程》——2.2 显示队列概述
  13. php单例模式与工厂模式
  14. 昨天,JetBrains 推出“下一代 IDE”,对标VS Code?快看看有哪些值得期待的功能!...
  15. 3U VPX导冷高性能SRIO/以太网数据交换板
  16. Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)
  17. 【Linux】POSIX信号量
  18. python自动化运维博客_python自动化运维记录
  19. 谈谈人们常说的“一时糊涂,鬼迷心窍”!
  20. 【独行秀才】macOS Monterey 12.1正式版(21C52)原版镜像

热门文章

  1. Gale-Shapley 稳定匹配算法的C++实现
  2. 【蓝桥杯真题】走迷宫算法
  3. excel表 公式失效_如何在没有公式的情况下创建Excel工作表的副本
  4. imresize函数进行图像缩放及利用imrotate进行图像旋转
  5. ads pspice 导入_ADS中使用pspice模型
  6. 文件系统系列之一:fat文件系统的结构分析
  7. linux 内核参数 pte,Linux下通过线性地址得到页表项pte(X86和龙芯2F下)
  8. 常用的条形码类型以及如何选择条码类型、条形码字体和条形码控件
  9. 【UAV】光流传感器原理分析及讲解
  10. python function terminated un_python僵尸进程产生的原因