Ein Upgrade von verschiedenster Software ist von Zeit zu Zeit nötig. So auch von MariaDB. Der Folgende Blogpost ist ein Leitfaden für ein normales Upgrade.
Wenn man noch MariaDB 10.0.x im Einsatz hat und möchte nun auf 10.2.x ist dies in der Regel kein Problem. Es gibt jedoch ein paar wenige Punkte auf die man dabei achten sollte.
- Ab MariaDB 10.1.x können unter “/etc/mysql/conf.d” keine speziellen Parameter mehr für Multi-Instanzen angeben werden. Hier wurden in der Vergangenheit beispielsweise Parameter gespeichert, die man mit einem Config-Management Tool verwaltet hat und man nicht wollte, dass mehrere Server die gleichen Parameter bekommen. Bei manchen Setups kann dies etwas aufwendig werden, aber es gibt keinen Weg drum herum.
- ich empfehle vorher auf jeden Fall ein Backup der Konfigurationsdateien und der Datenbanken anzufertigen.
- Unbedingt erst die Slaves upgraden, dann die Master. Denn:
Master MariaDB 10.0.x <=> Slave MariaDB 10.2.x funktioniert
Master MariaDB 10.2.x <=> Slave MariaDB 10.0.x funktioniert nicht - Es haben sich zwischen den Versionen verschiedene Default Parameter der DBs geändert. Es sollten also auch die Changelogs für die jeweils wichtigsten Parameter geprüft werden.
Sofern oben genannte Punkte berücksichtigt wurden, kann das eigentliche Upgrade vorbereitet werden. Als Zwischenschritt, empfehle ich MariaDB 10.1.x zu installieren, um eventuell anfallende Abhängigkeiten mitzunehmen:
-
Parameter aus /etc/mysql/conf.d anpassen
Wichtig dabei, auch die Instanznummerierungen [mysqldX] auszukommentieren#[mysqld1] # * Basic Settings #read_only = 1 #[mysqld2] # * Basic Settings #read_only = 1
-
Datenbank Instanz(en) stoppen
Mutli-Instanzen stoppen mit:mysqld_multi stop X
-
Pins aus /etc/apt/preferences.d/mariadb.pref entfernen (oder die Datei löschen)
rm /etc/apt/preferences.d/mariadb.pref
-
Upgrade vorbereiten
/etc/apt/sources.list.d/mariadb.listdeb http://mirror2.hs-esslingen.de/mariadb/repo/10.1/ubuntu xenial main deb-src http://mirror2.hs-esslingen.de/mariadb/repo/10.1/ubuntu
-
Upgrade durchführen
Allgemein:apt-get update && apt-get upgrade
mariadb-server upgraden
apt-get upgrade mariadb-server
-
Das gleiche nun nochmal mit der Version 10.2.x
/etc/apt/sources.list.d/mariadb.listdeb http://mirror2.hs-esslingen.de/mariadb/repo/10.2/ubuntu xenial main deb-src http://mirror2.hs-esslingen.de/mariadb/repo/10.2/ubuntu
-
Upgrade dürchführen
Allgemein:apt-get update && apt-get upgrade
mariadb-server upgraden
apt-get upgrade mariadb-server mysql-common
-
Die Instanz(en) nun wieder anstarten
Multi Instanzen werden gestartet mit:mysqld_multi start X
-
Datenbank Upgrade durchführen
Für eine Instanz:
mysql_upgrade
Für multi-Instanzen:
for sock in /var/run/mysqld/mysqld_33*.sock ; do mysql_upgrade -S $sock ; done
-
Aufräumen
dpkg -l | grep maria
Hier kann alles entfernt werden, was mit “rc” gekennzeichnet ist.
apt-get purge $alte-mariadb-versionen && apt-get autoremove
Nun sollten die Instanzen alle mit der aktuellen MariaDB 10.2.x laufen. Dieser Artikel ist nur ein Vorschlag, wie das Upgrade durchgeführt werden kann. Letztendlich kann es sein, dass in Einzelfällen noch Pakete nachinstalliert werden müssen. Ein mir bekannter Kandidat ist zum Beispiel: libmariadb3