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

相关推荐
运维行者_3 小时前
应用性能监控怎么选?从调用链到用户体验的五个能力维度
运维·服务器·数据库·人工智能·mysql·性能优化·应用性能监控
曹牧7 小时前
C#:空合并运算符
java·前端·数据库
小羊没烦恼!8 小时前
铁道部新客票系统设计(二)
开发语言·前端·数据库·python·oracle·c#·php
泡海椒9 小时前
JQuick-SQL JOIN 查询:连接注册数据集的正确方式
数据库·sql
xiaogai_gai9 小时前
钉钉月结报销到金蝶付款单同步方案实战教程
大数据·数据库·钉钉
Nturmoils10 小时前
报表总在扫大表,列存储应该放在哪一层
数据库
夜雪一千10 小时前
ShardingSphere 雪花 / UUIDv7 主键分片实战 + SQL 建表示例
数据库·sql
Elastic 中国社区官方博客11 小时前
Elasticsearch:安装自行管理的 Elastic Stack 集群
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·全文检索
PingCAP11 小时前
Agent 从 Demo 到生产,到底卡在哪?
数据库·tidb·agent