Probleme mit Datenverzeichniss bei Upgrade von 7.xx nach 8.2.4

Hallo,

ich habe unter RedHat Linux ein Upgrade von einem Postgres Server 7.x.x auf 8.2.4 gemacht. Leider nimmt der PG das Datenverzeichniss von 8.2.4 nicht mehr und sagt ich solle das konviertieren.

Ich habe 2 Fragen :

  • wie kann ich rausbekommen anhand des Datenverzeichniss um welche Version 7.x.x es sich genau handelt ?
  • gibt es eine Software um das Datenverzeichniss von 7.x.x. auf 8.2.4 zu konvertieren oder kann mir jemand Infos darüber geben ?

Vielen Dank und Grüsse,
Robert

Was ist x bei 7.x ?

Ich habe 2 Fragen :

  • wie kann ich rausbekommen anhand des Datenverzeichniss um welche Version 7.x.x es sich genau handelt ?

Ahhh. Das wird schwer, vielleicht findest Du in der mitinstallierten Doku einen Hinweis. Der normale Weg wäre, die DB direkt zu fragen: select version();

Ach ja: im main - Verzeichnis bei mir steht eine Datei PG_VERSION. Deren Inhalt hält, was der Name verspricht.


  • gibt es eine Software um das Datenverzeichniss von 7.x.x. auf 8.2.4 zu konvertieren oder kann mir jemand Infos darüber geben ?

Ja, gibt es: pg_dump bzw. pg_dumpall.

Der generische Weg ist, beide Systeme lauffähig zu haben, gleichzeitig. Das geht auch auf einer einzelnen Maschine. Dann mit dem pg_dump[all] der höheren Version ein Dump der alten Version zu machen. Näheres wirst Du dazu in der Doku zu PG finden.

Es wird Dir höchstwahrscheinlich aber nicht gelingen, ein Data-Verzeichnis einer Version mit einer anderen Version zu lesen, es sei denn, die Versionen unterscheiden sich bei X.Y.Z nur in Z.


Andreas

Ich muß noch mal nachfragen:

Du hast regulär mit dem Packetmanager eine neue Version eingespielt? Vorher kein Backup gemacht? Der Packetmanager hat nicht festgestellt, daß da schon was ist?

Kann es vielleicht sein, daß nun beide Versionen laufen, auf untersch. Ports? Debian macht das so zumindest. Und dann zieht es alt → neu.


Andreas

Hallo Andreas,

Du hast regulär mit dem Packetmanager eine neue Version eingespielt? Vorher kein Backup gemacht? Der Packetmanager hat nicht festgestellt, daß da schon was ist?

Kann es vielleicht sein, daß nun beide Versionen laufen, auf untersch. Ports? Debian macht das so zumindest. Und dann zieht es alt → neu.

Ich muss die Kiste ganz schnell neu installieren, da in das System von aussen eingebrochen worden ist und ich daher dem System nicht mehr trauen konnte. Ich habe dann einfach nur das Data Verzeichniss von PG gespeichert, das ging am schnellsten.
Ich habe danach den Server neu aufgesetzt und versuche PG wieder zum laufen zu bekommen. Das alte System existiert nicht mehr (Platte formatiert) und ich müsste zumindest anhand des Data Verzeichnisses mal rausbekommen welche Version ich von Postgres (jene 7.x.y) ich genau habe. Wenn ich diese dann installiere, sollte das Verzeichniss ja logischerweise wieder gelesen werden.

Gruss,
Robert

Autsch.

Ich … müsste zumindest anhand des Data Verzeichnisses mal rausbekommen welche Version ich von Postgres (jene 7.x.y) ich genau habe.

PG_VERSION

Suche nach dieser Datei und schau rein.


Wenn ich diese dann installiere, sollte das Verzeichniss ja logischerweise wieder gelesen werden.

Jein. PG muß mit denselben Optionen kompiliert sein. IIRC kann es bei bestimmten Compileroptionen noch in solch einem Szenario Probleme geben.

Naja, ich wünsch Dir Erfolg. Und das näxte Mal an das Backup denken…

PG_VERSION
Suche nach dieser Datei und schau rein.

Mein Gott, wieso habe ich die Datei im Verzeichniss nicht selber gesehen ? Aber danke ! Die Version ist 7.4…

Wenn ich diese dann installiere, sollte das Verzeichniss ja logischerweise wieder gelesen werden.
Jein. PG muß mit denselben Optionen kompiliert sein. IIRC kann es bei bestimmten Compileroptionen noch in solch einem Szenario Probleme geben.

Naja, ich wünsch Dir Erfolg. Und das näxte Mal an das Backup denken…

Ich habe mit PG v7.4.17 die Daten wieder erfolgreich zum laufen bekommen. Im Internet habe ich gelesen das die Datenverzeichnisse nach einer Migration von Version x.y.z nur dann wiederverwendbar sind, wenn sich nur z in der Version ändert. Ansonsten muss eben wie besprochen mit dem Dump gearbeitet werden.

Nächstes mal werde ich so Aktion mit nicht ganz so “heisser Nadel stricken”… :slight_smile:

Gruss,
Robert

Vielleicht auch einfach ein regelmäßiges Backup haben, dann sind derartige Prozeduren bereits eingespielt und man muss sie bloss anstoßen. In hektischen Situationen übersieht man sonst leicht etwas.

Apropos Backup: auch ab und zu prüfen, ob man das Backup auch einspielen kann :wink: