Aktualisieren Sie die PostgreSQL Server-Version ohne Datenverlust
- Wichtigkeit des Upgrades der PostgreSQL Server-Version
- Verschiedene Ansätze zum Aktualisieren der PostgreSQL-Serverversion
Normalerweise aktualisieren viele Benutzer den PostgreSQL-Server nicht auf die neueste Version, da sie dabei Datenverlust befürchten. Das Aktualisieren des PostgreSQL-Servers auf eine neue Version ist etwas knifflig und kann zu einem vollständigen Datenverlust führen, wenn nicht die richtige Vorgehensweise befolgt wird.
Daher ist eine gründliche Recherche unerlässlich, bevor Sie den PostgreSQL-Server auf die neueste Version aktualisieren. Dieses Tutorial führt Sie Schritt für Schritt durch das Upgrade der PostgreSQL-Serverversion ohne Datenverlust.
Wichtigkeit des Upgrades der PostgreSQL Server-Version
Ja! Aus zahlreichen Gründen, die unten aufgeführt sind, ist es wichtig, den PostgreSQL-Server auf die neueste Version zu aktualisieren:
- Die älteren Versionen bleiben möglicherweise nicht mehr mit anderen Anwendungen kompatibel.
- Cyberkriminelle können aufgrund der ungepatchten Bedrohungen in den älteren Versionen Schwachstellen in Ihrem System finden und den PostgreSQL-Server angreifen.
- Fehler in den älteren Versionen würden in der neueren Version gepatcht.
- Die neue Version bietet verbesserte Funktionen, die helfen, die Aufgaben effizient auszuführen.
Dieser Artikel enthält die Methode zum erfolgreichen Aktualisieren des PostgreSQL-Servers von einer Version auf eine andere.
Die Anleitung gilt für alle Betriebssysteme.
Verschiedene Ansätze zum Aktualisieren der PostgreSQL-Serverversion
Es gibt mehrere Methoden, um den PostgreSQL-Server von einer Version auf eine andere zu aktualisieren, ohne Daten zu verlieren. Hier werden wir drei davon demonstrieren, um den PostgreSQL-Server zu aktualisieren.
Je nach Ihren Anforderungen können Sie eine der folgenden Lösungen auswählen.
Lösung 1: Die allgemeine Lösung
Es funktioniert für jedes Betriebssystem und kann den PostgreSQL-Server auf jede Version Ihrer Wahl aktualisieren, ohne die Daten zu manipulieren. Da dies eine allgemeine Lösung ist, werden die genauen BASH-Befehle nicht erwähnt.
Diese Befehle können für die verschiedenen Betriebssysteme gesucht und wie angegeben ausgeführt werden:
- Stoppen Sie alle laufenden Instanzen des PostgreSQL-Servers mit dem Befehl
BASH
für Ihr spezifisches Betriebssystem. - Installieren Sie die neue Version des PostgreSQL-Servers, zu dem Sie wechseln möchten, und starten Sie ihn.
- Prüfen Sie, ob Sie sich mit der gerade installierten neuen Version des PostgreSQL-Servers verbinden können.
- Ändern Sie die Portnummer der alten Version des PostgreSQL-Servers
postgresql.conf
->port
von5432
auf5433
. - Starten Sie die alte Version des PostgreSQL-Servers mit der neuen Portnummer
5433
. - Öffnen Sie das Terminal und ändern Sie das Verzeichnis mit dem Befehl
cd
in den Ordnerbin
der neuen Version. - Führen Sie den Befehl
pg_dumpall -p 5433 -U <Benutzername> | aus psql -p 5432 -U <Benutzername>
auf dem Terminal. - Beenden Sie die laufende Instanz des alten PostgreSQL-Servers.
Die Implementierung des gesamten Verfahrens mit BASH-Befehlen, die für Ihr spezifisches Betriebssystem entwickelt wurden, hilft Ihnen, Ihren PostgreSQL-Server von einer alten Version auf eine neue Version zu aktualisieren.
Hinweis: Ein Problem, auf das Sie bei dieser Lösung stoßen können, ist, dass, wenn Sie einige der Postgres-Konfigurationsdateien geändert haben – zum Beispiel
postgresql.conf
oderpg_hba.conf
– diese Änderungen manuell in der repliziert werden müssten neue Installation des PostgreSQL-Servers. Der Befehlpg_upgradecluster
kann helfen, Konfigurationsdateien in den neuen Cluster zu kopieren.
Lösung 2: Annahme verwenden, die von Homebrew verwendet wird
Diese Lösung konzentriert sich auf die Annahme, dass Homebrew-Software verwendet wurde, um Postgres zu installieren und zu aktualisieren. Führen Sie die folgenden Schritte aus, um den PostgreSQL-Server von einer Version auf eine andere zu aktualisieren.
Der Einfachheit halber wird davon ausgegangen, dass Postgres v9.6
auf Postgres v10.1
aktualisiert wird.
-
Stoppen Sie die laufende Instanz des aktuellen PostgreSQL-Servers:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
-
Installieren und initialisieren Sie eine neue
10.1
-Datenbank mit dem Befehlinitdb
:initdb /usr/local/var/postgres10.1 -E utf8
-
Führen Sie den Befehl
pg_upgrade
aus. Dieser Befehl wird mit verschiedenen Erweiterungen verwendet, von denen einige unten erwähnt wurden:pg_upgrade -v \ -d /usr/local/var/postgres \ -D /usr/local/var/postgres10.1 \ -b /usr/local/Cellar/postgresql/9.6/bin/ \ -B /usr/local/Cellar/postgresql/10.1/bin/ # The different extensions of the `pg_upgrade` command have the following significance: # The `-v` extension enables verbose internal logging. # The `-d` extension is used to specify the configuration directory of the old database. # The `-D` extension is used to specify the configuration directory of the new database. # The `-b` extension specifies the executable directory of the old database. # The `-B` extension specifies the executable directory of the new database.
-
Verschieben Sie die Daten aus der alten Datenbank mit den folgenden Befehlen an einen neuen Ort:
cd /usr/local/var mv postgres postgres9.6 mv postgres10.1 postgres
-
Nachdem Sie alle vier Schritte erfolgreich durchgeführt haben, starten Sie den PostgreSQL-Server neu. Zu diesem Zweck können wir den folgenden Befehl verwenden:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Überprüfen Sie nach dem Neustart von Postgres
/usr/local/var/postgres/server.log
auf die Details des neuen Servers. Stellen Sie sicher, dass der neue Server ordnungsgemäß gestartet wurde und ordnungsgemäß ausgeführt wird. -
Das Rails
pg
Gem sollte mit den folgenden Befehlen neu installiert werden:gem uninstall pg gem install pg
Überarbeitungen der zweiten Lösung
Homebrew ermöglicht es Benutzern jetzt, die Befehle brew services start postgresql
und brew services stop postgresql
anstelle der alten Befehle launchctl load
und launchctl unload
zu verwenden.
Die den Brühdiensten hinzugefügten Befehle sind unten als Referenz hervorgehoben:
brew services stop postgresql
brew upgrade postgresql
brew postgresql-upgrade-database
brew services start postgresql
Lösung 3: Für Ubuntu-Benutzer
Diese Lösung ist speziell für Ubuntu-Benutzer. Das allgemeine Verfahren ist das gleiche wie weiter oben in diesem Artikel beschrieben; Diese Lösung enthält jedoch Terminalbefehle, die in Ubuntu verwendet werden.
Die Schritte sind unten aufgeführt:
-
Stoppen Sie die alte Version von Postgres mit dem folgenden Befehl:
sudo /etc/init.d/postgresql stop
-
Es muss eine neue Datei
/etc/apt/sources.list.d/pgdg.list
erstellt und durch Hinzufügen der folgenden Zeile bearbeitet werden:deb http://apt.postgresql.org/pub/repos/apt/ utopic-pgdg main
Hinweis: Wir können den Befehl
trusty-pgdb
für Ubuntu 14.04 anstelle des Befehlsutopic-pgdb
verwenden. -
Nachdem die Zeile zur neu erstellten Datei hinzugefügt wurde, führen Sie die unten aufgeführten Befehle aus:
wget -q -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add- sudo apt-getupdate sudo apt-get install postgresql-10.1 sudo pg_dropcluster --stop 10.1 main sudo /etc/init.d/postgresql start
-
Aktualisieren Sie den PostgreSQL-Server:
sudo pg_upgradecluster 9.6 main sudo pg_dropcluster 9.6 main
Der aktualisierte Cluster soll auf Port
5433
laufen. Überprüfen Sie daher den Port, um ein erfolgreiches Upgrade des PostgreSQL-Servers mit dem Befehlsudo pg_lsclusters
sicherzustellen.
Es ist wichtig, einen korrekten Prozess für das Upgrade des PostgreSQL-Servers von einer Version auf eine andere zu befolgen; andernfalls kann ein fehlerhafter Aktualisierungsprozess zu Datenverlust führen. Daher sollte man vorsichtig bleiben.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub