PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So aktualisieren Sie die Postgresql-Datenbank von 10 auf 12, ohne Daten für Openproject zu verlieren

A) Erstellen Sie dafür zuerst ein Backup aller Datenbanken (Sie können mit B fortfahren, wenn Sie kein Backup benötigen)

  1. Melden Sie sich als Postgres-Benutzer an
     sudo su postgres
  1. Erstellen Sie eine .sql-Sicherungsdatei für alle Daten, die Sie in allen Datenbanken haben
    pg_dumpall > backup.sql

B) Aktualisieren Sie auf PostgreSQL12

  1. Pakete aktualisieren und Postgres 12 installieren
     sudo apt-get update
     sudo apt-get install postgresql-12 postgresql-server-dev-12
  1. Beenden Sie den postgresql-Dienst
     sudo systemctl stop postgresql.service
  1. Daten migrieren
     /usr/lib/postgresql/12/bin/pg_upgrade \
     --old-datadir=/var/lib/postgresql/10/main \
     --new-datadir=/var/lib/postgresql/12/main \
     --old-bindir=/usr/lib/postgresql/10/bin \
     --new-bindir=/usr/lib/postgresql/12/bin \
     --old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
     --new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
  1. Zum normalen Benutzer wechseln
     exit
  1. Vertauschen Sie die Ports der alten und neuen Postgres-Versionen.
     sudo vim /etc/postgresql/12/main/postgresql.conf
     #change port to 5432
     sudo vim /etc/postgresql/10/main/postgresql.conf
     #change port to 5433
  1. Starten Sie den postgresql-Dienst
     sudo systemctl start postgresql.service
  1. Melden Sie sich als Postgres-Benutzer an
     sudo su postgres
  1. Überprüfen Sie Ihre neue Postgres-Version
     psql -c "SELECT version();"
  1. Führen Sie das generierte neue Cluster-Skript aus
     ./analyze_new_cluster.sh
  1. Kehren Sie als normaler Benutzer (Standardbenutzer) zurück und bereinigen Sie das Chaos der alten Version
     sudo apt-get remove postgresql-10 postgresql-server-dev-10
     #uninstalls postgres packages
     sudo rm -rf /etc/postgresql/10/
     #removes the old postgresql directory
     sudo su postgres
     #login as postgres user
     ./delete_old_cluster.sh
     #delete the old cluster data
  1. Herzlichen Glückwunsch! Ihre postgresql-Version ist jetzt aktualisiert. Wenn in B alles gut funktioniert, müssen wir das Backup nicht anwenden, da wir die Daten bereits von der älteren Version auf die neuere Version migriert haben. Das Backup ist nur für den Fall, dass etwas schief geht.

HINWEIS: Ändern Sie postgresql.conf und pg_hba.conf gemäß Ihren Anforderungen

PS :Fühlen Sie sich frei, Ihre Probleme, Vorschläge oder andere Änderungen, die Sie vorschlagen möchten, zu kommentieren