left link changed unexpectedly in block xxxx of index ““index_xxxxx“

文章目录

环境

系统平台:N/A

版本:10.3

症状

对表执行vaccum操作时,提示索引相关的错误,信息如下:

复制代码
testdb=# vacuum  testtable01;
ERROR:  left link changed unexpectedly in block 73592 of index "index_col01"
testdb=# vacuum  freeze testtable01;
ERROR:  left link changed unexpectedly in block 73592 of index "index_col01"

问题原因

index_col01索引文件损坏,导致在73592 块上获取到的索引页的链表结构被破坏了,需要重建索引修复。

解决方案

重建索引解决。命令如下:

方式一:不开并行重建索

sql 复制代码
testdb=# reindex index index_col01;

注:PostgreSQL 10.3不支持并行重建索引,这样重建索引会锁表会阻塞DML操作,建议在业务空闲期间操作。

方式二:先建立新索引,再删掉老的索引

sql 复制代码
testdb=# create index CONCURRENTLY index_col02 on testtable01(col1);
CREATE INDEX
testdb=# drop index index_col01;
DROP INDEX

注:因为postgresql10.3 不能并发的重建旧的索引,可以通过先建后删的方法在postgresql10.3下可以避免reindex阻塞其他DML。

报错编码

left link changed unexpectedly in block of index

相关推荐
一只幸运猫.1 小时前
核心概念层——深入理解 Agent 是什么
大数据·数据库·人工智能
川石课堂软件测试1 小时前
软件测试|常见面试题整理
数据库·python·jmeter·mysql·appium·postman·prometheus
●VON1 小时前
小米突然发短信:送你100万亿Token!有人已收到,有人还没?手把手教你白嫖
数据库·人工智能·skills
码农阿豪1 小时前
AI时代,国产数据库的黄金机遇:以KB数据库为例,看自主创新如何引领未来
数据库·人工智能·oracle
gQ85v10Db2 小时前
Redis分布式锁进阶第二十二篇
数据库·redis·分布式
薪火铺子2 小时前
MySQL 锁机制与死锁分析深度解析
数据库·mysql
曹牧3 小时前
Oracle:将包含属性(Attributes)的 XML 数据解析为表格数据
xml·数据库·oracle
@小匠3 小时前
Redis RDB持久化之 save 自动备份检查机制
数据库·redis·bootstrap
折哥的程序人生 · 物流技术专研3 小时前
从“卡死”到“跑通”:WMS机器学习全流程实战排坑记
数据库·人工智能·机器学习