2011-01-09 2 views
1

Ich bin eine Postgresql Abfrage ausgeführt wird und die folgende Fehlermeldung erhalten:Postgresql Fehler: nicht öffnen konnte das Segment 1 der Beziehung base/20983/2416

Active :: StatementInvalid (PGError: ERROR: konnte nicht geöffnet Segment 1 Beziehungsbasis/20983/24161 (Zielblock 5046584): Keine solche Datei oder Verzeichnis

Die Abfrage hat das Format 'SELECT' Standorte ". * FROM" Standorte "WHERE (" Standorte "." ID "IN (115990 , 78330, 77891, 78248, ...) 'mit etwa 600 IDs in der IN-Klausel - keine optimale Abfrage, die ich kenne, aber dafür muss ich im Moment arbeiten!

Der Server läuft g PostgreSQL 8.4.6 auf x86_64-pc-linux-gnu, kompiliert von GCC gcc-4.4.real (Ubuntu 4.4.1-4ubuntu9) 4.4.1, 64-bit. Postgis 1.5 wird ebenfalls installiert und die Standorttabelle enthält eine Geometriespalte.

Wer hat eine Idee, was könnte den Fehler verursachen? Vielen Dank!

Antwort

2

Dieser Fehler zeigt schwerwiegende Beschädigung der Datenbank an, eine der Dateien der Datenbank, die die Tabellendaten (von etwas im Systemkatalog?) Enthält, fehlt. Ich bezweifle, dass Sie viel mehr tun können, als die Daten aus einem Backup wiederherzustellen.

+0

Danke, nicht das, was ich zu hören hoffte, aber zumindest kenne ich die Antwort jetzt! Gibt es eine Möglichkeit, mehr Informationen über den Fehler zu erhalten? Das Seltsame ist, wenn ich eine vollständige Auswahl für die gesamte Tabelle mache, bekomme ich alle Datensätze zurück, aber die Abfrage löst den Fehler aus. Ich vermute also, dass es etwas damit zu tun hat, dass ein Index/Primärschlüssel beschädigt ist, also hoffe ich, dass ich es einfach neu aufbauen kann ... – kokonut

+1

wenn du 'oid :: regclass aus pg_class auswählst, wo relfilenode = 24161' sollte das sagen Sie welche Beziehung (Tabelle oder Index) ist problematisch. Sie können postgresql mit der Option "-P" starten, um zu verhindern, dass Indizes verwendet werden, um auf Systemtabellen zuzugreifen, während Sie versuchen, Dinge neu zu erstellen. aber imho sollten Sie darauf abzielen, Dinge zu dem Punkt zu bringen, wo Sie die Daten auslagern und die Datenbank neu erstellen können, da dies nur das erste von vielen Problemen mit Ihrem aktuellen sein könnte. – araqnid

+0

Danke, sehr geschätzt! – kokonut