PostgreSQL 14.4 frissítés az index sérülésének javításával

Létrejött a PostgreSQL DBMS 14.4 javító kiadása, amely kiküszöböli azt a súlyos problémát, amely bizonyos körülmények között láthatatlan adatsérüléshez vezet az indexekben a „CREATE INDEX CURRENTLY” és „REINDEX CONCURRENTLY” parancsok végrehajtásakor. A megadott parancsokkal létrehozott indexekben előfordulhat, hogy egyes rekordok nem lesznek figyelembe véve, ami sorok hiányához vezet a problémás indexeket tartalmazó SELECT lekérdezések végrehajtásakor.

A „pg_amcheck –heapallindexed db_name” paranccsal megállapíthatja, hogy a B-fa indexei sérültek-e. Ha hibákat észlel, vagy az „INDEX EGYEZMESÜL LÉTREHOZÁSA” és az „EGYEZMESÜL ÚJRAINDEX” parancsokat használták a korábbi kiadásokban más típusú indexekkel (GiST, GIN stb.), akkor a 14.4-es verzióra való frissítés után ajánlatos az újraindexelést a "reindexdb —all" segédprogram vagy a "REINDEX CONCURRENTLY index_name" parancs.

A probléma csak a 14.x ágat érinti, amely olyan optimalizálásokat tartalmazott, amelyek kizártak bizonyos tranzakciókat, amelyek a VÁKUUM művelet végrehajtásakor a „CREATE INDEX CONCURRENTLY” és az „REINDEX CONCURRENTLY” végrehajtásához kapcsolódnak. Ezen optimalizálás eredményeként az EGYIDEJŰ módban létrehozott indexek nem tartalmaztak néhány olyan sort a kupacmemóriában, amelyeket az index létrehozása során frissítettek vagy csonkoltak.

Forrás: opennet.ru

Hozzászólás