参考:
https://www.postgresql.org/message-id/CAPrE0SYkv7%3DqoyHKivAKzCW9_vFCe8jEph8ixTDA8Dh6ae%2BmFA%40mail.gmail.com https://wiki.postgresql.org/wiki/Locale_data_changes#RHEL.2FCentOS
复制
某天早上,开发人员反馈在select或者update时,会出现以下错误:
ERROR: posting list tuple with 7 items cannot be split at offset 137。
网上查询,有人说是索引重建可以解决,分析一下索引后,重建索引故障可以排除。
经过研究,发现可能是由于OS升级导致这个问题,具体可参考上面的引用文章,于是查到了一个全库检查索引的插件,pg_amcheck。
首先,确保 PostgreSQL 版本: pg_amcheck 在 PostgreSQL 12 及更高版本中可用。首先检查你的 PostgreSQL 版本,如果还没有安装,需要先安装postgresql-contrilib包。
后续部署过程如下:
ostgres=# CREATE EXTENSION amcheck; --切换需要每个检查的database上,创建插件 CREATE EXTENSION [postgres@DB01 ~]$ pg_amcheck -d db_name --发现有数百个索引有问题,报错如下: btree index "xxx.xxx_index": ERROR: item order invariant violated for index "unique_index_mac" DETAIL: Lower index tid=(244173,153) (points to heap tid=(818198,14)) higher index tid=(244173,154) (points to heap tid=(817446,23)) page lsn=3BA/23A11AA0.
复制
看来需要一个方法,把所有问题索引找出来,写入脚本进行统一重建:
-- 截取上面日誌內容,生成reindex.sql grep 'db_name' reindex_commands.sql | sed -n 's/.*"\(.*\)".*/\1/p' > reindex_db_name.sql --然後給第行加上reindex index concurrently : sed -i 's/^/reindex index concurrently /' reindex_tj_ims.sql --每行加上分号: [root@TJCloudMES-DBCN01 run]# sed -i 's/$/;/' reindex_tj_ims.sql 执行上面的sql,以重建索引 # psql -U postgres -d db_name -f reindex_db_name.sql
复制
执行上面的sql后,问题消失。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
外国CTO也感兴趣的开源数据库项目——openHalo
小满未满、
653次阅读
2025-04-21 16:58:09
9.9 分高危漏洞,尽快升级到 pgAdmin 4 v9.2 进行修复
严少安
364次阅读
2025-04-11 10:43:23
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
349次阅读
2025-04-15 14:48:05
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
322次阅读
2025-04-07 12:14:29
转发有奖 | PostgreSQL 16 PGCM高级认证课程直播班招生中!
墨天轮小教习
156次阅读
2025-04-14 15:58:34
墨天轮PostgreSQL认证证书快递已发(2025年3月批)
墨天轮小教习
135次阅读
2025-04-03 11:43:25
SQL 优化之 OR 子句改写
xiongcc
101次阅读
2025-04-21 00:08:06
融合Redis缓存的PostgreSQL高可用架构
梧桐
91次阅读
2025-04-08 06:35:40
PostgreSQL拓展PGQ实现解析
chirpyli
90次阅读
2025-04-07 11:23:17
Mysql/Oracle/Postgresql快速批量生成百万级测试数据sql
hongg
80次阅读
2025-04-07 15:32:54
TA的专栏
oracle
收录9篇内容
postgresql
收录3篇内容
热门文章
ORA-39700: database must be opened with UPGRADE option
2022-05-12 2710浏览
LRM-00109: could not open parameter file '/u01/app/oracle/product/12.1.0/db_1/dbs/initepps.ora'
2022-12-04 2405浏览
PostgreSQL中授予VACUUM,ANALYZE
2022-12-02 1454浏览
测试CentOS 8上以rpm方式安装oracle 19c
2023-02-15 1389浏览
MySQL:测试数据
2022-10-03 1360浏览