无法在Linux上启动Postgres

时间:2019-05-08 18:44:51

标签: linux postgresql

当我运行 sudo -u postgres psql 时,报错为

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

所以我通过 pg_lsclusters 检查状态,它显示为down

所以我尝试通过 sudo pg_ctlcluster 11 main start 启动集群,它给出了错误

Job for postgresql@11-main.service failed because the service did not take 
the steps required by its unit configuration.
See "systemctl status postgresql@11-main.service" and "journalctl -xe" for 
details.

然后我通过 journalctl -xe 检查日志,它给出

-- Subject: Unit postgresql@11-main.service has begun start-up
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit postgresql@11-main.service has begun starting up.
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: Error: 
/usr/lib/postgresql/11/bin/pg_ctl /usr/lib/postgresql/11/bin/pg_ctl start -D 
/data/aqu
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
18:35:50.032 UTC [3622] LOG:  listening on IPv4 address "0.0.0.0", port 5432
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
18:35:50.032 UTC [3622] LOG:  listening on IPv6 address "::", port 5432
 May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
 18:35:50.033 UTC [3622] LOG:  listening on Unix socket 
 "/var/run/postgresql/.s.PGS
 May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
 18:35:50.090 UTC [3623] LOG:  database system shutdown was interrupted; 
 last known
 May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
18:35:50.140 UTC [3623] LOG:  database system was not properly shut down; 
automati
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
18:35:50.147 UTC [3623] LOG:  redo starts at 9D/44F48998
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
 18:35:53.483 UTC [3624] a2i@postgres FATAL:  the database system is 
 starting up
 May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 
 18:35:54.422 UTC [3625] a2i@postgres FATAL:  the database system is 

starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:35:55.461 UTC [3626] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:35:55.465 UTC [3627] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:35:57.713 UTC [3628] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:35:57.861 UTC [3623] LOG:  redo done at 9D/AFFFFF98
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:35:59.416 UTC [3629] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:36:03.493 UTC [3630] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql

@11-main[3617]: 2019-05-08 18:36:04.431 UTC [3631] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:36:05.471 UTC [3632] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:36:05.477 UTC [3633] a2i@postgres FATAL:  the database system is starting up
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:36:06.776 UTC [3623] PANIC:  could not write to file "pg_wal/xlogtemp.3623": No
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:36:06.959 UTC [3622] LOG:  startup process (PID 3623) was terminated by signal
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:36:06.959 UTC [3622] LOG:  aborting startup due to startup process failure
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: 2019-05-08 18:36:07.108 UTC [3622] LOG:  database system is shut down
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: pg_ctl: could not start server
May 08 18:36:07 ip-10-0-1-87 postgresql@11-main[3617]: Examine the log output.
May 08 18:36:07 ip-10-0-1-87 systemd[1]: postgresql@11-main.service: Can't open PID file /var/run/postgresql/11-main.pid (yet?) after start: No such
May 08 18:36:07 ip-10-0-1-87 systemd[1]: postgresql@11-main.service: Failed with result 'protocol'.
May 08 18:36:07 ip-10-0-1-87 systemd[1]: Failed to start PostgreSQL Cluster 11-main.
-- Subject: Unit postgresql@11-main.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Unit postgresql@11-main.service has failed.
--
-- The result is RESULT.
May 08 18:36:07 ip-10-0-1-87 sudo[3612]: pam_unix(sudo:session): session closed for user root

这可能是由于不正确地关闭数据库引起的 我不需要像提取现有数据库转储然后重新安装postgres并将其还原的解决方案。我有大数据,这将需要很多时间。 对此进行排序将是什么灵魂?

2 个答案:

答案 0 :(得分:2)

它在日志中说出了什么问题:

Prelude Data.Char Text.Printf Data.List> format = Text.Printf.printf::String->Int->String
Prelude Data.Char Text.Printf Data.List> intercalate "" $ map (format "%08b" . ord) "ABCD"
"01000001010000100100001101000100"

我看不到“否”之后的内容,因为您好像切断了消息的那一部分。

但是,数据库服务器无法写入事务日志目录,并且非常明智地拒绝继续。停止您正在做的事情,对数据目录及以下数据目录中的所有文件进行完整备份,然后然后找出问题所在。

您不知道自己在做什么(或者您不阅读错误日志就不会在这里发布信息),并且很可能您所做的其他任何事情都会使情况变得更糟。

明显的检查事项:

  • 机器最近崩溃了吗?
  • 磁盘空间用完了吗?
  • 目录权限已更改吗?

答案 1 :(得分:-1)

对我来说,这是通过更改bin目录的权限来解决的。

chmod 755 /bin