Postgresql
磁碟空間不足後無法重新啟動 Postgres
當 postgres 執行時,我的 HD 空間不足。我不得不殺死 postgres 並釋放一些空間。現在我無法使用以下錯誤消息重新啟動 postgres:
LOG: listening on IPv4 address "0.0.0.0", port 5434 LOG: listening on IPv6 address "::", port 5434 LOG: listening on Unix socket "/tmp/.s.PGSQL.5434" LOG: database system was interrupted; last known up at 2018-04-16 05:20:46 EDT PANIC: could not read file "pg_logical/replorigin_checkpoint": Success LOG: startup process (PID 97490) was terminated by signal 6: Aborted LOG: aborting startup due to startup process failure LOG: database system is shut down
裡面有
data/pg_logical
一個同名的文件,replorigin_checkpoint
但它是空的。我已經按照此處的建議出於備份原因複制了數據目錄,但我實際上並不確定下一步該做什麼。
amcheck
看起來,它只適用於正在執行的 postgres。
./postgres -V postgres (PostgreSQL) 11devel
Ubuntu 16.04.4 LTS
也許值得注意的是,文件系統本身就安裝在該機器上(
nfs
)問題
裡面應該有
replorigin_checkpoint
什麼?是否有可能從較早的檢查點重新啟動?
有哪些類型的損壞修復(不僅是損壞檢測)
也許只是嘗試重命名文件?如果它仍然是空的,則不應該有任何數據失去。
如果pg_logical是這裡的罪魁禍首,您可以嘗試在不啟動伺服器的情況下啟動它嗎?您應該更改 postgresql.conf 文件中的一些參數,例如
wal_level
和shared_preload_libraries
。如果它有效,您可以嘗試在之後啟用 pg_logical。要了解 replorigin_checkpoint 文件中的內容,您可以查看它的github。該文件的文件權限是否正常,您能看到 postgres 使用者的內容嗎?我也不確定
pg_logical
是否可以使用即將推出的 11devel 版本。您還可以通過不使用 NFS 來為自己省去很多麻煩。許多 PostgreSQL DBA 報告難以理解和修復故障。你應該很容易找到關於這個主題的文獻。