Debian
Postgresql 不再啟動
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