Romanticus
Grünschnabel
Hallo,
ich habe mal wieder ein Problem, bei dem ich nicht wirklich weiß, wie ich es angehen soll. Gegeben ist Folgendes: ich habe eine produktive MySQL-Datenbank, die auf der MyISAM-Engine läuft. Resultat: die Daten darin sind alles andere, als konsistent.
Diese Daten sollen in InnoDB-Tabellen geladen werden, auf denen Fremdschlüssel definiert sind um korrupte Daten zu identifizieren und entfernen (so was wie eine QS-Schicht). Die Daten werden Mittels SELECT INTO OUTFILE in eine Datei geschrieben und mit LOAD DATA INFILE in die InnoDB-Tabellen geladen. Um Konflikte beim Import zu vermeiden, wird die Prüfung der Fremdschlüssel vor dem Import mit "SET foreign_key_checks = 0" abgeschaltet und danach wieder aktiviert. Nur passiert dann nichts mehr.
Frage: wie kann ich die Konsistenz der Tabellen prüfen bzw. wiederherstellen, ohne die korrupten Daten selber zu identifizieren und löschen? Ich dachte, dass die InnoDB-Engine das erledigt, jedoch hab ich nach längerer Recherche nichts passendes gefunden.
Gruß,
Romanticus
ich habe mal wieder ein Problem, bei dem ich nicht wirklich weiß, wie ich es angehen soll. Gegeben ist Folgendes: ich habe eine produktive MySQL-Datenbank, die auf der MyISAM-Engine läuft. Resultat: die Daten darin sind alles andere, als konsistent.
Diese Daten sollen in InnoDB-Tabellen geladen werden, auf denen Fremdschlüssel definiert sind um korrupte Daten zu identifizieren und entfernen (so was wie eine QS-Schicht). Die Daten werden Mittels SELECT INTO OUTFILE in eine Datei geschrieben und mit LOAD DATA INFILE in die InnoDB-Tabellen geladen. Um Konflikte beim Import zu vermeiden, wird die Prüfung der Fremdschlüssel vor dem Import mit "SET foreign_key_checks = 0" abgeschaltet und danach wieder aktiviert. Nur passiert dann nichts mehr.
Frage: wie kann ich die Konsistenz der Tabellen prüfen bzw. wiederherstellen, ohne die korrupten Daten selber zu identifizieren und löschen? Ich dachte, dass die InnoDB-Engine das erledigt, jedoch hab ich nach längerer Recherche nichts passendes gefunden.
Gruß,
Romanticus