Aggiornamento PostgreSQL 14.4 con correzione del danneggiamento dell'indice

È stata creata una versione correttiva del DBMS PostgreSQL 14.4 che elimina un grave problema che, in determinate circostanze, porta alla corruzione invisibile dei dati negli indici durante l'esecuzione dei comandi “CREATE INDEX CONCURRENTLY” e “REINDEX CONCURRENTLY”. Negli indici creati utilizzando i comandi specificati, alcuni record potrebbero non essere presi in considerazione, il che porterà alla mancanza di righe durante l'esecuzione di query SELECT che coinvolgono indici problematici.

Per determinare se gli indici dell'albero B sono stati danneggiati, è possibile utilizzare il comando "pg_amcheck –heapallindexed db_name". Se vengono rilevati errori o i comandi “CREATE INDEX CONCURRENTLY” e “REINDEX CONCURRENTLY” sono stati utilizzati in versioni precedenti con altri tipi di indici (GiST, GIN, ecc.), dopo l'aggiornamento alla versione 14.4, si consiglia di eseguire la reindicizzazione utilizzando il comando Utilità "reindexdb —all" o il comando "REINDEX CONCURRENTLY nome_indice".

Il problema riguarda solo il ramo 14.x, che includeva ottimizzazioni che escludono alcune transazioni associate all'esecuzione di “CREATE INDEX CONCURRENTLY” e “REINDEX CONCURRENTLY” durante l'esecuzione dell'operazione VACUUM. Come risultato di queste ottimizzazioni, gli indici creati in modalità CONCORRENTE non includevano alcune tuple nella memoria heap che erano state aggiornate o troncate durante la creazione dell'indice.

Fonte: opennet.ru

Aggiungi un commento