Aktualizace PostgreSQL 14.4 s opravou poškození indexu

Byla vytvořena opravná verze PostgreSQL DBMS 14.4, která odstraňuje závažný problém, který za určitých okolností vede k neviditelnému poškození dat v indexech při provádění příkazů „CREATE INDEX CONCURRENTLY“ a „REINDEX CONCURRENTLY“. V indexech vytvořených pomocí zadaných příkazů nemusí být některé záznamy zohledněny, což povede k chybějícím řádkům při provádění SELECT dotazů zahrnujících problematické indexy.

Chcete-li zjistit, zda byly indexy B-stromu poškozeny, můžete použít příkaz „pg_amcheck –heapallindexed db_name“. Pokud jsou identifikovány chyby nebo byly příkazy „CREATE INDEX CONCURRENTLY“ a „REINDEX CONCURRENTLY“ použity v předchozích vydáních s jinými typy indexů (GiST, GIN atd.), po aktualizaci na verzi 14.4 se doporučuje provést reindexaci pomocí nástroj „reindexdb —all“ nebo příkaz „REINDEX CONCURRENTLY index_name“.

Problém se týká pouze větve 14.x, která zahrnovala optimalizace, které vylučují některé transakce spojené s prováděním „CREATE INDEX CONCURRENTLY“ a „REINDEX CONCURRENTLY“ při provádění operace VACUUM. V důsledku těchto optimalizací indexy vytvořené v režimu CONCURRENTLY neobsahovaly některé n-tice v paměti haldy, které byly aktualizovány nebo zkráceny během vytváření indexu.

Zdroj: opennet.ru

Přidat komentář