ich bin Anfänger beim Thema Datenbank und will hier nur eine ältere Installation auf neue Hard- und Software umziehen lassen.
Vor einigen Wochen habe ich schonmal ein paar Fragen gestellt, aber bin mangels Durchblick damit nicht weitergekommen.
Vielleicht klappt es diesmal besser.
Ich habe eine postgresql 6.5.3 auf einem betagten Rechner Laufen. Alles unter Linux (alt Redhat, neu Debian). Es gibt dort nur eine relevante Datenbank mit einigen Tabellen.
Andreas Kretschmer hatte mir den Tipp gegeben, es folgendermassen zu versuchen:
pg_dumpall -h ip.des.alten.servers|psql datenbank
Dabei bekomme ich nun folgende Fehlermeldung:
pg_dumpall: konnte nicht mit der Datenbank »template1« verbinden: expected authentication request from server, but received U
Diese Meldung kommt auch, wenn ich den user “-U postgres” angebe und mich per Passwort authentifiziere.
Ich tippe darauf, daß in der pg_hba.conf da eine zu Deinen Versuchen unpassende AUTH-Methode festgelegt ist. Schau Dir an, was dort steht (die pg_hba.conf des laufenden Systems) Diese Datei ist gut dokumentiert. Notfalls zeige uns diese Datei.
Ich hab hier grad keinen Zugang zu einem gescheiten System, Windoze mit Explodierer ohne Tabbed Browsing ist einfach nur Scheiße…
Kannst du mittels psql auf die Datenbank connecten?
Es kann auch sein, das die Auth Methoden bzw. das Protokoll von 6.x in den hohen 7.x Versionen (7.4 bei Debian, oder?) gar nicht mehr unterstützt werden.
Bliebe wohl als Ausweg, mal eine ältere 7.x Version von Hand zu compilieren und in ein eigenes Verzeichnis zu installieren.
Hier ist es 8.1. Gibt es denn keine möglichkeit die Authenifizierung temporär zu deaktivieren? Also, dass gar nicht nach dem User und dessen Berechtigung gefragt wird?
Das klingt nach einer Menge vertrakter Kleinigkeiten…
Ich glaube, mich zu erinnern, das zwischendrin der Code, um auf ganz alte Datenbanken zuzugreifen, herausgeworfen wurde. Sind einfach Altlasten, die man nicht über viele Versionen mitführen möchte.
Ich würde mir also an deiner Stelle irgendwo die älteste PG Version besorgen, die du finden kannst und die mal temporär irgendwohin installieren. Reicht ja schon, wenn das /tmp ist. Damit kannst du probieren, ob du auf die Datenbank kommst.
Wenn du da schon dabei bist und Erfolg hast, einen Dump zu ziehen: spiele den in diese temporäre Version ein und dumpe diese Datenbank wiederum mit der 8.x Version …
pg_dump: Version des Servers: 6.5.3; Version von pg_dump: 7.4.16
pg_dump: Fortsetzung trotz unterschiedlicher Versionen
pg_dump: konnte Datumsstil nicht auf ISO setzen: ERROR: parser: parse error at or near “iso”
Kann man das hinbiegen, oder muss ich noch eine ältere Version probieren?
Also zuerst einmal würde ich den Dump bloss in eine Datei ziehen. Dann siehst du, ob das ganze schon beim Export schief geht oder erst beim Import in die neue DB. Davon ausgehend kannst du entscheiden, ob du mit einer älteren Version arbeiten musst oder sollst oder ob man vielleicht mit etwas nachbearbeiten des Dumps die Sachlage klären kann.
Ansonsten gibt es hier: http://www.postgresql.org/ftp/source/v7.3.18/ noch etwas ältere Sourcen. Wie gesagt, einfach nur temporär die Software compilieren und nach /tmp oder so installieren. Das kann man danach ja komplett wieder wegwerfen.
Du hast da vermutlich was flasch: es fehlt DB oder user (all all) und die Syntax für die Netzadresse ist kapott (CIDR, frag Wikimedia, falls Dir das nix sagt)
/usr/lib/postgresql/7.4/bin/pg_dump -i -h ip.des.alten.servers datenbank > dump
pg_dump: Version des Servers: 6.5.3; Version von pg_dump: 7.4.16
pg_dump: Fortsetzung trotz unterschiedlicher Versionen
pg_dump: konnte Datumsstil nicht auf ISO setzen: ERROR: parser: parse error at or near “iso”
Was gegen die alte Version spricht: eigentlich der Grund, das die neuere Version immer auch die Verhaltensweisen der älteren Version kennt und dementsprechend das passend für die neue umschreiben kann.
Der empfohlene Weg ist, mit der neueren Version zu dumpen, weil man dann in der Regel einen Dump erhält, den man ohne großen Aufwand in die neue Datenbank einspielen kann.
Wenn du jetzt einen Dump mit der 6.x erstellst, wirst du sicherlich viel umarbeiten dürfen, um das in deiner 8.x einspielen zu können.
Du kannst mal testweise in der postgresql.conf den Parameter ‘datestyle’ verändern, ich weiss aber nicht auswendig, ob pg_dump den nutzt …