Projet

Général

Profil

Tâche #36185

Scénario #36187: EOLE 2.10 : Mise à niveau de eole-mysql

EOLE 2.10 : message inquiétant après l'installation de MySQL sur Eolebase

Ajouté par Joël Cuissinat il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
27/09/2024
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Description

Visible dans le test https://dev-eole.ac-dijon.fr/jenkins/job/2.10.0/job/test-instance-etb1fogserver-2.10.0-amd64 :

run-parts: executing /usr/share/eole/preservice/01-mysql_binlog_cleanup instance

            ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


Demandes liées

Lié à eole-mysql - Tâche #34576: Permettre de configurer la durée de rétention des logs binaires Fermé 05/09/2022

Révisions associées

Révision e5e6bf28 (diff)
Ajouté par Benjamin Bohard il y a plus d'un an

Exécuter la requête PURGE en preservice n’est ni fiable ni nécessaire.

Ref #35185

Historique

#1 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Lié à Tâche #34576: Permettre de configurer la durée de rétention des logs binaires ajouté

#2 Mis à jour par Joël Cuissinat il y a plus d'un an

Dans l'exemple, le paquet mysql-server vient juste d'être installé, le service es sans doute mal démarré/mal configuré !

Je vois plusieurs possibilités pour corriger :
  • déplacer le code plus loin mais si il a été mis en preservice dans #34576 : c'est qu'il y a une raison ?
  • démarrer explicitement mysql à la ligne précédente (CreoleService mysql start) : un peu overkill mais fonctionne !
  • rediriger le message d'erreur : j'aime pas trop mais dans ce cas précis, pourquoi pas ?
  • ajouter une exception "logparser" : pas top car ça pourrait masquer des erreurs ailleurs

#3 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Tâche parente mis à #36187

#4 Mis à jour par Benjamin Bohard il y a plus d'un an

Peut-être une autre possibilité inspirée par la documentation de MySQL : laisser le service gérer au démarrage (supprimer ce preservice et éventuellement adapter le délai de rétention des journaux binaires).

Binary log files are automatically removed after the server's binary log expiration period. Removal of the files can take place at startup and when the binary log is flushed. The default binary log expiration period is 30 days. You can specify an alternative expiration period using the binlog_expire_logs_seconds system variable.

#5 Mis à jour par Benjamin Bohard il y a plus d'un an

Avec le recul, ce rôle de ce preservice est sans doute de nettoyer les journaux binaires dans le cas d’une désactivation après un temps de fonctionnement avec les journaux binaires.

Le cas qui serait traité serait celui où MySQL ne nettoie pas les fichiers créés avant le redémarrage avec l’option skip-log-bin.

Cas à tester :
- démarrage avec la journalisation binaire pour création de journaux
- bascule en mode skip-log-bin

On peut s’attendre à ce que MySQL ne traite plus automatiquement les journaux dans ce cas (absence de l’option binlog_expire_logs_seconds).
Est-ce que la suppression manuelle (requête PURGE BINARY LOGS BEFORE NOW;) fonctionne pour autant ?

Si elle ne fonctionne pas, il est semblerait nécessaire de l’exécuter avant le changement de configuration.
Si elle fonctionne, il est sans doute possible d’exécuter cette requête après le démarrage du service dans le postservice existant (ou de se contenter de la suppression directe comme c’est déjà le cas).

Dans ce dernier cas de figure, il faut vérifier que la suppression physique est suffisante pour permettre la bascule inverse (revenir à l’enregistrement de journaux binaires). Est-ce que la requête PURGE s’appuie uniquement sur le contenu du fichier index ?
Si oui, la suppression de ce dernier comme fait actuellement devrait être suffisante.

#6 Mis à jour par Benjamin Bohard il y a plus d'un an

Une fois le service démarré avec l’option skip-bin-log, la requête est sans effet (ne provoque pas d’erreur non plus) et il n’y a pas de suppression automatique au démarrage du service.

Si on ne laisse que l’opération de suppression directe (postservice) après avoir basculé en mode "skip-bin-log", la réactivation de la journalisation ne semble pas poser de problèmes (les journaux sont bien écrits par la suite et il n’y a pas de message d’erreur dans les logs).

Finalement, il ne semble pas indispensable de procéder au purge en preservice :
- le nettoyage en postservice semble suffisant ;
- le purge n’est pas forcément possible étant donné l’état potentiel du service.

#7 Mis à jour par Benjamin Bohard il y a plus d'un an

  • Statut changé de Nouveau à En cours
  • Assigné à mis à Benjamin Bohard

#8 Mis à jour par Benjamin Bohard il y a plus d'un an

  • Statut changé de En cours à À valider

#9 Mis à jour par Emmanuel GARETTE il y a plus d'un an

  • Statut changé de À valider à Résolu
  • % réalisé changé de 0 à 100

Le test est maintenant au vert.

#10 Mis à jour par Joël Cuissinat il y a plus d'un an

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Script preservice supprimé en 2.10.

Formats disponibles : Atom PDF