Dieser Artikel beschreibt das Verfahren zum Ersetzen des nativen MySQL®️- oder MariaDB®️-Dienstes, der auf jedem typischen Plesk Onyx 11 CentOS 7-Server vorinstalliert ist. Das Verfahren beschreibt das Entfernen der vorhandenen MySQL-bezogenen Binärdateien und ersetzt sie durch eine angemessene Version der Percona-Binärdateien. Sobald diese Percona-Binärdateien vorhanden sind, wird ein typisches mehrstufiges inkrementelles Versions-Upgrade von MySQL durchgeführt, um die vorhandenen Datenbanken und Percona-Binärdateien auf die gewünschte Version von Percona 5.7 zu bringen.
Wartungserwartungen:Dauer und Ausfallzeit
Vorgeschlagene Wartungsdauer: 90 Minuten
Mindesterwartete Ausfallzeit: ~30 Minuten Serviceflattern
Die erwartete Ausfallzeit des MySQL-Dienstes für dieses Verfahren beträgt weniger als 30 Minuten, in denen die Verfügbarkeit des MySQL-Dienstes wiederholt auf und ab geht (Flattern). Diese Zahl setzt voraus, dass alles glatt läuft und keine unvorhergesehenen Fehler auftreten. Die empfohlene Wartungsdauer bietet Zeit für die Fehlerbehebung, falls ein Fehler auftritt, sowie zusätzliche 30 Minuten für den unwahrscheinlichen Fall, dass alle Änderungen rückgängig gemacht und der Wartungsplan abgebrochen werden müssen.
Übersicht der Wartungsphasen
Der Plan ist in Vorbereitungsaufgaben und Phasen unterteilt. Vorbereitungsaufgaben sollten vor der Startzeit Ihres Wartungsfensters abgeschlossen sein. Phasen werden während des Wartungsereignisfensters durchgeführt und gehen durch das gesamte Verfahren, um jede wichtige Phase der Gliederung zu erreichen.
Vorbereitung – Aufgaben vor der Wartung
Diese beiden wichtigen Aufgaben müssen vor der geplanten Startzeit Ihres Wartungsfensters abgeschlossen sein:
- Bestehende MySQL-Konfigurationsdatei kopieren
- Stufensicherung von MySQL-Datenbankdaten
Wir verwenden Phase Null in diesem Plan, um den Sicherungsprozess der MySQL-Daten zu beschleunigen. Da die Datenmenge, die MySQL speichert, je nach Server sehr unterschiedlich ist, empfiehlt es sich, vorher eine inkrementelle Sicherungslösung wie rsync auszuführen zum Wartungsereignisfenster. Rsync sichert den Großteil der statischen Daten, während MySQL noch läuft, und sichert dann die inkrementelle Differenz, sobald MySQL zu Wartungszwecken heruntergefahren wird.
Vorhandene MySQL-Konfigurationsdatei kopieren:
1) Erstellen Sie eine Sicherungskopie der vorhandenen Myself-Konfigurationsdatei.
cp -pv /etc/my.cnf{,.pre-percona.bak}
Stufensicherung von MySQL-Datenbankdaten:
2) Führen Sie den folgenden rsync aus, um die MySQL-Daten zu klonen. [WICHTIG:abschließender Schrägstrich erforderlich]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Warten Sie, bis Schritt 1 abgeschlossen ist, bevor Sie mit Phase 1 beginnen.
Stufe 1 – Fahren Sie MySQL herunter und führen Sie Rsync Final Sync erneut aus
Der Zweck der ersten Phase besteht darin, sicherzustellen, dass eine makellose Sicherung der MySQL-Daten vorhanden ist, bevor Sie fortfahren. Um dies zu erreichen, müssen die MySQL-Dienste vollständig gestoppt werden, damit alle Puffer geschrieben werden und keine zusätzlichen Änderungen in die Datenbank geschrieben werden. Nach dem Stoppen wird rsync erneut ausgeführt, um die Unterschiede zwischen den jetzt gestoppten ursprünglichen Daten und den Zielsicherungsdaten zu kopieren.
1) Fahren Sie den MySQL/MariaDB-Dienst herunter
systemctl stop mysql
2) Führen Sie den folgenden rsync erneut aus, um die geklonten Daten abzuschließen. [WICHTIG:abschließender Schrägstrich erforderlich]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Warten Sie, bis rsync abgeschlossen ist, bevor Sie mit Phase 3 fortfahren.
Stufe 2 – MariaDB 5.5-Binärdateien durch Percona 5.5 ersetzen
HINWEIS:MariaDB 5.5 ist die mit Onyx 11 CentOS 7 installierte Version, daher ist dies der Ausgangspunkt.Das Ersetzen der vorhandenen Binärdateien umfasst das Entfernen der erforderlichen Binärpakete vom System mit dem RPM-Befehlszeilentool anstelle von yum. Dadurch können die Pakete entfernt werden, ohne dass die Abhängigkeiten berührt werden, die mit anderen Systempaketen verknüpft sind. Da Percona, wie MariaDB, ein Drop-in-Ersatz für MySQL ist, werden die verknüpften Abhängigkeiten, sobald die neuen Binärdateien vorhanden sind, den Unterschied nicht mehr erkennen und normal funktionieren.
1) Entfernen Sie MariaDB-Pakete ohne Abhängigkeiten:
rpm -e --nodeps mariadb mariadb-libs mariadb-server
2) mariadb-devel-Paket entfernen (tun Sie dies als separaten Befehl von oben, um zu vermeiden, dass das Entfernen wegen des fehlenden Pakets fehlschlägt)
rpm -e --nodeps mariadb-devel
3) Installieren Sie das Percona-Repository:
yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
4) Percona DB-Server installieren:
yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55
5) Führen Sie die folgenden Befehle aus (ermöglicht das korrekte Laden des InnoDB-Plugins)
mv /var/lib/mysql/ibdata1 /var/lib/mysql/ibdata1.bak
cp -a /var/lib/mysql/ibdata1.bak /var/lib/mysql/ibdata1
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
cp -a /var/lib/mysql/ib_logfile0.bak /var/lib/mysql/ib_logfile0
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
cp -a /var/lib/mysql/ib_logfile1.bak /var/lib/mysql/ib_logfile1
6) Stellen Sie sicher, dass keine Prozesse auf Port 3306 lauschen und beenden Sie den Prozess, falls vorhanden.
netstat -tulpn | grep 3306
7) Starten Sie MySQL (jetzt Percona 5.5)
service mysql start
8) Führen Sie das mysql_upgrade-Skript aus
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
9) [Optional] Percona XtraDB Cluster UDF aus dem Percona Toolkit aktivieren:
plesk db -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
plesk db -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
plesk db -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
10) Starten Sie MySQL neu, um den Upgrade-Vorgang abzuschließen
systemctl start mysql
Stufe 3 – Wechseln Sie vom Plesk MySQL-Paket zum Plesk MySQL Community-Paket
Das Ausführen von Percona auf Plesk ist eine nicht unterstützte Konfiguration. Um Abhängigkeitsverbindungen zwischen dem Plesk MySQL-Paket und den neuen Percona-Binärdateien zu erfüllen, ist es aus diesem Grund erforderlich, die Plesk MySQL-Version auf die Verwendung der Plesk MySQL Community-Version umzustellen. Die Änderung ist notwendig, um Upgrades und Downgrades von Percona-Versionen zu erleichtern.
1) Erstellen Sie die erforderliche Repo-Konfigurationsdatei:
printf '[PLESK_17_8_11-dist] %s\nname=PLESK_17_5_3 dist %s\nbaseurl=http://autoinstall.plesk.com/PSA_17.8.11/dist-rpm-CentOS-7-x86_64/ %s\nenabled=1 %s\ngpgcheck=1 %s\n' > /etc/yum.repos.d/plesk178.repo
2) Installieren Sie das Paket „plesk-mysql-server-community“ aus dem neuen Repository:
yum install plesk-mysql-server-community
3) Deaktivieren Sie die Datei /etc/yum.repos.d/plesk178.repo, da sie nicht mehr benötigt wird:
mv /etc/yum.repos.d/plesk178.repo{,.disabled}
4) Entfernen Sie das Paket „plesk-mysql-server“, ohne Abhängigkeiten zu berühren.
rpm -e --nodeps plesk-mysql-server
Percona sollte nun installiert sein und auf der Basisversion 5.5 funktionieren. Die nächsten Phasen sind identisch mit dem typischen MySQL-Upgrade-Prozess, bei dem Binärdateien aktualisiert werden und dann die Schemaaktualisierungen manuell mit dem Tool mysql_upgrade vorgenommen werden.
Upgrade von Percona 5.5 auf 5.6
1) Stoppen Sie den MySQL-Dienst:
service mysql stop
2) Entfernen Sie Percona 55-Pakete ohne Abhängigkeiten:
rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55
3) Percona 56-Pakete installieren
yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
4) Stellen Sie sicher, dass keine Prozesse auf Port 3306 lauschen und beenden Sie den Prozess, falls vorhanden.
netstat -tulpn | grep 3306
5) Starten Sie den MySQL-Dienst:
service mysql start
6) MySQL-Tabellen aktualisieren:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Stufe 4 – Aktualisieren Sie Percona 5.6 auf 5.7
1) Stoppen Sie den MySQL-Dienst:
service mysql stop
2) Entfernen Sie Percona 56-Pakete ohne Abhängigkeiten:
rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
3) Percona 57-Pakete installieren
yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57
4) Stellen Sie sicher, dass keine Prozesse auf Port 3306 lauschen und beenden Sie den Prozess, falls vorhanden.
netstat -tulpn | grep 3306
5) Starten Sie den MySQL-Dienst:
service mysql start
6) MySQL-Tabellen aktualisieren:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Stufe 5 – Abschluss des Upgrades
Das System sollte jetzt Percona 5.7 ausführen und für Anwendungen vollständig zugänglich sein. In dieser Phase sollten alle Websites oder Anwendungen, die eine Datenbank verwenden, getestet und etwaige Fehler untersucht werden.