Endeks bozulmasını düzelten PostgreSQL 14.4 güncellemesi

PostgreSQL DBMS 14.4'ün düzeltici bir sürümü oluşturuldu; bu sürüm, belirli koşullar altında "CREATE INDEX CONCURRENTLY" ve "REINDEX CONCURRENTLY" komutları yürütülürken dizinlerde görünmez veri bozulmasına yol açan ciddi bir sorunu ortadan kaldırıyor. Belirtilen komutlar kullanılarak oluşturulan indekslerde bazı kayıtlar dikkate alınmayabilir ve bu durum problemli indeksler içeren SELECT sorguları yürütülürken satırların eksik olmasına neden olabilir.

B-ağacı indekslerinin hasar görüp görmediğini belirlemek için “pg_amcheck —heapallindexed db_name” komutunu kullanabilirsiniz. Hatalar tespit edilirse veya sürüm 14.4'e güncelleme yapıldıktan sonra diğer dizin türleriyle (GiST, GIN vb.) önceki sürümlerde "CREATE INDEX CONCURRENTLY" ve "REINDEX CONCURRENTLY" komutları kullanılmışsa, yeniden indekslemenin "" kullanılarak yapılması önerilir. reindexdb —all” yardımcı programı veya "REINDEX AYNI ŞEKİLDE indeks_adı."

Sorun yalnızca 14.x şubesini etkiliyor; bu dal, VAKUM işlemini gerçekleştirirken "CREATE INDEX AYNI ZAMANDA" ve "REINDEX AYNI ZAMANDA" yürütülmesiyle ilişkili bazı işlemleri hariç tutan optimizasyonları içeriyordu. Bu optimizasyonların bir sonucu olarak, CONCURRENTLY modunda oluşturulan indeksler, heap hafızasında indeks oluşturma sırasında güncellenen veya kesilen bazı tuple'ları içermiyordu.

Kaynak: opennet.ru

Yorum ekle