Posodobitev PostgreSQL 14.4 s popravkom poškodovanega indeksa

Ustvarjena je bila popravljalna izdaja PostgreSQL DBMS 14.4, ki odpravlja resno težavo, ki v določenih okoliščinah vodi do nevidne poškodbe podatkov v indeksih pri izvajanju ukazov “CREATE INDEX CONCURRENTLY” in “REINDEX CONCURRENTLY”. V indeksih, ustvarjenih z navedenimi ukazi, nekateri zapisi morda ne bodo upoštevani, kar bo povzročilo manjkajoče vrstice pri izvajanju poizvedb SELECT, ki vključujejo problematične indekse.

Če želite ugotoviti, ali so bili indeksi B-drevesa poškodovani, lahko uporabite ukaz “pg_amcheck –heapallindexed db_name”. Če so odkrite napake ali sta bila ukaza »CREATE INDEX CONCURRENTLY« in »REINDEX CONCURRENTLY« uporabljena v prejšnjih izdajah z drugimi vrstami indeksov (GiST, GIN itd.), je po posodobitvi na različico 14.4 priporočljivo izvesti ponovno indeksiranje z pripomoček “reindexdb —all” ali ukaz "REINDEX CONCURRENTLY index_name."

Težava vpliva samo na vejo 14.x, ki je vključevala optimizacije, ki izključujejo nekatere transakcije, povezane z izvajanjem »CREATE INDEX CONCURRENTLY« in »REINDEX CONCURRENTLY« pri izvajanju operacije VACUUM. Zaradi teh optimizacij indeksi, ustvarjeni v načinu CONCURRENTLY, niso vključevali nekaterih tupl v pomnilniku kopice, ki so bili posodobljeni ali okrnjeni med ustvarjanjem indeksa.

Vir: opennet.ru

Dodaj komentar