Πώς κάνουμε upgrade PostgreSQL σε νεότερη έκδοση

Πώς κάνουμε upgrade PostgreSQL σε νεότερη έκδοση
Πώς κάνουμε upgrade PostgreSQL σε νεότερη έκδοση
Τελευταίες δημοσιεύσεις από Stratos Matzouranis (Προβολή όλων)

Η μετάβαση PostgreSQL από μια παλαιότερη έκδοση σε μια νεότερη αποτελεί μια κρίσιμη διαδικασία συντήρησης που απαιτεί προσοχή, ώστε να διασφαλιστεί η ακεραιότητα των δεδομένων. Σε αυτό το άρθρο θα δούμε τα βήματα για την ομαλή αναβάθμιση μιας βάσης δεδομένων από PostgreSQL 11 σε PostgreSQL 14 χρησιμοποιώντας το επίσημο εργαλείο pg_upgrade.

Προετοιμασία και Εγκατάσταση

Αρχικά, προχωράμε στην εγκατάσταση των απαραίτητων πακέτων server και contrib της νέας έκδοσης στο σύστημα και αρχικοποιούμε τον νέο κατάλογο δεδομένων:

sudo yum install -y postgresql14-server postgresql14-contrib
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

Πριν προχωρήσουμε σε οποιαδήποτε ενέργεια μεταφοράς ή ελέγχου, είναι απαραίτητο να διασφαλίσουμε ότι η τρέχουσα βάση δεδομένων είναι εντελώς ανενεργή, σταματώντας την υπηρεσία της έκδοσης 11:

sudo systemctl stop postgresql-11

Έλεγχος Συμβατότητας (Dry Run)

Μεταφερόμαστε στον κατάλογο εργασίας του postgres και εκτελούμε το pg_upgrade συνοδευόμενο από την παράμετρο --check. Με αυτόν τον τρόπο, το εργαλείο πραγματοποιεί προσομοίωση για να εντοπίσει τυχόν ασυμβατότητες, ελλιπή extensions ή security labels που ενδέχεται να εμποδίσουν τη διαδικασία:

su postgres
cd /var/lib/pgsql
/usr/pgsql-14/bin/pg_upgrade \
  --old-bindir=/usr/pgsql-11/bin \
  --new-bindir=/usr/pgsql-14/bin \
  --old-datadir=/var/lib/pgsql/11/data \
  --new-datadir=/var/lib/pgsql/14/data \
  --check
Πώς κάνουμε upgrade PostgreSQL σε νεότερη έκδοση

Είναι σύνηθες κατά τον έλεγχο να σκάνε extensions που δεν έχουν γίνει εγκατάσταση στη νεότερη έκδοση όπως επίσης χρήστες που κάνουν χρήση των αυτών π.χ. με security label αλλά και πίνακες που έχουν τα κάνουν χρήση π.χ. για data masking.

Εκτέλεση της Αναβάθμισης

Εφόσον ο προληπτικός έλεγχος ολοκληρωθεί επιτυχώς και δεν υπάρξουν σφάλματα, προχωράμε στην κανονική εκτέλεση της αναβάθμισης αφαιρώντας το --check:

cd /var/lib/pgsql
/usr/pgsql-14/bin/pg_upgrade \
  --old-bindir=/usr/pgsql-11/bin \
  --new-bindir=/usr/pgsql-14/bin \
  --old-datadir=/var/lib/pgsql/11/data \
  --new-datadir=/var/lib/pgsql/14/data
Πώς κάνουμε upgrade PostgreSQL σε νεότερη έκδοση

Σε περίπτωση που προκύψει κάποιο απρόοπτο ζήτημα κατά τη διάρκεια, μπορούμε να εξετάσουμε το log με την εντολή:

tail -n 30 pg_upgrade_utility.log

Ενεργοποίηση της νέας Έκδοσης

Με την ολοκλήρωση της διαδικασίας, ενεργοποιούμε και εκκινούμε τη νέα PostgreSQL 14:

sudo systemctl enable postgresql14
sudo systemctl start postgresql14

Στη συνέχεια, εκτελούμε τη διαδικασία ανανέωσης των στατιστικών:

/usr/pgsql-14/bin/vacuumdb --all --analyze-in-stages

Καθαρισμός Παλαιών Δεδομένων

Αφού επιβεβαιώσουμε ότι όλα λειτουργούν άψογα και οι εφαρμογές μας συνδέονται κανονικά στη νέα βάση δεδομένων, μπορούμε να διαγράψουμε οριστικά τα αρχεία της παλιάς έκδοσης για να ελευθερώσουμε αποθηκευτικό χώρο στον δίσκο:

./delete_old_cluster.sh

Πηγές:

Μοιράσου το

Αφήστε μία απάντηση