Wie aktualisiere ich PostgreSQL von Version 8.4 auf 9.4?


18

Ich möchte mein PostgreSQL von Version 8.4 auf 9.4 aktualisieren .

Die Dokumentation ist mir nicht sehr klar.

  1. Verliere ich meine alten Datenbanken, wenn ich das Upgrade durchführe?
  2. Wie kann ich meine alten Datenbanken sichern, wenn ich sie nach dem Upgrade verlieren soll?
  3. Wie kann ich mein psql upgraden?

Mein PostgreSQL läuft auf einem CentOS 6.6 Server.


Um ehrlich zu sein, ist die Beschreibung auf der verlinkten Seite sehr klar. Wenn Sie einen Dump erstellen, haben Sie einen Dump für den Fall, dass etwas nicht funktioniert. Das bedeutet auch, dass Sie es nicht verlieren. Außerdem gibt es auf dieser Seite einen Link, der zeigt, wie man eine neuere Version installiert - zum Beispiel gibt es unter Ubuntu ein postgresql-client-9.4Paket, das enthält psql.
Dezso

@dezso Wenn ich also psql 8.4 deinstalliere und 9.4 auswähle, verliere ich meine alten Datenbanken?
Alex Jolig

3
Wenn Sie einen Dump von ihnen nehmen, dann nein. Sie sollten auf jeden Fall regelmäßige Sicherungen haben, die Sie auf Wiederherstellbarkeit testen. Dies sollte also überhaupt kein Problem sein. Wenn Sie sich für die Verwendung entscheiden pg_upgrade, werden Ihre DBs beibehalten. Eine Sicherung ist jedoch auch in diesem Fall ein Muss.
Dezso

" How can I backup my old databases if" - es gibt kein Wenn . Ihre Datenbanken werden mit ziemlicher Sicherheit nach dem Upgrade einwandfrei funktionieren , aber Sie sollten immer neue (am besten getestete) Sicherungen haben, wenn Sie eine Operation wie diese ausführen, falls unerwartete Probleme auftreten (nehmen Sie das Schlimmste an: Ein Stromausfall oder ein anderer Hardwarefehler könnten die Ursache sein Sie sich in einer Position befinden, die sich nur schwer vorwärts oder rückwärts bewegen lässt). Abhängig von Ihrem regulären Backup-Plan müssen Sie möglicherweise keine zusätzlichen Backups erstellen.
David Spillett

Antworten:


25

So habe ich mein Problem gelöst.

Aktualisieren Sie Postgresql 8.4 auf 9.4 in Centos

 1. Yum Install PG9.4
 2. wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
 3. yum install pgdg-redhat94-9.4-1.noarch.rpm
 4. yum install postgresql94-server
 5. service postgresql-9.4 initdb
 6. chkconfig postgresql-9.4 on

Backup-Daten

 7. su - postgres

 8. pg_dumpall > dump.sql

Daten wiederherstellen

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

Netzwerkzugriff konfigurieren

vi /var/lib/pgsql/9.4/data/postgresql.conf

 1. listen_addresses = '*'
 2. port = 5432

/var/lib/pgsql/9.4/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
host    all         all         130.51.79.0/24        md5
host    all         all         10.210.29.0/24        md5
# IPv6 local connections:
host    all         all         ::1/128               ident

PG8.4 entfernen

 1. yum remove postgresql
 2. ln -s /usr/pgsql-9.4/bin/psql /usr/local/bin/psql

3
Ich bin mir nicht sicher, warum Sie meine Bearbeitung als "Lesbarkeit beeinträchtigen" abgelehnt haben. Es macht tatsächlich die Befehle leichter zu kopieren,
nhahtdh

1
Ich habe gerade ein Upgrade von 9.2 auf 9.6 mit dieser Methode durchgeführt, und es hat funktioniert. Vielen Dank !
EisenHeim

Ich denke, es ist unmöglich, pgdump zu verwenden, um beispielsweise eine Datenbank mit Terabyte an Daten zu migrieren. Gibt es einen anderen Weg, das zu tun?
deFreitas

Für den ersten Befehl, "Yum Install PG9.4", ist das die richtige Großschreibung für alles?
Dave

1
@deFreitas Ich bin etwas spät dran, aber Sie können verwenden, pg_upgradewenn Sie ein Upgrade von> = 8.4 durchführen und denselben Server verwenden. pg_upgradeist in diesen Fällen nützlich und wirklich schneller: Auf Ubuntu 18 habe ich weniger Zeit gebraucht , um eine Datenbank mit 1 GB wiederherzustellen pg_upgradeals pg_dumpauf a. Der Nachteil ist, dass Sie zwei Postgres-Versionen auf demselben Computer installieren und ausführen müssen (natürlich mit unterschiedlichen Ports).
EAmez,

3

service postgresql-9.4initdb hat bei mir nicht funktioniert, ich musste es benutzen sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb( hier gefunden ).

Vielen Dank für die tollen Anweisungen, ich konnte ohne Probleme von 9.2 auf 9.4 updaten, obwohl ich meine pg_hba.confDatei neu konfigurieren musste , das war trivial.


1

Besser als das Verknüpfen einer einzelnen postgresql94-psql-Binärdatei mit / usr / (local /) bin ist die Verwendung des alternativen Systems:

cd /etc/alternatives/
ls pgsql-* -1 | xargs -L 1 alternatives --auto

Wodurch Verknüpfungen von Binärdateien, Mans, Confs, ... von postgresql94 zu Standardverzeichnissen für CentOS erstellt werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.