SOS Notfall: Fehler-Abbruch beim klonen der Datenbank

Ich bin gerade dabei für einen Kunden die Datenbank von MySQL nach PostgreSQL zu migrieren und beim clonen tritt diese Fehlermeldung auf:

[FireDAC] [Phys][PG][libpq] ERROR: invalid byte sequence for encoding “UTF8”: 0x000

PostgreSQL Server frisch aufgesetzt Debian 10 PostgreSQL 11, dem Wiki folgend.
Datenbank ist komplett leer, also keine Strukturen angelegt, weil der Klone-Mechanismus das nicht mag.

Der gleiche Export in eine SQLite DB läuft über diesen Punkt hinweg. Die Frage ist, was passiert, wenn ich die SQLite dann wieder in die PostgreSQL übertragen will. Dauert jeweils eine knappe Stunde.

Das ist wohl ein ungültiges Zeichen (Nullbyte?) in der Quelldatenbank irgendwo.

Ich würde einen Textdump (also SQL-Befehle) der Quelldatenbank machen und dort nach \000 suchen.

Keins gefunden:

Wenn ich nach SQLite exportiere, fliegt der Fehler auch nicht.

Der Export in eine SQLite ist jetzt durch gelaufen, wenn ich die jetzt wieder in die PostgreSQL klonen möchte, fliegt der gleiche Fehler.

Lad mal bitte den originalen MySQL-Dump nach https://www.mairlist.com/upload hoch.

Auch wenn ich vermutlich jetzt damit vollkommen daneben liege, hatte ich anfangs den selben Fehler.

Grund war ein fehlender Eintrag in der mAirlist Wiki der für die PostGreSQL ab Version 11 nicht mit angegeben ist.

In PG Admin 4, falls das verwendet wird, muss die Administrative Rolle noch seperat gesetzt werden für die Benutzerverbindung seitens mAirlist.

Sollte das vollkommen daneben sein, entschuldige ich mich schon mal vorab.

Danke für den Dump. Da es sich um MySQL handelt, such mal nur nach \0. Da findest du dann u.a. solche Einträge:

(7701, NULL, 'DIS GENERATION #006', '', 'Music', NULL, 4349.205, NULL, NULL, NULL, NULL, 'engiTunSMPB\0 00000000 00000210 000008A7 000000000B6E97C9 00000000 0638A660 00000000 00000000 00000000 00000000 00000000 00000000', NULL, NULL, 1, 'Vorproduktionen\\dis generation\\DIS GENERATION #006.mp3', NULL, NULL, NULL, NULL, 'File', NULL, NULL, NULL),

Man beachte den Teil hinter “engiTunSMPB”.

1 Like

Danke!
Offensichtlich waren in dem Kommentar, noch weitere nicht lesbare Zeichen.
Der war zum Glück überall identisch. Ich habe über die Massenbararbeitung diesen Kommentar gelöscht.
Ein weiterer hatte sich noch versteckt. Auch hier in der Bemerkung.

Ich hoffe das läuft jetzt durch.
Verbesserungsvorschlag: Da dies anscheinend nur Bemerkungsfelder betraf, beim import prüfen ob man Null-Bytes importiert und diese gleich entfernen.

Der Vollständigkeit halber: Create role, ist der Punkt der im Wiki nicht beschrieben ist. Das muss gesetzt werden, wenn man die Benutzerrechte vergeben möchte.
Das hatte ich schon gemacht, sollte aber für das klonen der Datenbank nicht unbedingt erforderlich sein. Eigentlich müsste ein Admin da aber auch selber drauf kommen, die Fehlermeldung dahingehend war jedenfalls eindeutig.


Wie man das per Kommandozeile gleich mit erledigt, könnte man im Wiki mal ergänzen. Dann muss man das nicht extra googeln. Ich merke mir solche Befehle auch nicht, so selten wie ich die brauche.
Die Versionen sollten dort vielleicht auch mal aktualisiert werden, habe kürzlich auf meinem Server das Debian auf 10 aktualisiert und das war der Meinung: PostgreSQL 9.6 ist dorch total obsolet, mach’ da blos ganz schnell ein Upgrade…

Vielen Dank für die schnelle Hilfe. Das System läuft wieder, wie gewünscht.

2 Likes