Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Content imported from a Scroll Translations translation file.

...

Sv translation
languagefr

Le système de portail de jtel utilise désormais MySQL 8.x au lieu de l'ancienne version MySQL 5.6.

Actuellement, la dernière version du portail 3.15 supporte les deux versions de MySQL, mais ce n'est qu'une mesure provisoire, et cela changera dans une prochaine version de sorte que MySQL 8.x sera nécessaire.

Cette procédure décrit comment mettre à jour le système vers MySQL 8.x.

Warning
titleAttention

Il s'agit d'une opération non négligeable. Ne procédez à cette opération que si vous disposez de mécanismes de retour en arrière adéquats, tels que des instantanés de vos machines virtuelles et une sauvegarde de la base de données.

TOUTES LES INSTALLATIONS

  • VERSION PORTAL
    • Assurez-vous que la version du portail jtel est au moins 3.15 avant de commencer.

  • SYSTÈME D'EXPLOITATION
    • Assurez-vous que le système d'exploitation est à jour avec toutes les mises à jour sur tous les serveurs mysql.

INSTALLATIONS AVEC RÉPLICATION

  • Esclaves de la réplication
    • Assurez-vous que la réplication fonctionne avant de commencer

  • Maîtres de la réplication
    • Assurez-vous que le format du journal binaire est LIGNE et non pas MIXTE ou DÉCLARATION
  • PHASE 1
    • Terminer la phase 1 d'abord pour tous les serveurs, les esclaves d'abord, puis les maîtres.

  • Configurations Master-Master
    • Arrêtez l'autre maître avant la mise à jour.
    • Assurez-vous que les deux maîtres sont 8.x avant de redémarrer.

Prérequis

  • Le portail jtel doit être mis à jour avec la dernière version, actuellement 3.15
  • Le système d'exploitation doit être mis à jour pour inclure tous les derniers correctifs utilisant yum -y update
  • yum-utils doit être installé en utilisant yum -y install yum-utils

Introduction

Il s'agit d'une opération en plusieurs étapes, puisque le système MySQL ne prend pas en charge les mises à jour manquantes des versions - pour passer de la version 5.6 à la version 8.0, il faut d'abord mettre à jour la version 5.7.

Warning
titleAttention

Ne procédez pas à l'opération si les conditions préalables ne sont pas remplies. La procédure NE FONCTIONNERA PAS avec une version antérieure du portail jtel installée.

Phase 1 - S'assurer que la configuration existante est bonne

Il y a plusieurs éléments de configuration qui doivent être réglés dans la configuration de l'esclave avant de procéder.

Malheureusement, mysql 5.7 utilisera un nom de fichier journal binaire et de relais par défaut différent pendant le processus de mise à niveau (c'est probablement un bogue), à moins que ces étapes ne soient terminées. 

Complétez cette procédure pour tous les esclaves (également les deux maîtres dans la réplication maître-maître).

Translations Ignore


Code Block
# Master or slave? if [ -e /etc/my.cnf.d/jtel-slave.cnf ] then MY_CNF_FILE=/etc/my.cnf.d/jtel-slave.cnf MASTER_UPDATE=FALSE fi if [ -e /etc/my.cnf.d/jtel-master.cnf ] then MY_CNF_FILE=/etc/my.cnf.d/jtel-master.cnf MASTER_UPDATE=TRUE fi if [ ! -z MY_CNF_FILE ] then cat <<EOFF >> $MY_CNF_FILE relay_log = mysqld-relay-bin relay_log_index = mysqld-relay-bin.index relay_log_info_file = relay-log.info EOFF if [ "$MASTER_UPDATE" == "FALSE" ] then cat <<EOFF >> $MY_CNF_FILE skip-log-bin EOFF fi fi MY_CNF_FILE= # Restart mysql systemctl restart mysqld.service



Phase 2 - Mise à jour de MySQL à 5.7

N'oubliez pas - pour les installations reproduites, commencez par les esclaves. Ensuite, mettez à jour les maîtres, l'un après l'autre.

Effectuer un arrêt propre de MySQL avec innodb_fast_shutdown réglé sur 0

Translations Ignore


Code Block
mysql -u root -p<password> --execute="SET GLOBAL innodb_fast_shutdown=0" mysqladmin -u root -p<password> shutdown



Supprimer l'ancien dépôt Yum et installer le nouveau dépôt Yum

Supprimer l'ancien dépôt MySQL yum.

Translations Ignore


Code Block
yum remove mysql-community-release.noarch



Ensuite, installez le nouveau dépôt MySQL yum, en utilisant la commande correspondant à la version du système d'exploitation utilisée.

Vous pouvez déterminer le système d'exploitation utilisé, avec la commande suivante :

Translations Ignore


Code Block
cat /etc/centos-release



Pour CentOS 7:

Translations Ignore


Code Block
yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm



Pour CentOS 6:

Translations Ignore


Code Block
yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el6-3.noarch.rpm



Mettre à jour le serveur MySQL à 5.7

Cela implique d'effacer la table de verrouillage des versions et d'activer le chemin de mise à jour 5.7.

Notez que la commande yum est émise sans l'option -y. Vous devez vérifier ce que le système est sur le point de faire avant de confirmer cette étape.

Translations Ignore


Code Block
# Clear versionlock table yum versionlock clear # Enable 5.7 yum-config-manager --disable mysql56-community yum-config-manager --enable mysql57-community yum-config-manager --disable mysql80-community # Update yum update



Démarrer le serveur MySQL (SANS REPRISE D'ESCLAVES ET DE MASTER-MASTER)

Démarrez le serveur mysql sans réplication.

Translations Ignore


Code Block
titleCentOS 7.x
# Début - IMPORTANT - SANS REPLIQUE systemctl set-environment MYSQLD_OPTS="--skip-slave-start" systemctl start mysqld.service



Translations Ignore


Code Block
titleCentOS 6.x
# Début - IMPORTANT - SANS REPLIQUE mysqld_safe --skip-slave-start &



Lancer mysql_upgrade

Vous pouvez soit changer le mot de passe dans la commande suivante, soit utiliser simplement l'option -p sans spécifier de mot de passe, et le saisir à l'invite.

Translations Ignore


Code Block
mysql_upgrade -u root -p<password>



Vérifiez le résultat de cette phase avant de poursuivre - si cette procédure affiche des messages d'erreur non récupérables, c'est que la procédure s'est mal déroulée, et vous devez revenir en arrière ici.

Ensuite, redémarrez le serveur MySQL.

Translations Ignore


Code Block
titleCentOS 7.x
systemctl stop mysqld.service systemctl set-environment MYSQLD_OPTS= systemctl start mysqld.service



Translations Ignore


Code Block
titleCentOS 6.x
service mysqld stopservice mysqld start



Vérifier que la base de données, la réplication et la version sont correctes

Translations Ignore


Code Block
mysql -u root -p<password> -e "SHOW SLAVE STATUS\G SELECT VERSION();"



Ne procédez que si aucune erreur n'est trouvée.

Warning
titleNote

Le portail jtel n'est PAS compatible avec MySQL 5.7 - vous devez continuer la mise à niveau vers 8.x à ce stade.

Mettre à jour TOUS les serveurs à 5.7 avant de procéder.

Phase 3 - Mise à jour de MySQL à 8.0

Warning
titleAttention

Procéder après ce point sans que la version 3.15 ou plus récente du portail jtel soit installée brisera la base de données, et un retour en arrière sera nécessaire.

Souvenez-vous - d'abord les esclaves, puis les maîtres. L'un après l'autre.

Effectuer un arrêt propre de MySQL avec innodb_fast_shutdown réglé sur 0

Translations Ignore


Code Block
mysql -u root -p<password> --execute="SET GLOBAL innodb_fast_shutdown=0" mysqladmin -u root -p<password> shutdown



Activer les référentiels 8.0 et mettre à jour le serveur

Notez que la commande yum est émise sans l'option -y. Vous devez vérifier ce que le système est sur le point de faire avant de confirmer cette étape.

Translations Ignore


Code Block
# Enable 8.x yum-config-manager --disable mysql56-community yum-config-manager --disable mysql57-community yum-config-manager --enable mysql80-community # Update to 8.x yum update



Démarrer le serveur MySQL

Démarrer le serveur mysql

Translations Ignore


Code Block
titleCentOS 7.x
systemctl start mysqld.service



Translations Ignore


Code Block
titleCentOS 6.x
service mysqld start



Notez que le démarrage du serveur mysql peut prendre un certain temps. Il peut même sembler être suspendu, mais attendez quelques minutes et laissez le tout se dérouler.

Warning
titlemysql_upgrade

mysql_upgrade est exécuté automatiquement par toutes les versions 8.x actuelles du serveur MySQL.

La sortie de mysql_upgrade peut être trouvée dans /var/log/mysqld.log et les erreurs seront dans /var/log/messages

Vérifiez que ces fichiers ne contiennent pas d'erreurs.

Vérifier que la base de données, la réplication et la version sont correctes

Translations Ignore


Code Block
mysql -u root -p<password> -e "SHOW SLAVE STATUS\G SELECT VERSION();"



Phase 4 - Configuration des autres composantes

Portail

Exécutez à nouveau le script de mise à jour du portail. Cela permettra d'optimiser les scripts pour MySQL 8.x.

Translations Ignore


Code Block
sudo /home/jtel/shared/JTELCarrierPortal/Update/update_release.sh



Serveur JBOSS

SOIT: Installateur de la nouvelle version de Serveur JBOSS

Vous pouvez simplement installer la nouvelle version du serveur JBOSS, au moins jboss-as-7.1.1.FINAL.14.tar.gz de cdn.jtel.de.

Il contient les éléments requis, mais exigera que le hazelcast.xml et standalone-full.xml sont mis à jour comme décrit dans l'installation du serveur web, voir ici : Role WEB

OU

:

. Mettre à jour le serveur JBOSS

Le serveur JBOSS nécessite un nouveau connecteur pour se connecter à MySQL 8.x.

Celui-ci peut être copié sur l'instance du serveur JBOSS, en utilisant la commande suivante (exécuter par exemple à partir de /home/jtel/shared/JTELCarrierPortal/Update), comme l'utilisateur de jtel :

Translations Ignore


Code Block
./update_jboss.sh



Changer stanalone-full.xml

La fichier de standalone-full.xml configuration nécessite quelques modifications.

Une nouvelle propriété de connexion doit être ajoutée aux configurations des sources de données pour MySQL. Elle doit être ajoutée aux configurations des sources de données pour JTELWeb, JTELWebSlave, JTELStats, JTELLog et JTELReports.

Voir l'exemple suivant :

Translations Ignore


Code Block
... <datasource jndi-name="java:jboss/datasources/JTELLog" pool-name="JTELLog" enabled="true"> <connection-url>jdbc:mysql://testdb2:3306/JTELLog</connection-url> # # THIS SECTION NEEDS TO BE ADDED # <connection-property name="useSSL"> false </connection-property> ...



Dans la section des conducteurs, assurez-vous que la ligne de la classe du conducteur est incluse pour le conducteur mysql.

Cela ne manquera que sur les très anciennes installations de jboss, si c'est le cas, il pourrait être préférable de mettre à jour le serveur jboss avec une nouvelle version complète.

Translations Ignore


Code Block
... <drivers> <driver name="com.mysql" module="com.mysql"> # # MAKE SURE THIS NEXT LINE IS PRESENT. # <driver-class>com.mysql.jdbc.Driver</driver-class> ... 



Reconfigurer les connexions ODBC à 8-Server

La chaîne de Rollback pour les versions MySQL 8.x (en fait MySQL 5.7) et supérieures a changé, et devra être reconfigurée en 8-Server. 

La nouvelle ficelle du rollback est :

Translations Ignore


Code Block
DO RELEASE_ALL_LOCKS(); ROLLBACK;



8-Server doit être redémarré après avoir effectué ce changement :

Dépannage

jtel Portal DB Script échoue avec le "Failed to load caching_sha2_password authentication plugin".

Les scripts de la base de données sont exécutés à partir d'un serveur différent du ou des serveurs MySQL mis à jour. 

C'est bien ! Vous devriez les diriger depuis le rôle STORE.

Cependant, vous devrez également mettre à jour le client mysql sur ces machines. Faites-le (changez la deuxième ligne pour CentOS 6.x - voir ci-dessus pour le RPM requis) :

Translations Ignore


Code Block
yum remove mysql-community-release.noarchyum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpmyum update mysql*



Maintenant, refaites les scripts.

jtel Portal DB Script échoue avec "Duplicate Entry".

Essayez d'exécuter à nouveau le script DB.

Échec de l'authentification avec certains outils de la base de données

Par exemple, les versions antérieures de DB Forge échoueront lors de la connexion à MySQL 8.x.

Mettre à jour l'outil.

L'esclave ne démarre pas avec l'erreur ERROR 1872 (HY000) : L'esclave n'a pas réussi à initialiser la structure d'information du journal de relais à partir du dépôt

Les séries de commandes suivantes émises dans mysql peuvent parfois aider à redémarrer l'esclave, sans avoir à reconstruire la réplication à partir de zéro :

Translations Ignore


Code Block
RESET SLAVE;START SLAVE IO_THREAD;STOP SLAVE IO_THREAD;RESET SLAVE;START SLAVE;



La mise à niveau vers MySQL 8.x échoue

Si la mise à niveau vers la version 8.x échoue, essayez de revenir à la version 5.7 comme suit, et résolvez le problème dans la version 5.7 avant de continuer.

Translations Ignore


Code Block
# Enable 5.7yum-config-manager --disable mysql56-communityyum-config-manager --enable mysql57-communityyum-config-manager --disable mysql80-community# Uninstallyum -y remove mysql-community-serveryum -y remove mysql-community-clientyum -y remove mysql-community-libsyum -y remove mysql-community-common# Installyum -y install mysql-community-server