2016-07-28 12 views
0

Kürzlich wanderten wir alle Datenbanken von PostgreSQL Version 8.4 auf Debian 5 bis PostgreSQL Version 9.5 auf anderen Server laufen CentOS 6.5 pg_dump und pg_restore Dienstprogramme verwenden. Die Codierung der Datenbank ist SQL_ASCII Tabellen enthalten riesige codierte Daten. Verbleibende Datenbanken scheinen normal zu funktionieren, aber nur bestimmte.PostgreSQL 9.5 Fehler: ungültige Byte-Sequenz für die Codierung "UTF-8": 0xC3 0xEE

Wenn ich versuche, Daten auf neue Server aus der Datenbank zu holen I erhalten:

megaart_www=# select * from data_tbl limit 10; 
ERROR: invalid byte sequence for encoding "UTF8": 0xc1 0xe0

sicher Konfigurationen auf beiden Server sein identisch ich diese Befehle ausführen. Die Ergebnisse sind identisch.

postgres=# SHOW client_encoding; 
client_encoding 
----------------- 
UTF8 
(1 row)
 
postgres=# SHOW server_encoding; 
server_encoding 
----------------- 
UTF8 
(1 row) 

Datenbank der Codierung:

megaart_www=# show server_encoding; 
server_encoding 
----------------- 
SQL_ASCII 
(1 row) 

Database Server-Konfigurationen identisch sind, aber weiterhin Fehler empfangen.

Antwort

1

Also ist Ihre Server_encoding SQL_ASCII auf dem neuen Server, aber Ihre client_encoding ist UTF8? Im Grunde heißt es, dass UTF8 keine Übersetzung für diese Bytes kennt. Ich stelle mir vor, wenn Sie Ihre client_encoding übereinstimmen: SET client_encoding = 'SQL_ASCII' und wiederholen Sie die Abfrage, es wird gut funktionieren. Ob Sie wirklich möchten, dass Ihre Daten als SQL_ASCII gespeichert werden, ist eine Frage, die Sie beantworten müssen.

Die Servercodierung wird zum Zeitpunkt der Instanzerstellung konfiguriert. Wenn Sie sie also mit Ihrem alten Server, dem UTF8, synchronisieren müssen, müssen Sie die Instanz neu erstellen und die Daten neu laden. Die Clientcodierung kann auf Sitzungsebene geändert werden. Es ist die Übersetzung dieser zwei Parameter, die die Fehler verursacht.

+0

Wie oben auf dem alten Server client_encoding 'UTF8' erwähnt, funktioniert es gut. –

+0

Ich glaube nicht, dass Sie lesen, was ich gebe. – d1ll1nger

Verwandte Themen