win 8.2 auf mac 8.4 -> restore?

Hallo zusammen,

habe auf 2 PC Rechnern PostgreSQL 8.2 laufen und habe keinerlei Probleme per dump und restore die Daten zwischen den System hin und her zu schieben.
Habe jetzt auf meinem Mac die Version 8.4 installiert und würde gerne die Daten vom 8.2 (PC) auf den Mac bringen.
Leider funktioniert das irgendwie nicht.

Gehe ich über den Admin und wähle die Wiederherstellung, bleibt das “OK”-Feld grau. Versuche ich es über die SQL-Shell, kommen nach Eingabe von

pg_restore file

3 Eingaben, die ich machen muss (DB, Port, Username). Egal was ich da eintrage bekomme ich immer einen Fehler…

psql: could not translate host name "pg_restore" to address: nodename nor servname provided, or not known

Kann mir da jemand helfen? was muss ich tun, um meine Daten auf den Mac zu bekommen…

Danke im Voraus!

Dein Datenbank-Server heißt ‘pg_restore’?

Vielleicht schaust Du einfach mal in die man-Page von pg_restore.


Andreas

Nee, aber habe vorher immer in der Dos-Eingabeaufforderung

psql meinedb < dumpfile

verwendet.

Das funktioniert und sql-shell auf dem Mac nicht.

Also habe ich es mit

pg_restore dumpfile

versucht.

Klappt auch nicht. Bin mir einfach nicht sicher, was ich unter Mac - oder viell liegt es ja auch an der Version 8.4 - anders machen muss…

Parse error. Funktioniert psql selbst?

Also habe ich es mit

pg_restore dumpfile

>
> versucht.
>
> Klappt auch nicht.

"Klappt auch nicht" ist eine NULL-Aussage. Fehlermeldung?

> Bin mir einfach nicht sicher, was ich unter Mac - oder viell liegt es ja auch an der Version 8.4 - anders machen muss...

Ich wiederhole mich mal: Lies die man-page zu pg_restore.

```text
pg_restore is a utility for restoring a PostgreSQL database from an archive created by pg_dump(1) in one of the non-plain-text formats.

Also, non-plain-text. Wie hast Du denn den Dump erzeugt?


Andreas

Außerdem müsstest du mit dem pg_dump der Version 8.4 die 8.2 Datenbank sichern.

also wenn ich

psql postgres < meine_datei.backup

verwende kommen erst 3 Eingabemöglichkeiten:

Database [postgres]: 
Port [5432]: 
Username [postgres]:

Egal was ich dort eintrage, es kommt immer diese Fehlermeldung:

psql: warning: extra command-line argument "<" ignored
psql: warning: extra command-line argument "meine_datei.backup" ignored
psql: warning: extra command-line argument "postgres" ignored
psql: could not translate host name "psql" to address: nodename nor servname provided, or not known

Press <return> to continue...
logout

[Prozess beendet]

Damit kann ich irgendwie nix anfangen…

Danach habe ich mir dann pg_restore angeschaut und habe die gleichen Fehlermeldungen.
Jetzt habe ich eben mal

psql -d meineDB -W meinpasswd -h localhost

eingegeben und schein jetzt einen Schritt weiter zu sein.
Er fragte mich nach dem Passwort und nun scheine ich in der PgSQL-Konsole zu sein

Password for user postgres: 
psql (8.4.0)
Type "help" for help.

postgres=#

Nun kann ich aber nur die Üblichen “SELECT, CREATE, DROP, etc.” Befehle ausführen…

Also was kann ich machen? Irgendwie verstehe ich nicht, warum es nicht wie gewohnt lüppt…

Ach so, ich habe den Dump mit

pg_dumpall -U postgres > meinBackupFile

aus der Version 8.2 gemacht.

An dieser Stelle mal ‘help’ eingeben, so wie es auch dasteht. Dies würde Dir verraten, daß Du mit \i ein File einlesen kannst.


Ach so, ich habe den Dump mit

pg_dumpall -U postgres > meinBackupFile

>
> aus der Version 8.2 gemacht.

Das erzeugt ein Plain-Text-Scriptfile, was _NICHT_ für pg_restore geeignet ist. Nochmal: Doku lesen! Jetzt!

Und siehe auch Hinweis von ads: verwende das pg_dump oder pg_dumpall der höheren Version gegen den DB-Server. Dazu haben diese Programme passende Optionen. Du ahnst es vielleicht schon: Doku lesen.

Die Passwort-Abfrage ist auch vermeidbar, falls die stören sollte. Dies ist, Tätäää, in der Doku beschrieben (Hint. pgpass, pg_hba.conf)
\
\
Andreas

Also ich möchte zZ eigentlich die DBs auf den PCs mit der Veriosn 8.2 nicht anfassen. Und wollte auf meinem Mac einfach PostgreSQL installieren, damit ich vorab ein paar Dinge testen kann.

Leider finde ich in der Doku nicht, wie ich einen “restore” auf dem Mac iniziiere. Das ich ggf. die Daten umwandeln muss, habe ich befürchtet, aber ich will auf dem Live-System kein Update auf 8.4 machen. Kann ich die Daten auch anders aufbereiten?

Ich schaue gerne in der Doku nach, würde mich aber freuen, wenn ihr mir ein paar Stichworte geben könntet, die sich auf mein Problem beziehen, da ich nicht weiß, wonach ich schauen muss…

Danke

Auf dem Rechner mit 8.4:

pg_dump -h <rechner mit 8.2> -U … database | psql neue_db

Die neue_db vorher erstellen. Alternativ pg_dumpall verwenden. Das Kapitel in der Doku: PostgreSQL: Documentation: Manuals: PostgreSQL 8.4: Backup and Restore

Andreas