Einleitung
In der Welt der Datenbanken ist PostgreSQL für seine Zuverlässigkeit und Leistungsfähigkeit bekannt. Dennoch kann es vorkommen, dass Entwickler und Administratoren auf kryptische Fehlermeldungen stoßen, die nur begrenzt Aufschluss über die eigentliche Ursache eines Problems geben. In solchen Fällen ist es hilfreich, die Detailtiefe der Fehlermeldungen zu erhöhen. Hier kommen die Parameter log_error_verbosity
und client_min_messages
ins Spiel. In diesem Artikel erläutere ich, wie Du diese Parameter verwenden kannst, um umfassendere und hilfreichere Fehlermeldungen zu erhalten.
Der Parameter log_error_verbosity
Der Parameter log_error_verbosity
bestimmt, wie detailliert die Fehlerprotokolle von PostgreSQL sind. Es gibt drei mögliche Einstellungen:
- TERSE: Liefert die minimal notwendige Information.
- DEFAULT: Standardmäßige Detailtiefe, die ausreichend Informationen für die meisten Anwendungen bietet.
- VERBOSE: Bietet die höchste Detailtiefe und ist besonders nützlich für das Debuggen komplexer Probleme.
Anwendung von log_error_verbosity
Um die Detailtiefe der Fehlermeldungen zu erhöhen, kannst Du log_error_verbosity
auf VERBOSE
setzen. Dies kann entweder in der PostgreSQL-Konfigurationsdatei (postgresql.conf
) oder direkt in einer SQL-Sitzung erfolgen.
In der postgresql.conf
Datei
- Öffne die
postgresql.conf
Datei in einem Texteditor:
sudo nano /etc/postgresql/<version>/main/postgresql.conf
- Suche nach dem Parameter
log_error_verbosity
und setze ihn aufverbose
:
log_error_verbosity = verbose
- Speichere die Datei und schließe den Editor.
- Starte den PostgreSQL-Server neu, damit die Änderungen wirksam werden:
sudo systemctl restart postgresql
In einer SQL-Sitzung
Du kannst die Einstellung auch vorübergehend in einer SQL-Sitzung ändern:
SET log_error_verbosity = 'verbose';
Der Parameter client_min_messages
Der Parameter client_min_messages
steuert, welche Meldungen an den Client gesendet werden. Die verfügbaren Stufen sind:
- DEBUG5 bis DEBUG1: Sehr detaillierte Debug-Informationen.
- INFO: Informative Nachrichten.
- NOTICE: Wichtige Hinweise.
- WARNING: Warnungen vor möglichen Problemen.
- ERROR: Fehler, die eine Aktion verhindern.
- LOG: Nachrichten, die im Serverlog erscheinen.
- FATAL: Kritische Fehler, die die Sitzung beenden.
- PANIC: Schwerwiegende Fehler, die den Server stoppen.
Anwendung von client_min_messages
Um sicherzustellen, dass alle relevanten Meldungen angezeigt werden, kannst Du client_min_messages
auf die detaillierteste Stufe DEBUG5
setzen.
In der postgresql.conf
Datei
- Öffne die
postgresql.conf
Datei in einem Texteditor:
sudo nano /etc/postgresql/<version>/main/postgresql.conf
- Suche nach dem Parameter
client_min_messages
und setze ihn aufdebug5
:
client_min_messages = debug5
- Speichere die Datei und schließe den Editor.
- Starte den PostgreSQL-Server neu:
sudo systemctl restart postgresql
In einer SQL-Sitzung
Du kannst die Einstellung auch vorübergehend in einer SQL-Sitzung ändern:
SET client_min_messages = debug5;
Zusammenfassung
Die Anpassung der Parameter log_error_verbosity
und client_min_messages
kann Dir helfen, detailliertere und nützlichere Fehlermeldungen in PostgreSQL zu erhalten. Dies erleichtert das Debuggen und die Fehlerbehebung erheblich. Denke daran, dass Änderungen an diesen Parametern die Menge der geloggten Informationen erheblich erhöhen können, was sich auf die Performance und die Größe der Logdateien auswirken kann. Verwende diese Einstellungen daher mit Bedacht und nur für die Zeit, die zur Problemlösung erforderlich ist.