auf eine Datenbank zugreifen. Heute Morgen kam auf einmal die Fehlermeldung:
Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused
Is the server running on host “localhost” and accepting
TCP/IP connections on port 5432? (…)
Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused
Is the server running on host “localhost” and accepting
TCP/IP connections on port 5432? (…)
Nachdem ich den Server neu startete kam die Fehlermeldung:
Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: cache lookup failed for index 2662 in (…)
Warning: pg_connect(): Unable to connect to PostgreSQL server: FATAL: cache lookup failed for index 2662 in (…)
Durch einige Recherche habe ich den ersten Fehler gefunden und den String durch:
Die Anmeldung an sich ist in beiden Fällen richtig, es hat ja auch mal geklappt. Der Unterschied ist lediglich, daß bei Angabe von Host und Port ein Connect via TCP/IP erfolgt und ohne diese Parameter via Unix-Socket, wobei letztere Variante schneller ist.
Das Problem ist was anderes:
Dir ist der Server runtergefallen (warum auch immer) und dabei hat es einen Index auf einer wichtigen Systemtabelle (pg_class) geschreddert.
Du solltest auch rausbekommen, was die Ursache für den kapotten Index bzw. den Absturz ist. Kann es sein, daß fsync=off ist? Normalerweise sollte selbst ein harter Crash nicht die DB schreddern, sondern die DB sollte bis zum letzten COMMIT wieder hochkommen. Vielleicht ein Plattenfehler?
Noch ein Hinweis: bevor du irgendetwas reparierst: fahr die Datenbank runter und erstelle ein Backup vom kompletten Datenverzeichnis.
Das ist jetzt schon kaputt, du willst ggf. durch deine Reparaturversuche nicht noch mehr kaputt machen.