Defekte bzw fehlende Datensätze

Hallo.

Habe folgendes Problem:
Eines Datensatzes einer bestimmten Tabelle (select * from where id = … ) per PGAdmin stürzt mein Postgres Dienst ab, gleiches gilt für Vacuum und Reindex. Es scheint eines der Felder defekt zu sein, da sich einzelne Spalten des Datensatzes problemlos selektieren lassen.
Prinzipiell könnte ich einen neuen DS erzeugen und die entsprechenden Verweise auf den alten Datensatz dort hin schlüsseln.
Dazu wollte ich vorher sicher, was über pg_dump natürlich nicht funktioniert.
Habe dann die Dateien aus dem Ordner mit Namen der entsprechenden OID kopiert, eine neue Datenbank erzeugt und in den entsprechenden Ordner die Dateien der defekten Datenbank dort hinein kopiert. ( Alles natürlich bei angehaltenem Dienst). Die neue Datenbank wird nach Neustart des Diensts korrekt erkannt, ist auch ansprechbar, es fehlen allerdings sehr viele Datensätze, versch. Tabellen sind komplett leer. REINDEX und Wartung zeigen keinen Fortschritt.
Hat irgendjemand noch eine Idee wie ich das korrigieren oder wenigstens sichern kann, vll auch überprüfen wie der gesamte Zustand der Daten in der alten Datenbank ist?

PG Version 8.3
OS Windows Server 2003

Danke schonmal.

Das hört sich so an, als ob die Dateien auf deiner Festplatte kaputt sind.

Was steht denn im Log der Datenbank? pgAdmin ist dafür nicht aussagekräftig genug.




Ach ja, und ich hoffe, du hast aktuelle Backups.

Was steht im Log?

PG Version 8.3
OS Windows Server 2003

Mein Beileid.

Andreas

2009-09-22 12:41:07 CEST LOG: server process (PID 1852) exited with exit code 128
2009-09-22 12:41:07 CEST LOG: terminating any other active server processes
2009-09-22 12:41:07 CEST WARNING: terminating connection because of crash of another server process
2009-09-22 12:41:07 CEST DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
2009-09-22 12:41:07 CEST HINT: In a moment you should be able to reconnect to the database and repeat your command.


2009-09-22 13:54:17 CEST FATAL: the database system is starting up
2009-09-22 13:54:17 CEST LOG: database system was not properly shut down; automatic recovery in progress
2009-09-22 13:54:18 CEST LOG: redo starts at 5/63B77258
2009-09-22 13:54:18 CEST LOG: record with zero length at 5/63C52340
2009-09-22 13:54:18 CEST LOG: redo done at 5/63C52310
2009-09-22 13:54:18 CEST LOG: last completed transaction was at log time 2009-09-22 12:40:55.953+02

2009-09-22 18:16:25 CEST LOG: server process (PID 6096) was terminated by exception 0xC0000005
2009-09-22 18:16:25 CEST HINT: See C include file “ntstatus.h” for a description of the hexadecimal value.

2009-09-23 21:37:49 CEST LOG: could not receive data from client: Unknown winsock error 10061
2009-09-23 21:37:49 CEST LOG: unexpected EOF on client connection

Das ist mal ein Auszug.
Auf solche Dinge wie OS und Häufigkeit des Backups habe ich keinerlei Einfluss, da Kundendatenbank. Prinzipiell bin ich auch schon von Hardwareproblemen ausgegangen, deswegen ja die Frage nach der kompletten Überprüfung weil ich davon ausgehe dass das lange nicht der einzige betroffene DS sein wird.
Wird wohl im Endeffekt auf eine Restauration hinauslaufen, es sei denn irgendjemand hat noch eine Idee.

Die Datenbank ist schon kaputt, da ist nichts mehr zu machen.

Woran das liegt, kannst du nur - falls aktiviert - im Systemlog sehen. Außerdem vielleicht mal die Festplatte testen auf kaputte Blöcke.

wie gesagt, war auch schon meine Vermutung.
Thx

Ich habe heute wegen verdächtigem Verhalten meine Platte im Selbsttest prüfen lassen (Bios) … gemeldet wurde, dass sie auszutauschen sei :frowning:

geteiltes leid ist halbes leid :wink:

Hab die Datenbank wieder hinbekommen, waren scheinbar nur 4 defekte Datensätze, dabei auch nur ein paar Spalten betroffen.
Kopien der betroffenen Tabellen ohne defekte Datensätze erstellt, defekte Datensätze neuangelegt ( fehlende Daten waren anhand restlichem Datenbestand zu rekonstruieren),originale Tabelle durch Kopie ersetzt ( nach Entfernen von Constraints etc), Constraints manuell gesetzt.
Läuft wieder, keine Fehler, weder bei Reindex,Wartung oder Backup. Log zeigt auch keine Fehler mehr. :sunglasses: :smiley:

:sunglasses: :sunglasses: :sunglasses: :sunglasses: :sunglasses: :sunglasses: :sunglasses: :sunglasses: :sunglasses: :sunglasses: :sunglasses:

Und du hast hoffentlich nun eine andere Festplatte verwendet?

Nein - ich habe die defekten Bauelemente und Sektoren mit einem dicken roten Marker durchgestrichen :wink:

@ ads
aber sowas von :wink: