Ich verwende Postgres von Homebrew in meinem OS X, aber wenn ich mein System neu starte, wird das Postgres manchmal nach dem Neustart nicht gestartet. Daher habe ich manuell versucht, es zu starten postgres -D /usr/local/var/postgres
, aber dann trat der Fehler mit der folgenden Meldung auf : FATAL: could not open directory "pg_tblspc": No such file or directory
.
Das letzte Mal, als es auftrat, konnte ich es nicht in den ursprünglichen Zustand versetzen, also entschied ich mich, das gesamte Postgres-System zu deinstallieren und es dann neu zu installieren und Benutzer, Tabellen, Datensätze usw. zu erstellen. Es war so ekelhaft, aber Es tritt häufig auf meinem System auf, etwa einmal in einigen Monaten.
Warum verliert es die pg_tblspc
Datei häufig? Und kann ich etwas tun, um den Verlust der Datei zu vermeiden?
Ich habe mein Homebrew und Postgres nicht auf die neueste Version aktualisiert (dh ich habe dieselbe Version verwendet). Außerdem habe ich in der Postgres-Datenbank nur die Tabelle gelöscht und die neuen Daten jeden Tag aufgefüllt. Ich habe den Benutzer, das Passwort usw. nicht geändert.
EDIT (mbannert): Ich hatte das Bedürfnis, dies hinzuzufügen, da der Thread der Top-Hit bei Google für dieses Problem ist und für viele das Symptom anders ist. Homebrewer werden wahrscheinlich auf diese Fehlermeldung stoßen:
No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Wenn Sie dies erst nach dem Yosemite-Upgrade erlebt haben, können Sie diesen Thread jetzt lesen.
pg_tblspc
ist ein Verzeichnis . Die einzige Möglichkeit, dieses Verzeichnis zu sehen und nur dieses Verzeichnis, das zufällig verschwindet, ist eine Beschädigung des Dateisystems oder ein besonders schlecht benommener Virenscanner oder ein Dateisynchronisierungstool.
tablespaces
ist, also glaube ich nicht, dass ich es auf einen externen Speicher gestellt habe.
pg_tblspc
verschwindet nicht einfach auf einem System, auf das ich jemals gestoßen bin, und ich kann mir auch keinen vernünftigen Grund dafür vorstellen. Es wird sehr schwer zu sagen sein, was Ihr System ohne viel mehr Details anders macht.