Skip to content

Migration von MySQL 4.0 auf MySQL 4.1 ohne Downtime

Heute haben wir auf Arbeit eine Frontend- (MySQL-Slave) und eine Backend-Datenbank (MySQL-Master) jeweis von Version 4.0.x auf 4.1 migriert. Ebenfalls nötig war die Auslagerung des Master-MySQL-Servers auf einen eigenen physischen Server, da sich unser Backend und die Backend-Datenbank in letzter Zeit spürbar gegenseitig behinderten.

Das ich mir letzte Woche viel Zeit genommen hatte, um die Migration bis ins kleinste Detail zu planen, zahlte sich heute aus: Die Migration lief perfekt, ohne größere Komplikationen und die für die Öffentlichkeit sichtbare Downtime der Frontend-Datenbank beschränkte sich auf ein paar Sekunden.
Zuerst wurde die Replikation auf dem Slave, auf den unser Webserver-Cluster zugreift, ausgeschaltet. Anschließend wurde vom alten Backend-Server ein 9.6 GB großer SQL-Dump über das Netzwerk auf den neuen Server gespielt, importiert und getestet.

Der komplette Frontend-DB-Server wurde geklont, das Netzwerk-Interface des "Originals" heruntergefahren & das Interface des "Klons" mit der selben IP hochgefahren. Somit konnten die Webserver weiterhin auf den Datenbank-Klon zugreifen, ohne in unzähligen Scripten auf den Webservern die IP des Datenbank-Servers ändern zu müssen.

Nun noch MySQL 4.1 in Ruhe auf den Original-Server (Slave) aufspielen, einmal den Master anhalten um die benötigten Files aus /var/lib/mysql auf den Slave zu kopieren, testen ob alles funktioniert und anschliessend wieder das Spielchen mit den Netzwerk-Interfaces.

Dann noch kurz ein slave start auf der Frontend-DB und die Sache war geritzt.