PgAdmin III, der Eröffnungsserverstatus gibt "ungültige Bytefolge für die Kodierung von UTF8"

9

Ich habe zwei Postgres 9.3 Server in der synchronen Replikation.

Ich musste den Slave neu starten, um ein neues archive_cleanup_command in recovery.conf zu laden.

Der Server wurde ordnungsgemäß neu gestartet und ist jetzt perfekt mit dem Master-Server synchronisiert.

Aber wenn ich das Panel "Server status" für den Slave-Server in PgAdmin III öffne (welche ausführbare Datei sich auf dem Master-Server befindet), erhalte ich einige Fehler wie folgt:

invalid byte sequence for encoding “UTF8” plus einige Hex-Codes

Es könnte sein, weil ich eine Tilde ~ in archive_cleanup_command gesetzt habe, aber es hat nicht funktioniert, dann habe ich es entfernt und der Befehl hat richtig funktioniert.

Vielleicht wurde ~ irgendwo geschrieben und es ist kein gültiges Zeichen ... aber ich habe auch Protokolle gelöscht ...

Das Protokoll des Slave-Servers hat viele Zeilen wie folgt:

%Vor%

Beachten Sie, dass postgresql-2015-02-13_111038.log das letzte Protokoll ist, von dem ich diese Zeilen erhalten habe.

    
Teejay 13.02.2015, 10:18
quelle

2 Antworten

4

Das Problem besteht darin, dass die Gebietsschemaeinstellung lc_messages auf eine Codierung eingestellt ist, die sich von der Codierung der Datenbank (en) unterscheidet. Daher werden einige Nachrichten mit der Windows-1252-Codierung in das Protokoll geschrieben, während beim Versuch, PgAdmin zum Anzeigen des Protokolls zu verwenden, versucht wird, die Datei mit UTF-8 zu interpretieren. Einige der Bytefolgen, die in das Protokoll geschrieben werden, sind nicht gültig UTF-8, was zu dem Fehler führt.

Tatsächlich kann die Art und Weise, in der verschiedene Gebietsschemas in postgresql interagieren, zu gemischten Codierungen in der Protokolldatei führen. Es gibt einen Fehlerbericht dazu, aber es sieht nicht so aus wurde gelöst.

Der einfachste Weg, dies zu beheben, ist lc_messages auf English_United States.UTF-8 zu setzen.

Es wäre auch vorzuziehen, dass lc_messages auf alle Datenbanken auf dem Server ausgerichtet ist (oder zumindest alle dieselbe Codierung verwenden).

Achten Sie darauf, alle vorhandenen Protokolldateien zu entfernen, da sie bereits die falsche Codierung enthalten.

    
harmic 08.09.2015 04:29
quelle
0

Das liegt daran, dass Ihr postgresql.log beschädigt ist, wie in der Anweisung 'select pf_file_read ....' angegeben.

Wenn Sie eine "Berührung" (nach einer Sicherung Ihres Logs) auf Ihrem Serverprotokoll machen und die Verbindung wiederherstellen, wird dieser Unicode-Fehler nicht mehr angezeigt und Sie können pgadmin III weiterhin verwenden.

    
Virgile 18.03.2015 16:19
quelle

Tags und Links