Aktualizacja PostgreSQL 14.4 z poprawką uszkodzenia indeksu

Powstała wersja korygująca PostgreSQL DBMS 14.4, która eliminuje poważny problem, który w pewnych okolicznościach prowadzi do niewidocznego uszkodzenia danych w indeksach podczas wykonywania poleceń „CREATE INDEX CONCURRENTLY” i „REINDEX CONCURRENTLY”. W indeksach utworzonych za pomocą podanych poleceń niektóre rekordy mogą nie zostać uwzględnione, co spowoduje brakowanie wierszy podczas wykonywania zapytań SELECT z problematycznymi indeksami.

Aby ustalić, czy indeksy B-drzewa zostały uszkodzone, możesz użyć polecenia „pg_amcheck –heapallindexed nazwa_bazy”. Jeżeli zostaną wykryte błędy lub polecenia „CREATE INDEX CONCURRENTLY” i „REINDEX CONCURRENTLY” były używane w poprzednich wydaniach z innymi typami indeksów (GiST, GIN itp.), po aktualizacji do wersji 14.4 zaleca się wykonanie reindeksowania za pomocą Narzędzie „reindexdb —all” lub polecenie „REINDEX CONCURRENTLY nazwa_indeksu”.

Problem dotyczy tylko gałęzi 14.x, która zawierała optymalizacje wykluczające niektóre transakcje związane z wykonaniem operacji „WSPÓŁCZESNE UTWÓRZ INDEKS” i „WSPÓŁCZESNE INDEKSOWANIE” podczas wykonywania operacji VACUUM. W wyniku tych optymalizacji indeksy utworzone w trybie CONCURRENTLY nie zawierały niektórych krotek w pamięci sterty, które zostały zaktualizowane lub obcięte podczas tworzenia indeksu.

Źródło: opennet.ru

Dodaj komentarz