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.
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.
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.
Tags und Links utf-8 postgresql pgadmin