PostgreSQL 14.4 opdatering med indekskorruption rettelse

En korrigerende udgivelse af PostgreSQL DBMS 14.4 er blevet oprettet, som eliminerer et alvorligt problem, der under visse omstændigheder fører til usynlig datakorruption i indekser, når kommandoerne "CREATE INDEX CONCURRENTLY" og "REINDEX CONCURRENTLY" udføres. I de indekser, der er oprettet ved hjælp af de angivne kommandoer, tages nogle poster muligvis ikke i betragtning, hvilket vil føre til manglende rækker, når der udføres SELECT-forespørgsler, der involverer problematiske indekser.

For at afgøre, om B-træindekser er blevet beskadiget, kan du bruge kommandoen “pg_amcheck –heapallindexed db_name”. Hvis der identificeres fejl, eller kommandoerne "CREATE INDEX CONCURRENTLY" og "REINDEX CONCURRENTLY" blev brugt i tidligere udgivelser med andre typer indekser (GiST, GIN osv.) efter opdatering til version 14.4, anbefales det at udføre genindeksering ved hjælp af " reindexdb —all” eller kommandoen "REINDEX CONCURRENTLY index_name."

Problemet påvirker kun 14.x-grenen, som inkluderede optimeringer, der udelukker nogle transaktioner forbundet med udførelsen af ​​"CREATE INDEX CONCURRENTLY" og "REINDEX CONCURRENTLY", når VACUUM-operationen udføres. Som et resultat af disse optimeringer inkluderede indekser oprettet i CONCURRENTLY-tilstand ikke nogle tuples i heap-hukommelsen, der blev opdateret eller afkortet under indeksoprettelse.

Kilde: opennet.ru

Tilføj en kommentar