[转帖]金仓数据库KingbaseES V8R6索引坏块故障处理
案例说明:
在执行表数据查询时,出现下图所示错误,索引故障导致表无法访问,后重建索引问题解决。本案例复现了此类故障解决过程。
适用版本:
KingbaseES V8R3/R6
一、创建测试环境
-
# 表结构信息
-
prod=# \d+ test1
-
Table "public.test1"
-
Column| Type |Collation| Nullable |Default| Storage | Stats target | Description
-
--------+---------+-----------+----------+---------+----------+--------------+-------------
-
id |integer||notnull|| plain ||
-
v_name |varchar|||| extended ||
-
Indexes:
-
"test1_pkey" PRIMARY KEY, btree (id)
-
"test1_name_ind" btree (v_name)
-
Access method: heap
-
-
# 插入测试数据
-
prod=# insertinto test1 values (generate_series(1,10000),'usr'||generate_series(1,10000));
-
INSERT010000
-
prod=# selectcount(*) from test1;
-
count
-
-------10000
-
(1row)
-
-
# 查看索引应用
-
prod=# explain analyze select*from test1 where v_name='usr2';
-
QUERY PLAN
-
-----------------------------------------------------------------------------------------------------------------------
-
Index Scan using test1_name_ind on test1 (cost=0.29..8.30rows=1 width=11) (actual time=0.023..0.024rows=1 loops=1)
-
Index Cond: ((v_name)::text ='usr2'::text)
-
Planning Time: 0.055 ms
-
Execution Time: 0.038 ms
-
(4rows)
二、模拟数据文件故障
1、查看索引文件存储路径
-
prod=# select pg_relation_filepath('test1_name_ind');
-
pg_relation_filepath
-
----------------------
-
base/16385/26800
-
(1row)
2、模拟数据文件被破坏
-
[kingbase@node102 data]$ ls -lh base/16385/26800
-
-rw------- 1 kingbase kingbase 240K Nov 1715:01 base/16385/26800
-
-
[kingbase@node102 data]$ dd if=/dev/zero of=/data/kingbase/v8r6_c6/data/base/16385/26800 bs=8k count=22+0 records in2+0 records out
-
16384 bytes (16 kB) copied, 0.000147959 s, 111 MB/s
-
-
[kingbase@node102 data]$ ls -lh base/16385/26800
-
-rw------- 1 kingbase kingbase 16K Nov 1715:04 base/16385/26800# 如下所示索引故障导致表访问错误
-
prod=# select * from test1;ERROR: index "test1_name_ind" contains unexpected zero page at block 0HINT: Please REINDEX it.
三、重建索引解决故障
1、查看表索引信息
-
prod=# \d+ test1;
-
Table"public.test1"Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
-
--------+---------+-----------+----------+---------+----------+--------------+-------------
-
id | integer | | not null | | plain | |
-
v_name | varchar | | | | extended | |
-
Indexes:
-
"test1_pkey"PRIMARYKEY, btree (id)
-
"test1_name_ind" btree (v_name)
-
Access method: heap
2、重建索引
-
# 索引重建
-
prod=# reindex index test1_name_ind;
-
REINDEX
-
-
#如下所示,重建索引后表数据访问正常
-
prod=# select*from test1 limit 3;
-
id | v_name
-
----+--------1| usr1
-
2| usr2
-
3| usr3
-
(3rows)
-
-
prod=# select*from test1 where v_name='usr2';
-
id | v_name
-
----+--------2| usr2
-
(1row)
-
-
prod=# explain analyze select*from test1 where v_name='usr2';
-
QUERY PLAN
-
-----------------------------------------------------------------------------------------------------------------------
-
Index Scan using test1_name_ind on test1 (cost=0.29..8.30rows=1 width=11) (actual time=0.023..0.024rows=1 loops=1)
-
Index Cond: ((v_name)::text ='usr2'::text)
-
Planning Time: 0.055 ms
-
Execution Time: 0.038 ms
-
(4rows)
四、总结
对于KingbaseES数据库,索引块的损坏会影响到表数据的正常访问,对于索引块故障处理比较简单,直接重建索引一般都可以解决此类问题。
[转帖]金仓数据库KingbaseES V8R6索引坏块故障处理的更多相关文章
- 通过ODBC接口访问人大金仓数据库
国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...
- QT 之 ODBC连接人大金仓数据库
QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...
- 通过jmeter连接人大金仓数据库
某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...
- PostgreSQL 索引坏块处理
今天应用反应有张表查询报错,报错信息如下 back=# select max(create_time) from public.tbl_index_table where create_time> ...
- PostgreSQL 恢复大法 - 恢复部分数据库、跳过坏块、修复无法启动的数据库
转载自:https://yq.aliyun.com/articles/582880 背景 一个较大的数据库,如何只恢复一部分数据(例如只恢复某个DB). 如果访问有坏块的表. 如何从无法启动的数据库中 ...
- linux安装国产数据库(金仓数据库,达梦数据库,南大通用数据库)
今天在公司做的任务是,在Linux的环境下安装三种数据库,结果一种数据库也没有安装好,首先遇到的问题是安装南大通用数据库遇到安装的第五步,就出现问题了,问题是Gbase SDK没有安装成功,以及Gba ...
- Rocky4.2下安装金仓v7数据库(KingbaseES)
1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 jdbh:~ # uname -ra Linux jdbh -x86_64 # SMP Fri Dec :: CST x86_64 G ...
- 润乾配置连接kingbase(金仓)数据库
问题背景 客户根据项目的不同,使用润乾连接的数据库类型各种各样,此文针对前几日使用润乾设计器连接kingbase金仓数据库做一个说明. kingbase金仓数据库是一款国产数据库,操作方式和配置 ...
- 对Oracle数据库坏块的理解
1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说 ...
- 金仓Kingbase数据库网页数据维护分析工具
金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...
随机推荐
- (Dnc系列)借助Dnc.Events.InMemory在三分钟实现一个内存级别的事件驱动处理模型
前言 Dnc.Events是在借鉴领域驱动设计大佬daxnet的博客基础上做的基于内存级别的EDA处理模型,不清楚EDA的童鞋请自行百度. 第一分钟 安装Nuget Dnc.Events.InMemo ...
- java中获取内网IP
package com.dashan.utils.iputils; import org.apache.commons.lang.StringUtils; import javax.servlet.h ...
- 2021平(jia)凡(ban)的一年
0x00 刚刚把<平凡的世界>电视剧看完.也不知道什么原因,又去刷了一遍, 可能是有那么一段时间比较迷茫.加班加到怀疑人生了吧. 记得当年第一次看这本小说还是17年,好像是为了借一本什么书 ...
- 华为云GaussDB助力工商银行、华夏银行斩获“十佳卓越实践奖”
近日,2023金融街论坛年会在北京成功举办.活动期间,由北京金融科技产业联盟举办的全球金融科技大会系列活动--分布式数据库金融应用研究与实践大赛获奖结果正式公布.其中,由华为云GaussDB参与支持的 ...
- MySQL数据库技术与应用:数据查询
摘要:数据查询是数据库系统应用的主要内容,也是用户对数据库最频繁.最常见的基本操作请求. 数据查询 数据查询是数据库系统应用的主要内容,也是用户对数据库最频繁.最常见的基本操作请求.数据查询可以根据用 ...
- Serverless 架构就不要服务器了?
摘要:Serverless 架构不是不要服务器了,而是依托第三方云服务平台,服务端逻辑运行在无状态的计算容器中,其业务层面的状态则被开发者使用的数据库和存储资源所记录. Serverless 是什么 ...
- 人人都在聊的云原生数据库Serverless到底是什么?
摘要:华为云数据库营销专家Tony Chen和华为云数据库高级产品经理佳恩开展了一场关于云原生数据库与Serverless结合的直播对话. 云计算的迅猛发展推动了数据库的变革,云原生数据库成为当前数据 ...
- 消除视觉Transformer与卷积神经网络在小数据集上的差距
摘要:本文通过多种操作构建混合模型,增强视觉Transformer捕捉空间相关性的能力和其进行通道多样性表征的能力,弥补了Transformer在小数据集上从头训练的精度与传统的卷积神经网络之间的差距 ...
- 【“互联网+”大赛华为云赛道】GaussDB命题攻略:支持三种开发语言,轻松完成数据库缓冲池
摘要:七届中国国际"互联网+"大学生创新创业大赛火热报名中,为了帮助参赛者更好了解赛题设计思路和命题方向,华为云产业命题赛道举行了线上直播解读,华为云数据库资深架构师苏斌在直播间详 ...
- 零售品牌如何挑选达人 KOL?火山引擎 VeDI 有妙招!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 国内消费市场正在发生一些新变化. 近日,由中国人民大学国家发展与战略研究院.经济学院等联合主办的第 57 期宏观经 ...