MySQL-Update behebt kritischen Fehler
Ein Update der freien Datenbank MySQL 5.5.25 beseitigt einen Fehler, durch den ein simples Update-Statement zu einem Volllaufen der Festplatte fĂĽhren konnte.
- Christian Kirsch
Oracle veröffentlichte Version 5.5.25a seiner freien relationalen Datenbank MySQL. Einzige Änderung laut Release-Notes: Korrektur eines Fehler, der unter Umständen beim Ändern eines Datensatzes sämtlichen Platz auf der Festplatte verbraucht.
Betroffen sind laut Beschreibung des Bugs solche Tabellen, die das seit Version 5.5 voreingestellte InnoDB-Format benutzen. Der vom SkySQL-Mitarbeiter Hartmut Holzgraefe vorgestellte Testfall kommt mit einer Tabelle und zwei Indizes aus. In diesem Fall beginnt das Vollschreiben der Festplatte mit dem SQL-Kommando
UPDATE t1 SET id2 = id2 + 1, b = null WHERE a is null and id1 = 2;
Zwar ist der Bug mit der neuen Version behoben, Oracle hat jedoch bislang nicht erklärt, wie Anwender ihre möglicherweise übermäßig großen Dateien wieder verkleinern können. In der Fehlerdatenbank schlägt Peter Laursen in einem Blog-Beitrag mehrere Lösungen vor.
Wenn der Plattenplatz von temporären Tabellen benutzt wird, sollte einfache Anhalten des Servers, Leeren des Temp-Verzeichnis und anschließender Start des Servers das Problem beheben. Wenn InnoDB-Tabellen selbst betroffen sind, könnte OPTIMIZE TABLE
helfen, falls die Option innodb_file_per_table
gesetzt ist, also jede Tabelle in einer eigenen Datei steckt. Andernfalls bliebe, so Laursen, wohl nur ein Dump aller Datenbanken und anschlieĂźendes erneutes Einlesen.
(ck)