Saya menggunakan postgres dari homebrew di saya OS X, tapi ketika saya reboot sistem saya, kadang-kadang postgres tidak dimulai setelah reboot, dan jadi saya secara manual mencoba untuk memulai dengan postgres -D /usr/local/var/postgres
, tapi kemudian terjadi kesalahan dengan pesan berikut: FATAL: could not open directory "pg_tblspc": No such file or directory
.
Terakhir kali hal itu terjadi, saya tidak bisa mendapatkannya ke keadaan semula, jadi saya memutuskan untuk menghapus seluruh sistem postgres dan menginstalnya kembali dan membuat pengguna, tabel, kumpulan data, dll. Itu sangat menjijikkan, tetapi itu sering terjadi pada sistem saya, katakan sekali dalam beberapa bulan.
Jadi mengapa sering kehilangan pg_tblspc
file? Dan adakah yang bisa saya lakukan untuk menghindari hilangnya file?
Saya belum memutakhirkan homebrew dan postgres saya ke versi terbaru (yaitu saya telah menggunakan versi yang sama). Juga, semua hal yang saya lakukan pada database postgres adalah menghapus tabel dan mengisi data baru setiap hari. Saya belum mengubah pengguna, kata sandi, dll ...
EDIT (mbannert): Saya merasa perlu menambahkan ini, karena utas adalah hit teratas di google untuk masalah ini dan bagi banyak gejalanya berbeda. Homebrewer kemungkinan akan menemukan pesan kesalahan ini:
No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Jadi, jika Anda baru saja mengalami ini setelah pemutakhiran Yosemite, Anda sekarang sudah bisa membaca utas ini.
pg_tblspc
adalah direktori . Satu-satunya cara saya dapat melihat direktori ini dan hanya direktori ini menghilang secara acak adalah korupsi filesystem atau pemindai virus yang sangat buruk atau alat sinkronisasi file.
tablespaces
itu, jadi saya pikir saya tidak menyimpannya di penyimpanan eksternal.
pg_tblspc
tidak hilang begitu saja pada sistem apa pun yang pernah saya temui, saya juga tidak bisa membayangkan alasan yang masuk akal. Akan sangat sulit untuk mengatakan apa yang membuat sistem Anda berbeda tanpa lebih banyak detail.