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

相关推荐
星云API|微信接口开发1 小时前
企业微信二次开发实战笔记:如何用在线调试快速验证接口功能
数据库·笔记·企业微信
隔窗听雨眠7 小时前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
samson_www7 小时前
Oracle数据泵拷贝表空间
数据库·dba
呆萌很8 小时前
MySQL 8.4 LTS 完整安装教程
数据库·mysql
天空'之城8 小时前
单片机基础核心知识点汇总(三十三)
数据库·单片机·嵌入式硬件
爱吃苹果的日记本10 小时前
数据结构第一课
c语言·数据结构·数据库·学习·c#
张小姐的猫10 小时前
【AI大模型接入SDK】 —— Gemini接入封装
android·数据结构·数据库·c++·人工智能·python
Thomas214310 小时前
mysql 索引面试复习
数据库·mysql·面试
Elastic 中国社区官方博客10 小时前
Elasticsearch Python DSL 客户端开发
大数据·数据库·python·elasticsearch·搜索引擎·全文检索