Ενημέρωση PostgreSQL 14.4 με επιδιόρθωση καταστροφής ευρετηρίου

Έχει δημιουργηθεί μια διορθωτική έκδοση του PostgreSQL DBMS 14.4, η οποία εξαλείφει ένα σοβαρό πρόβλημα που, υπό ορισμένες συνθήκες, οδηγεί σε αόρατη καταστροφή δεδομένων σε ευρετήρια κατά την εκτέλεση των εντολών «ΔΗΜΙΟΥΡΓΙΑ ΕΥΡΕΤΗ ΣΥΓΧΡΟΝΩΣ» και «REINDEX CONCURRENTLY». Στα ευρετήρια που δημιουργούνται χρησιμοποιώντας τις καθορισμένες εντολές, ορισμένες εγγραφές ενδέχεται να μην ληφθούν υπόψη, γεγονός που θα οδηγήσει σε σειρές που λείπουν κατά την εκτέλεση ερωτημάτων SELECT που περιλαμβάνουν προβληματικά ευρετήρια.

Για να προσδιορίσετε εάν τα ευρετήρια B-tree έχουν καταστραφεί, μπορείτε να χρησιμοποιήσετε την εντολή "pg_amcheck –heapallindexed db_name". Εάν εντοπιστούν σφάλματα ή αν οι εντολές "ΔΗΜΙΟΥΡΓΙΑ ΕΥΡΕΤΗΡΙΟΥ ΤΥΓΟΡΑ" και "REINDEX CONCURRENTLY" χρησιμοποιήθηκαν σε προηγούμενες εκδόσεις με άλλους τύπους ευρετηρίων (GiST, GIN, κ.λπ.) μετά την ενημέρωση στην έκδοση 14.4, συνιστάται να πραγματοποιήσετε εκ νέου ευρετηρίαση χρησιμοποιώντας το " reindexdb —all” ή την εντολή "REINDEX CONCURRENTLY index_name."

Το πρόβλημα επηρεάζει μόνο τον κλάδο 14.x, ο οποίος περιελάμβανε βελτιστοποιήσεις που αποκλείουν ορισμένες συναλλαγές που σχετίζονται με την εκτέλεση των "CREATE INDEX CONCURRENTLY" και "REINDEX CONCURRENTLY" κατά την εκτέλεση της λειτουργίας VACUUM. Ως αποτέλεσμα αυτών των βελτιστοποιήσεων, τα ευρετήρια που δημιουργήθηκαν σε λειτουργία CONCURRENTLY δεν περιλάμβαναν ορισμένες πλειάδες στη μνήμη σωρού που ενημερώθηκαν ή περικόπηκαν κατά τη δημιουργία ευρετηρίου.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο