PostgreSQL 14.4 atjauninājums ar indeksa bojājumu labojumu

Ir izveidots PostgreSQL DBMS 14.4 koriģējošais laidiens, kas novērš nopietnu problēmu, kas noteiktos apstākļos izraisa neredzamu datu bojājumu indeksos, izpildot komandas “CREATE INDEX CONCURRENTLY” un “REINDEX CONCURRENTLY”. Indeksos, kas izveidoti, izmantojot norādītās komandas, daži ieraksti var netikt ņemti vērā, kā rezultātā, izpildot SELECT vaicājumus, kas ietver problemātiskus indeksus, trūkst rindu.

Lai noteiktu, vai B-koka indeksi ir bojāti, varat izmantot komandu “pg_amcheck –heapallindexed db_name”. Ja tiek konstatētas kļūdas vai komandas “IZVEIDOT INDEKSU VIENLAIDĪGI” un “REINDEKSĒT VIENLAIDĪGI” tika izmantotas iepriekšējās laidienās ar cita veida indeksiem (GiST, GIN utt.), pēc atjaunināšanas uz versiju 14.4, ieteicams veikt atkārtotu indeksēšanu, izmantojot “reindexdb —all” utilīta vai komanda “REINDEX CONCURRENTLY index_name”.

Problēma skar tikai 14.x filiāli, kas ietvēra optimizācijas, kas izslēdz dažas transakcijas, kas saistītas ar “CREATE INDEX CONCURRENTLY” un “REINDEX CONCURRENTLY” izpildi, veicot VACUUM darbību. Šīs optimizācijas rezultātā indeksi, kas tika izveidoti režīmā VIENLAIDĪGI, kaudzes atmiņā neiekļāva dažus korešus, kas tika atjaunināti vai saīsināti indeksa izveides laikā.

Avots: opennet.ru

Pievieno komentāru