Postgresql

磁碟空間不足後無法重新啟動 Postgres

  • August 15, 2019

當 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

問題

  1. 裡面應該有replorigin_checkpoint什麼?

  2. 是否有可能從較早的檢查點重新啟動?

  3. 有哪些類型的損壞修復(不僅是損壞檢測)

也許只是嘗試重命名文件?如果它仍然是空的,則不應該有任何數據失去。

如果pg_logical是這裡的罪魁禍首,您可以嘗試在不啟動伺服器的情況下啟動它嗎?您應該更改 postgresql.conf 文件中的一些參數,例如wal_levelshared_preload_libraries。如果它有效,您可以嘗試在之後啟用 pg_logical。要了解 replorigin_checkpoint 文件中的內容,您可以查看它的github

該文件的文件權限是否正常,您能看到 postgres 使用者的內容嗎?我也不確定pg_logical是否可以使用即將推出的 11devel 版本。

您還可以通過不使用 NFS 來為自己省去很多麻煩。許多 PostgreSQL DBA 報告難以理解和修復故障。你應該很容易找到關於這個主題的文獻。

引用自:https://dba.stackexchange.com/questions/204086