ich freue mich, dieses Forum gefunden zu haben und komme gleich mit einer Fragestellung (die aber auch ein Problem darstellt). Ich hoffe, ich bin dabei im richtigen Unterforum gelandet.
Auf einer Festplatte befindet eine vollständige Linuxinstallation (Debian 5 - lenny) mit einigen postgresql Datenbanken vs 8.3.
Da das Linuxsystem nicht mehr bootfähig ist, habe ich einen neuen Debian-Server aufgesetzt - natürlich ebenfalls Version 8.3.
Die Daten, die sich im Verzeichnis
/var/lib/postgresql/8.3/main/base
befinden habe ich auf den neuen Server kopiert. Nur damit kann das System so noch nichts anfangen.
Die Frage lautet also:
Wie kann man mit den Daten eines bestehenden PG-Servers umziehen - und zwar auf Dateiebene?
Denn ein Dump ist ja nicht möglich, da dazu ein funktionierender Server erst einmal Zugriff auf die Daten haben müsste.
Wenn das alte System sauber runtergefahren wurde und Du eine exakt gleiche Vesion jetzt hast und alle Dateien befinden sich am richtigen Ort, dann startet das wieder. Sonst nicht. Damit ist auch gesagt, was Du zu beachten hast.
Allerdings dürfte das ja eigentlich keinen Einfluss auf die Datenorganisation von PG haben. Oder?
Es geht mir auch gar nicht unbedingt darum, den alten Stand 1:1 wiederherzustellen, sondern vorhandene Daten dem Datenbanksystem irgendwie unterzujubeln.
Man könnte die Frage daher (von meinem konkreten Problemfall losgelöst) auch dahingehend umformulieren:
Wohin schreibt PG beim erstellen einer DB?Ich meine, über das blosse erstellen eines Verzeichnisses in**/var/lib/postgresql/8.3/main/base** hinaus?
Die Daten liegen in einem binären Format vor. Dieses Format ist unter anderem von diversen Compilereinstellungen (darum gleiches OS -> gleicher Compiler für alles). Das Format ist auch von diversen ./compile Optionen (daher die gleiche Version im gleichen OS) abhängig. Weiterhin kann man z. B. nicht ein Verzeichnis einer 32-Bit Version auf einem 64-Bit System starten, das funktioniert (aus offensichtlichen Gründen) auch nicht.
Alles gute Gründe, ein vernünftiges Backup zu haben.
So, ich noch mal.
Ich habe es hin bekommen.
Es reicht tatsächlich das Verzeichnis /var/lib/postgresql/8.3/main/
zu kopieren. Allerdings hatte ich einen abweichenden Zeichensatz.
Das war ziemlich fummelig, bis ich auch alles verstanden hatte.
Kurze Skizzierung der funktionierenden Migration: