首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >创建到PostgreSQL的连接时出现“致命:数据库系统正在关闭”

创建到PostgreSQL的连接时出现“致命:数据库系统正在关闭”
EN

Stack Overflow用户
提问于 2014-06-27 09:17:38
回答 3查看 25.5K关注 0票数 10

在创建到PostgreSQL 9.2服务器的PostgreSQL JDBC连接时,我得到了FATAL: the database system is shutting down错误。我从JDBC得到的具体异常路径如下:

代码语言:javascript
代码运行次数:0
运行
复制
Caused by: org.postgresql.util.PSQLException: FATAL: the database system is shutting down
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:398)
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:173)
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:136)
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:29)
    at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:21)
    at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)
    at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
    at org.postgresql.Driver.makeConnection(Driver.java:393)
    at org.postgresql.Driver.connect(Driver.java:267)

从各种日志文件(来自PostgreSQL、我们的管理层、来自使用PostgreSQL的应用程序)中,我没有看到任何实际发生的数据库关闭(像往常一样创建到PostgreSQL的其他连接,没有从我们的管理层启动关闭,等等),但是在PostgreSQL服务器日志中,我确实看到了具有相同时间戳的错误消息:

代码语言:javascript
代码运行次数:0
运行
复制
2014-06-16 12:30:00.736 GMT LOG:  connection received: host=127.0.0.1 port=38530
2014-06-16 12:30:00.737 GMT FATAL:  the database system is shutting down

通过在线搜索,我了解到每当PostgreSQL关闭连接时,都会使用此错误消息。

为什么PostgreSQL会拒绝给我一个新的连接?这会不会是由某种资源争用引起的?如何从PostgreSQL本身获取有关该错误的更多信息?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-08 08:46:06

这个问题被证明是由PostgreSQL的一个非常糟糕的误用引起的,我们的服务器在同一个数据目录上启动了两个PostgreSQL实例(它删除了postmaster.pid并使用了一个新的端口号,因此绕过了针对此行为的正常保护措施),这解释了为什么日志没有包含任何有用的信息--它们被没有拒绝连接的PostgreSQL实例覆盖。实际的问题是由竞争的PostgreSQL实例之间的复杂交互引起的,我希望没有其他人也遇到这个问题!

票数 10
EN

Stack Overflow用户

发布于 2019-03-07 01:39:03

当服务器重新启动时,我们遇到了这个问题。在这种情况下,重新启动不会启动与PostgreSql的连接。只需检查状态:"/etc/init.d/postgresql status“,如果返回的结果是:"no server running”只需启动:"/etc/init.d/postgresql start“

票数 1
EN

Stack Overflow用户

发布于 2020-07-21 23:28:12

可能硬盘上没有足够的空间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24442623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档