it-swarm.com.de

Postgres konnte keine Daten vom Client empfangen: Zeitüberschreitung der Verbindung

Ich bin ein SQL-Datenbankadministrator und lerne Postgres. In Postgres-Protokollen erhalte ich häufig "Konnte keine Daten vom Client empfangen: Zeitüberschreitung der Verbindung" Ich habe keine anderen Protokolle als diese

Sind Sie sich nicht sicher, wie Sie Fehler beheben sollen? Ich überprüfe die Anwendungsprotokolle und DB-Protokolle, um die Zeit zu vergleichen, konnte jedoch keine Auffälligkeiten feststellen.

kann mir jemand zeigen, wie ich dieses Problem verfolgen kann?.

Vielen Dank

6
Spinach

Einige Möglichkeiten:

  • Ihre Anwendung schließt Verbindungen, ohne dem PostgreSQL-Server mitzuteilen, dass dies der Fall ist, indem Sie einfach den Netzwerk-Socket schließen. Es sollte ein PQclose(conn) senden, wenn libpq verwendet wird oder was auch immer Ihre Sprache/Ihr Treiber entspricht.

  • Zeitüberschreitungen bei der Übersetzung von Netzwerkadressen bei inaktiven Verbindungen oder anderen damit verbundenen Netzwerkproblemen führen dazu, dass die TCP -Verbindungen unterbrochen werden), sodass Client und Server die Kommunikation untereinander verlieren.

  • Eine Firewall auf dem Client oder Server blockiert oder unterbricht Verbindungen, nachdem sie hergestellt wurden (möglicherweise funktioniert IDS nicht richtig?)

5
Craig Ringer

die iptables-Firewall benötigt möglicherweise eine Regel, um an den Postgres-Port senden zu können, mit dem Sie eine Verbindung herstellen:

iptables -L -n

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:5432
1
Noumenon