【OceanBase诊断调优】—— checksum error ret=-4103 问题排查

server/2024/9/22 22:47:20/

适用版本

OceanBase 数据库所有版本。

什么是 checksum

  • data checksum:一个 SSTable 中所有宏块内存二进制计算出来的 checksum 值。反映了宏块中的数据和数据分布情况。如果宏块中数据一致但是数据分布不一致,计算出来的 checksum 也不相等。

  • column checksum:SSTable 中所有行中相同列计算出来的 checksum 值,假设这个表共有 3 列,则会有 3 个 column checksum 值与每个列对应。

checksum 什么时候校验

在合并之后,Root Service 会进行 checksum 校验,主要校验两种情况。

  • 副本间 data checksum:校验一个分区多个副本,相同 snapshot 的 Major SSTable 的 data checksum,应该相等。

  • 主表索引表 column checksum:校验主表和索引表,相同 snapshot 的 Major SSTable,相同列的 column checksum,应该相等。

如果任一分区出现了 checksum 不一致的情况,就会报错 CHECKSUM ERROR。

CHECKSUM ERROR 如何排查

  • 如何判断是否出现了 checksum error。

    • OceanBase 数据库 V1.x、V2.x、V3.x 版本。

      obclient> select * from __all_zone;   // 看 merge_status 列
      
    • OceanBase 数据库 V4.x 版本。

      obclient> select * from CDB_OB_MAJOR_COMPACTION;   // 看 IS_ERROR 列和 INFO 列
      
  • 查看具体哪个分区出现了 checksum error。

    obclient> select * from CDB_OB_TABLET_CHECKSUM_ERROR_INFO;
    obclient> select * from CDB_OB_COLUMN_CHECKSUM_ERROR_INFO;

附录

OceanBase 敏捷诊断工具(OceanBase Diagnostic Tool, 简称obdiag) 是一款源代码开源敏捷黑屏诊断工具,可以对OceanBase集群进行一键集群巡检、一键分析、一键根因分析以及一键诊断信息收集。 

obdiag 下载地址:https://www.oceanbase.com/softwarecenter

obdiag 官方文档:https://www.oceanbase.com/docs/obdiag-cn

obdiag github地址:https://github.com/oceanbase/obdiag

obdiag 开发者营地:诊断工具 · OceanBase 技术交流


http://www.ppmy.cn/server/40480.html

相关文章

分享5个免费AI写作软件

在数字化时代,人工智能(AI)正以惊人的速度渗透到我们生活的方方面面,而写作领域也不例外。AI写作工具的出现,不仅改变了传统的写作流程,更在创意表达、文本生成、语言校正等方面展现了其独特的优势。这些工…

py黑帽子学习笔记_环境准备

1 下载os装os 下载一个kali虚机镜像然后用虚机管理软件创虚机,装完如下图,我用的版本是2024.1的版本kali-linux-2024.1-installer-amd64,可以从镜像站下载,官网下的慢还断网Index of /kali-images/kali-2024.1/ | 清华大学开源软…

Vue3实战笔记(16)—pinia基本用法--Getter

文章目录 前言一、pinia的getter简单理解二、访问其他 store 的 getter总结 前言 在 Pinia 中,getter 类似于 Vuex 中的 getter,允许你从 store 中派生出一些状态,而不需要修改原始状态。这使得我们可以创建基于现有状态的计算属性。 一、pi…

[C/C++] -- 观察者模式

观察者模式是一种行为型设计模式,用于定义对象间的一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 观察者模式涉及以下几个角色: 主题(Subject)&…

【linux软件基础知识】-cdev_alloc

struct cdev *cdev_alloc(void) {struct cdev *p = kzalloc(sizeof(struct cdev), GFP_KERNEL);if <

oracle 行转列及列转行

行转列 使用pivot函数实现 行转列 with temp as( select 四川省 nation ,成都市 city,第一 ranking from dual union all select 四川省 nation ,绵阳市 city,第二 ranking from dual union all select 四川省 nation ,德阳市 city,第三 ranking from dual union all select 四…

利用爬虫解决数据采集难题

文章目录 安装为什么选择 BeautifulSoup 和 requests&#xff1f;安装 BeautifulSoup 和 requests解决安装问题 示例总结 在现代信息时代&#xff0c;数据是企业决策和发展的关键。然而&#xff0c;许多有用的数据分散在网络上&#xff0c;且以各种格式和结构存在&#xff0c;因…

数字藏品平台遭受科技攻击时的防护策略与攻击类型判定

随着区块链技术和数字经济的飞速发展&#xff0c;数字藏品平台逐渐成为炙手可热的投资领域。然而&#xff0c;这也使其成为了黑客攻击的重要目标。本文将深入探讨数字藏品平台可能遭遇的几种主要科技攻击类型&#xff0c;并提出相应的防护措施和判定方法。 一、51%攻击 攻击描…