Die Ausführung von Pgdump (PG 8.2) produziert diese Fehlermeldung:
inetcar: SQL command failed
inetcar: Error message from server: ERROR: could not open relation 1663/17566/2611: No such file or directory
inetcar: The command was: SELECT inhrelid, inhparent from pg_inherits
Die Daten sind trotzdem bei meiner Applikation und pgadmin lesbar.
Gibt es irgendwo anderen Informationen? Oder muss ich annehmen dass pgdump nicht zuverlässig ist und meinen eigenen Backup selber programmieren?
Hubert Rétif.
Meldungen dieser Art deuten auf Probleme mit dem Filesystem hin.
Was liefert ein 'select * from pg_class where relfilenode = ‘17566’? (ich vermute mal, daß das eine refilenode ist, bin mir aber nicht sicher). Möglicherweise handelt es sich ‘nur’ um eine TOAST-Tabelle. Wie dem auch sei, vermutlich ein Filesystemfehler. Welches Filesystem ist denn im Einsatz?
Ja. Du solltest irgendwo eine Datei mit dem Namen 2611 haben. Diese enthält die Daten für pg_inherits. In Deiner pg_class, Zeile 127, 6. Spalte steht das auch. Und diese Datei fehlt Dir offensichtlich.
Also, unter $PG_DATA sollte es eine /10819/2611 bei Dir geben, prüfe das mal. Die 1663 steht für tablespace, 10819 ist die OID der Datenbank, 2611 die OID der Tabelle. Datenbank und Tabelle bildet sich 1:1 im Filesystem ab.
Es gibt den Ordner 10819 und die dateien 2610 und 2612 aber kein Spur von 2611. Wie kann es sein dass ausgerechnet nur diese fehlt? Ich kann momentan mich nicht vorstellen dass der Anwender in dieser Ordner gegangen wäre und den Datei gelöscht hätte (obwohl ich kann mich schwach errinern dass evtl. von anfang an pgdump nach PG Installation nicht funktioniert hatte).
Wenn ich 2611 nicht wieder finden kann, heisst es dass ich keine Chance habe ein Backup zu machen?
Tja, was nun tun? Um ehrlich zu sein, ich weiß es nicht. Vielleicht würde es gehen, diese Datei aus einer der Template-Datenbanken zu kopieren. Falls Du keine Vererbungen nutzt, dann wäre ja die Tabelle eh leer, so wie in den Templates. Aber ob das gut geht, möchte ich nicht garantieren.