MySQL behebt Bug 199 nach 14,5 Jahren
Nach nur vierzehneinhalb Jahren (in Ziffern: 14,5) wurde Fehler 199 »InnoDB Autoincrement Stats Loss on Restart« im Datenbankserver MySQL behoben. (In MariaDB schon ein paar Monate eher, nämlich Anfang 2017 mit Version 10.2.4).
Der Fehler, der zu Datenverlusten führen kann, war:
Verwendet man AUTO_INCREMENT
in InnoDB in MySQL (und MariaDB), so
speichert der Datenbankserver den Wert nur im Arbeitsspeicher. Nach
einem Server-Neustart kann es vorkommen, daß früher bereits verwendete
(und gelöschte) Werte noch einmal verwendet werden, denn dann wird der
letzte Autoinkrementwert, der in einer Tabelle gespeichert wurde, um
eins erhöht und verwendet – und nicht der möglicherweise vor dem
Neustart höhere Wert, der sich im Arbeitsspeicher befand.
Dieses Fehlverhalten wurde zwar dokumentiert (auch in MariaDB), aber es ist doch sehr unerwartet.
Schön, daß der Fehler, nachdem er zu einigen Datenverlusten geführt hat, wie in den Meldungen zum seit 2003 bestehenden Bug 199 dokumentiert, nach 14,5 Jahren in MySQL 8.0.0 behoben wurde und damit auch irgendwann die MySQL-Pakete in diversen Betriebssystem-Versionen erreicht.
Von der Fehlerbehebung erfahren habe ich durch Cron.Weekly.