it-swarm.com.de

Wie kann ich PostgreSQL von 9.5 auf 9.6.1 aktualisieren, ohne Daten zu verlieren?

Als ich versuchte, psql auszuführen, bekam ich

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

und als ich Server.log, Ich sah:

FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.5,
        which is not compatible with this version 9.6.1.

Ich habe versucht, diesem Tutorial (von 9.4 auf 9.5) für das Upgrade von 9.6.1 zu folgen, erhalte aber weiterhin diese Fehlermeldung

cannot write to log file pg_upgrade_internal.log
Failure, exiting

nach dem Rennen

$ pg_upgrade -v \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres9.6.1 \
> -b /usr/local/Cellar/postgresql/9.5/bin/ \
> -B /usr/local/Cellar/postgresql/9.6.1/bin/

Hat jemand eine Idee was ich vermisse/falsch mache? Vielen Dank!


System:

  • MacOS 10.12.2
  • PostgreSQL mit Homebrew installiert
6
ogirginc

Wenn Ihre Datenbank nicht groß ist, können Sie mit pg_dump und pg_dumpall die Datenbankstruktur und den Datendump in Form von SQL-Abfragen aus Posgtres 9.5 übernehmen und in Postgres 9.6.1 wiederherstellen.

Wenn die Datenbankgröße zu groß ist, wählen Sie pg_upgrade. Wenn man sich den Fehler ansieht, scheint der Benutzer keine Berechtigungen für das Verzeichnis zu haben und nicht in die Protokolldatei schreiben zu können. Um Zeit zu sparen, würde ich vorschlagen, dass Sie -k Option von pg_upgrade für ein schnelleres Upgrade. Beachten Sie, dass -k erstellt Softlinks Ihrer alten Daten im neu installierten Datenverzeichnis. Sie können also keine alten Daten löschen.

1
Lohit Gupta

Nach 9 Monaten habe ich von 9.6.5 mit pg_upgrade Auf PostgreSQL 10 aktualisiert:

1) Postgresql stoppen:

brew services stop postgresql

2) Initialisieren Sie die postgresql10-Datenbank:

initdb /usr/local/var/postgres10.0 -E utf8

3) Überprüfen Sie die neu erstellte Datenbank:

ls /usr/local/Cellar/postgresql/

4) Führen Sie pq_upgrade aus, um Daten in eine neue Datenbank zu verschieben:

pg_upgrade \
  -d /usr/local/var/postgres \
  -D /usr/local/var/postgres10.0 \
  -b /usr/local/Cellar/postgresql/9.6.5/bin/ \
  -B /usr/local/Cellar/postgresql/10.0/bin/ \
  -v

5) Alte Datenbank umbenennen:

mv /usr/local/var/postgres /usr/local/var/postgres9.6.5

6) Benennen Sie die neue Datenbank in postgres um:

mv /usr/local/var/postgres10.0 /usr/local/var/postgres

7) Starten Sie postgresql neu:

brew services start postgresql

4
ogirginc