Debian

Postgresql 不再啟動

  • July 20, 2018

Debian 9.5 - postgresql 集群 9.4。這不是全新安裝 - 在我嘗試重新啟動服務之前,它是一個執行良好的系統

所有命令:/etc/init.d/postgresql start並且service postgresql start行為systemctl start postgresql相同:提示掛起大約 10-15 秒,然後什麼也沒有發生 - postgres 沒有執行!

這是系統日誌:

Jul 18 18:15:35 intranet systemd[1]: Starting PostgreSQL Cluster 9.4-main...
Jul 18 18:16:06 intranet postgresql@9.4-main[27610]: The PostgreSQL server failed to start. Please check the log output.
Jul 18 18:16:06 intranet systemd[1]: postgresql@9.4-main.service: Control process exited, code=exited status=1
Jul 18 18:16:06 intranet systemd[1]: Failed to start PostgreSQL Cluster 9.4-main.
Jul 18 18:16:06 intranet systemd[1]: postgresql@9.4-main.service: Unit entered failed state.
Jul 18 18:16:06 intranet systemd[1]: postgresql@9.4-main.service: Failed with result 'exit-code'.

postgres 日誌 (/var/log/postgresql/) 為空。

journalctl -xe:

-- Unit postgresql@9.4-main.service has begun starting up.
Jul 18 18:16:06 intranet postgresql@9.4-main[27610]: The PostgreSQL server failed to start. Please check the log output.
Jul 18 18:16:06 intranet systemd[1]: postgresql@9.4-main.service: Control process exited, code=exited status=1
Jul 18 18:16:06 intranet systemd[1]: Failed to start PostgreSQL Cluster 9.4-main.
-- Subject: Unit postgresql@9.4-main.service has failed

systemctl 狀態 postgresql

● postgresql.service - PostgreSQL RDBMS
  Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
  Active: active (exited) since Wed 2018-07-18 17:42:02 CEST; 37min ago
Main PID: 29934 (code=exited, status=0/SUCCESS)
   Tasks: 0 (limit: 4915)
  CGroup: /system.slice/postgresql.service

Jul 18 17:42:02 intranet systemd[1]: Starting PostgreSQL RDBMS...
Jul 18 17:42:02 intranet systemd[1]: Started PostgreSQL RDBMS.

systemctl status postgresql@9.4-main

● postgresql@9.4-main.service - PostgreSQL Cluster 9.4-main
  Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled; vendor preset: enabled)
  Active: failed (Result: exit-code) since Wed 2018-07-18 18:16:06 CEST; 1 day 14h ago
 Process: 27610 ExecStart=postgresql@9.4-main --skip-systemctl-redirect 9.4-main start (code=exited, status=1/FAILURE)

Jul 18 18:15:35 intranet systemd[1]: Starting PostgreSQL Cluster 9.4-main...
Jul 18 18:16:06 intranet postgresql@9.4-main[27610]: The PostgreSQL server failed to start. Please check the log output.
Jul 18 18:16:06 intranet systemd[1]: postgresql@9.4-main.service: Control process exited, code=exited status=1
Jul 18 18:16:06 intranet systemd[1]: Failed to start PostgreSQL Cluster 9.4-main.
Jul 18 18:16:06 intranet systemd[1]: postgresql@9.4-main.service: Unit entered failed state.
Jul 18 18:16:06 intranet systemd[1]: postgresql@9.4-main.service: Failed with result 'exit-code'.

因此,絕對沒有跡象表明出了什麼問題。奇怪的是,系統一直執行沒有任何問題 - 我的應用程序剛剛崩潰,我嘗試重新啟動 postgres - 現在它不會再次啟動。

經過幾個小時的搜尋,我發現,奇怪的是,它可以手動啟動。

我以 postgres-user 身份登錄並使用了以下命令:

/usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf

它工作正常 - 沒有錯誤,沒有任何東西。我什至嘗試添加’-d 3’以獲得更詳細的輸出……但是沒有什麼不尋常的。它執行良好 - 問題只是初始化腳本。我該如何解決這個問題 - 或者至少找出問題的根源?

我想我解決了這個問題。感謝評論者指導我找到問題。

的權限以/var/log/postgresql某種方式更改。該文件夾(以及其中的日誌文件)不再歸 postgres 使用者所有。所以顯然它不能再寫/打開日誌了。

完成後chown postgres:postgres /var/log/postgresql/ -R,我能夠通過 init-scripts 啟動 postgres

引用自:https://serverfault.com/questions/922521