奇怪的 postgresql 日志条目

奇怪的 postgresql 日志条目

我试图弄清楚为什么重新启动后我的 postgresql 日志中会出现一些奇怪的条目:

2010-05-14 11:30:25 EEST LOG:  database system was shut down at 2010-05-14 11:30:22 EEST
2010-05-14 11:30:25 EEST LOG:  autovacuum launcher started
2010-05-14 11:30:25 EEST LOG:  database system is ready to accept connections
2010-05-14 11:30:25 EEST LOG:  incomplete startup packet
2010-05-14 11:30:40 EEST WARNING:  there is already a transaction in progress
2010-05-14 11:30:40 EEST LOG:  could not receive data from client: Connection reset by peer
2010-05-14 11:30:40 EEST LOG:  unexpected EOF on client connection

首先,这令2010-05-14 11:30:25 EEST LOG: incomplete startup packet我感到困扰。有人知道为什么会发生这种情况吗?

而且,这个非常奇怪:2010-05-14 11:30:40 EEST WARNING: there is already a transaction in progress......

答案1

incomplete startup packet表示已建立连接,但 Postgres 服务器未收到预期的握手(我收到大量此类信息,因为我的监控系统会检查以确保端口 5432 已打开,但还不够智能,无法实际登录并查询数据库)。
这是否是问题取决于您是否预期有连接而不是握手:对我来说,每 5 分钟看到一次不是问题,但如果您没有预期到,此消息可能表明您正在接受端口扫描。

WARNING: there is already a transaction in progress意思就是:有人试图在已经处于事务中的情况下启动事务 ( BEGIN ... BEGIN)。
如果您经常看到这种情况,则有人在程序中编写了一些错误的 SQL,您应该查找/修复它,因为相应的COMMITandROLLBACK语句可能无法按预期执行。如果您只看到一次,之后再也没有看到,那么可能是有人在 psql 中犯了一个错误。

答案2

在我们的环境中,启动数据包不完整是由于 haproxy 以可编程间隔(对于我们来说,每 600000 毫秒)发送心跳造成的。我们在 tcp 模式下使用 haproxy 来中继业务用户请求以再次运行 postgres 报告。

相关内容