Hallo allerseits,
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 Verzeichnisbefinden habe ich auf den neuen Server kopiert. Nur damit kann das System so noch nichts anfangen.Code:/var/lib/postgresql/8.3/main/base
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.
Ich bin für alle Antworten und Hinweise dankbar.
Grüße
Dirk
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Gleiche Datenbankversion, gleiche Betriebssystemversion, gleiche Hardwarearchitektur, ...
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hallo Andreas,
vielen Dank
Aber welche Dateien?alle Dateien befinden sich am richtigen Ort,
Oder sollte es tatsächlich reichen,"/var/lib/postgresql/8.3/main/base" zu übertragen?
Gruß
Dirk
Unter bestimmten Umständen reicht das. Wenn das nicht reicht, ist es sowieso viel mehr Arbeit, unter Umständen sogar unmöglich.
Eigentlich hat man für solche Fälle ein richtiges Backup an einem externen Ort.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hallo ads,
Logisch.Gleiche DatenbankversionSogar identischer Rechnergleiche Hardwarearchitektur, ...
Leider nicht ganz.gleiche Betriebssystemversion,
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?
Vielen Dank.
Dirk
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.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hallo ads,
unsere Antworten haben sich gerade überschnitten.
Da hast du schon mal ziemlich recht.Eigentlich hat man für solche Fälle ein richtiges Backup an einem externen Ort.
Weisst du auch welche?Unter bestimmten Umständen reicht das.
Die Antwort hatte ich befürchtet.Wenn das nicht reicht, ist es sowieso viel mehr Arbeit, unter Umständen sogar unmöglich.
Trotzdem vielen Dank
Dirk
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
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:
Das war mein Weg. Vielleicht hilft es mal jemandem.
- richtigen Zeichensatz hinzufügen: dpkg-reconfigure locales
- DB-Server installieren
- Server herunterfahren
- /var/lib/postgresql/8.3/main/ löschen
- Datenbank neu anlegen: /usr/lib/postgresql/8.3/bin/initdb -D /var/lib/postgresql/8.3/main -E LATIN9 --locale=de_DE@euro --lc-ctype=de_DE@euro --lc-messages=de_DE@euro --lc-monetary=de_DE@euro --lc-numeric=de_DE@euro --lc-time=de_DE@euro --lc-collate=de_DE@euro
- /var/lib/postgresql/8.3/main/ durch die Sicherheitskopie ersetzen
- User postgres als Owner und Gruppe setzen - wichtig - KEINE Berechtigungen für Gruppe und Welt setzen.
- Server wieder hochfahren
- evtl. User passwort setzen (vorher login postgres): psql -c "ALTER ROLE postgres WITH PASSWORD '<password>';")
- Evtl nicht unwichtige Nacharbeit: dpkg-reconfigure locales (wieder zurücksetzen)
Danke.
Dirk
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen