Cet article décrit la procédure de remplacement du service natif MySQL®️ ou MariaDB®️ qui est préinstallé sur n'importe quel serveur Plesk Onyx 11 CentOS 7 typique. La procédure décrit la suppression des fichiers binaires existants liés à MySQL et les remplace par une version adéquate des fichiers binaires Percona. Une fois ces binaires Percona en place, une mise à niveau de version incrémentielle de MySQL en plusieurs étapes typique est traitée pour amener les bases de données existantes et les binaires Percona vers la version Percona 5.7 souhaitée.
Attentes de maintenance :durée et temps d'arrêt
Durée de maintenance suggérée : 90 minutes
Temps d'arrêt minimum prévu : ~30 minutes de battement de service
Le temps d'arrêt du service MySQL attendu pour cette procédure est inférieur à 30 minutes de disponibilité du service MySQL, avec des montées et des descentes répétées (battement). Ce chiffre suppose que tout se passe bien et qu'aucune erreur imprévue n'est rencontrée. La durée de maintenance suggérée laisse du temps pour le dépannage en cas d'erreur ainsi que 30 minutes supplémentaires dans le cas peu probable où toutes les modifications doivent être annulées et le plan de maintenance abandonné.
Présentation des étapes de maintenance
Le plan est divisé en tâches et étapes de préparation. Les tâches de préparation doivent être terminées avant l'heure de début de votre fenêtre de maintenance. Les étapes sont conduites tout au long de la fenêtre de l'événement de maintenance et parcourent l'ensemble de la procédure pour accomplir chaque étape importante du plan.
Préparation – Tâches de pré-maintenance
Ces deux tâches importantes doivent être effectuées avant l'heure de début prévue de votre fenêtre de maintenance :
- Copier le fichier de configuration MySQL existant
- Sauvegarde par étapes des données de la base de données MySQL
Nous utilisons l'étape zéro dans ce plan pour accélérer le processus de sauvegarde des données MySQL. Étant donné que la quantité de données que MySQL contiendra varie énormément d'un serveur à l'autre, il est recommandé d'exécuter une solution de sauvegarde incrémentielle, telle que rsync, prior à la fenêtre d'événement de maintenance. Rsync sauvegardera la majorité des données statiques pendant que MySQL est toujours en cours d'exécution, puis sauvegardera la différence incrémentielle une fois MySQL arrêté pour maintenance.
Copier le fichier de configuration MySQL existant :
1) Faites une copie de sauvegarde du fichier de configuration moi-même existant.
cp -pv /etc/my.cnf{,.pre-percona.bak}
Sauvegarde par étapes des données de la base de données MySQL :
2) Exécutez le rsync suivant pour cloner les données MySQL. [IMPORTANT :barre oblique finale requise]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Attendez que l'étape 1 soit terminée avant de commencer l'étape 1.
Étape 1 :Arrêter MySQL et relancer la synchronisation finale de Rsync
Le but de la première étape est de s'assurer qu'une sauvegarde parfaite des données MySQL est en place avant de continuer. Pour ce faire, il est nécessaire d'arrêter complètement les services MySQL afin que tous les tampons soient écrits et qu'aucune modification supplémentaire ne soit écrite dans la base de données. Une fois arrêté, rsync est exécuté à nouveau pour copier les différences entre les données vierges maintenant arrêtées et les données de sauvegarde cibles.
1) Arrêter le service MySQL/MariaDB
systemctl stop mysql
2) Réexécutez le rsync suivant pour finaliser les données clonées. [IMPORTANT :barre oblique finale requise]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Attendez que rsync soit terminé avant de passer à l'étape 3.
Étape 2 - Remplacer les binaires MariaDB 5.5 par Percona 5.5
REMARQUE :MariaDB 5.5 est la version installée avec Onyx 11 CentOS 7, c'est donc le point de départ.Le remplacement des fichiers binaires existants implique la suppression des packages binaires nécessaires du système à l'aide de l'outil de ligne de commande RPM au lieu de yum. Cela permet de supprimer les packages sans toucher à aucune des dépendances liées à d'autres packages système. Étant donné que Percona, comme MariaDB, remplace MySQL, une fois les nouveaux binaires en place, les dépendances liées ne connaîtront pas la différence et fonctionneront normalement.
1) Supprimez les packages MariaDB sans dépendance :
rpm -e --nodeps mariadb mariadb-libs mariadb-server
2) Supprimez le package mariadb-devel (faites-le en tant que commande distincte ci-dessus pour éviter l'échec de la suppression du package manquant)
rpm -e --nodeps mariadb-devel
3) Installer le dépôt Percona :
yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
4) Installez le serveur de base de données Percona :
yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55
5) Exécutez les commandes suivantes (permet au plugin InnoDB de se charger correctement)
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) Assurez-vous qu'aucun processus n'écoute sur le port 3306 et arrêtez le processus le cas échéant.
netstat -tulpn | grep 3306
7) Démarrer MySQL (maintenant Percona 5.5)
service mysql start
8) Exécutez le script mysql_upgrade
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
9) [Facultatif] Activez l'UDF de cluster Percona XtraDB à partir de Percona Toolkit :
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) Redémarrez MySQL pour terminer la procédure de mise à niveau
systemctl start mysql
Étape 3 – Basculez le package Plesk MySQL vers le package communautaire Plesk MySQL
L'exécution de Percona sur Plesk est une configuration non prise en charge. Pour cette raison, pour satisfaire les connexions de dépendance entre le package Plesk MySQL et les nouveaux binaires Percona, il est nécessaire de basculer la version de Plesk MySQL vers l'utilisation de la version Plesk MySQL Community à la place. Le changement est nécessaire pour faciliter la mise à niveau et la rétrogradation des versions de Percona.
1) Créez le fichier de configuration de dépôt nécessaire :
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) Installez le package "plesk-mysql-server-community" depuis le nouveau référentiel :
yum install plesk-mysql-server-community
3) Désactivez le fichier /etc/yum.repos.d/plesk178.repo car il n'est plus nécessaire :
mv /etc/yum.repos.d/plesk178.repo{,.disabled}
4) Supprimez le paquet "plesk-mysql-server" sans toucher aux dépendances.
rpm -e --nodeps plesk-mysql-server
Percona devrait maintenant être installé et fonctionner sur la version de base 5.5. Les étapes suivantes sont identiques au processus de mise à niveau typique de MySQL où les binaires sont mis à niveau, puis les mises à jour du schéma sont effectuées manuellement à l'aide de l'outil mysql_upgrade.
Mettre à niveau Percona 5.5 vers 5.6
1) Arrêter le service MySQL :
service mysql stop
2) Supprimez les packages Percona 55 sans dépendances :
rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55
3) Installer les packages Percona 56
yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
4) Assurez-vous qu'aucun processus n'écoute sur le port 3306 et arrêtez le processus le cas échéant.
netstat -tulpn | grep 3306
5) Démarrez le service MySQL :
service mysql start
6) Mettre à jour les tables MySQL :
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Étape 4 – Mise à niveau de Percona 5.6 vers la version 5.7
1) Arrêter le service MySQL :
service mysql stop
2) Supprimez les packages Percona 56 sans dépendances :
rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
3) Installer les packages Percona 57
yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57
4) Assurez-vous qu'aucun processus n'écoute sur le port 3306 et arrêtez le processus le cas échéant.
netstat -tulpn | grep 3306
5) Démarrez le service MySQL :
service mysql start
6) Mettre à jour les tables MySQL :
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Étape 5 :Finalisation de la mise à niveau
Le système devrait maintenant exécuter Percona 5.7 et être entièrement accessible par les applications. À ce stade, tout site ou application utilisant une base de données doit être testé et toute erreur examinée.