PostgreSQL 14.4 更新,修復索引損壞

PostgreSQL DBMS 14.4 的修正版本已經創建,它消除了一個嚴重問題,在某些情況下,執行“CREATE INDEX CONCURRENTLY”和“REINDEX CONCURRENTLY”命令時會導致索引中不可見的資料損壞。 在使用指定命令建立的索引中,某些記錄可能沒有被考慮在內,這將導致在執行涉及有問題索引的 SELECT 查詢時遺失行。

若要確定B樹索引是否已損壞,可以使用指令「pg_amcheck –heapallindexed db_name」。 如果發現錯誤或在先前的版本中使用了指令「CREATE INDEX CONCURRENTLY」和「REINDEX CONCURRENTLY」與其他類型的索引(GiST、GIN 等),則更新至版本 14.4 後,建議使用下列指令執行重新索引「reindexdb —all”實用程式或命令“REINDEX CONCURRENTLY index_name”。

此問題僅影響 14.x 分支,其中包括排除與執行 VACUUM 操作時執行「CREATE INDEX CONCURRENTLY」和「REINDEX CONCURRENTLY」相關的某些事務的最佳化。 由於這些最佳化,在 CONCURRENTLY 模式下建立的索引不包括在堆記憶體中在索引建立期間更新或截斷的一些元組。

來源: opennet.ru

添加評論