Skip to main content
Jamf Nation, hosted by Jamf, is the largest Apple IT management community in the world. Dialog with your fellow IT professionals, gain insight about Apple device deployments, share best practices and bounce ideas off each other. Join the conversation.

Conversion du moteur de stockage de base de données MySQL de MyISAM vers InnoDB avec l’interface de ligne de commande de Jamf Pro Server Tools

Présentation

Cet article explique comment convertir le moteur de stockage de base de données MySQL de MyISAM vers InnoDB avec l’interface de ligne de commande (CLI) de Jamf Pro Server Tools. La base de données Jamf Pro doit être convertie vers InnoDB avant la mise à niveau vers Jamf Pro 10.10.0.

Remarque : Le processus de conversion InnoDB peut considérablement augmenter la taille de votre base de données MySQL. Avant de convertir la base de données, il est recommandé de disposer d’un espace disque disponible au moins équivalent à la taille actuelle de la base de données ainsi que d’une mémoire vive (RAM) suffisante pour le serveur, car InnoDB nécessitera des opérations gourmandes en mémoire. Si les ressources système adéquates ne sont pas disponibles sur le serveur, que ce soit en mémoire ou en stockage, ne poursuivez pas ce processus tant que ces ressources ne sont pas disponibles.

Versions concernées

Vous pouvez utiliser l’interface de ligne de commande (CLI) pour convertir la base de données MySQL vers InnoDB avec des installations sur site Jamf Pro 10.0.0 ou versions ultérieures.

Exigences

La conversion requiert les conditions suivantes :

  • Accès local ou à distance au serveur hébergeant la base de données Jamf Pro
  • Informations d’identification de l’administrateur local

Procédure

La conversion du moteur de stockage MySQL vers InnoDB implique les étapes suivantes :

  1. Télécharger l’interface de ligne de commande (CLI) de Jamf Pro Server Tools
  2. Confirmer les informations de la base de données
  3. Configurer l’interface de ligne de commande (CLI) de Jamf Pro Server Tools
  4. Configurer les paramètres InnoDB
  5. Arrêter Apache Tomcat
  6. Sauvegarder la base de données
  7. Convertir vers InnoDB

Étape 1. Télécharger la dernière version de l’interface de ligne de commande (CLI) de Jamf Pro Server Tools

Programmes d’installation de Jamf Pro (Jamf Pro 10.7.0 ou version ultérieure)

Vous trouverez l’interface de ligne de commande dans le répertoire « bin » suivant de l’installation de Jamf Pro pour votre plate-forme :

  • Mac : /Library/JSS/bin/jamf-pro
  • Linux : /usr/local/jss/bin/jamf-pro
  • Windows : C:\Program Files\JSS\bin\jamf-pro.exe

Remarque : Vous pouvez copier le fichier binaire jamf-pro sur d’autres serveurs de votre environnement afin d’utiliser l’interface de ligne de commande sur un autre serveur. Pour que l’interface de ligne de commande fonctionne, les fichiers binaires MySQL doivent être installés sur le même serveur que cette interface.

Téléchargement de l’interface de ligne de commande à l’aide d’un gestionnaire de paquets

Vous pouvez télécharger et installer l’interface de ligne de commande en exécutant les commandes suivantes pour votre plate-forme à partir d’une invite de commande.

Mac
brew tap jamf/tap
brew update
brew install jamf-pro
Red Hat Enterprise Linux
rpm --import https://archive.services.jamfcloud.com/gpg-public-key.asc
yum-config-manager --add-repo=https://archive.services.jamfcloud.com/rpm/
yum install jamf-pro-server-tools
Ubuntu
wget -qO - https://archive.services.jamfcloud.com/gpg-public-key.asc | sudo apt-key add -
add-apt-repository 'deb https://archive.services.jamfcloud.com/deb stable main'
apt update
apt install jamf-pro-server-tools

Téléchargement de l’interface de ligne de commande à l’aide d’un navigateur

Pour télécharger manuellement le fichier binaire de l’interface de ligne de commande de votre plate-forme à partir d’un navigateur, accédez à la page Web suivante :
https://archive.services.jamfcloud.com/#jamf-pro-server-tools/release/latest/

Pour plus d’informations sur l’interface de ligne de commande (CLI) et les options d’installation, lisez l’article de la Base de connaissances Utilisation de l’interface de ligne de commande des outils du serveur Jamf Pro.

Remarque : Vous pouvez copier le fichier binaire jamf-pro sur d’autres serveurs de votre environnement afin d’utiliser l’interface de ligne de commande sur un autre serveur. Il n’y a pas d’exigences ni de dépendances supplémentaires.

Étape 2. Confirmer les informations de la base de données

Recueillir les informations de la base de données suivantes, qui seront nécessaires dans une prochaine étape :

  • Nom de la base de données
  • Utilisateur de la base de données
  • Mot de passe de l’utilisateur de la base de données

Le nom de la base de données, l’utilisateur et le mot de passe sont utilisés pour connecter l’application web Apache Tomcat à la base de données MySQL. Ces informations sont référencées par l’application JSSDatabasUtil.jar existante et l’application web Jamf Pro. Si ces informations de base de données sont inconnues, référencez le fichier DataBase.xml sur le serveur d’application web Jamf Pro. Ce fichier se trouve dans les emplacements suivants :

  • Serveurs Linux : /usr/local/jss/tomcat/webapps/ROOT/WEB-INF/xml
  • Serveurs Mac : /Library/JSS/Tomcat/webapps/ROOT/WEB-INF/xml/
  • Serveurs Windows : C:\Program Files\JSS\Tomcat\webapps\ROOT\WEB-INF\xml

Étape 3. Configurer l’interface de ligne de commande (CLI) de Jamf Pro Server Tools

Dans une installation Jamf Pro Server Tools par défaut, les informations de la base de données de l’étape 2 sont déjà définies selon une valeur par défaut dans la configuration de l’interface de ligne de commande (CLI).

  1. Pour les serveurs Mac et Linux, exécutez la commande suivante pour afficher la configuration actuelle :
    jamf-pro config list
  2. Sous Windows, toutes les commandes jamf-pro doivent être exécutées depuis le répertoire où l’exécutable est stocké. Pour accéder au répertoire approprié, exécutez la commande suivante dans une invite de commandes :
    cd C:\Program Files\JSS\bin
    Exécutez ensuite la commande suivante pour afficher la configuration existante :
    jamf-pro config list
    Voici un exemple de configuration Mac par défaut :
    | Configuration Setting    | Flag                | Value                             |
    | ------------------------ | ------------------- | --------------------------------- |
    | Database hostname        | --database-host     | localhost                         |
    | Database port            | --database-port     | 3306                              |
    | Database name            | --database-name     | jamfsoftware                      |
    | Database user            | --database-user     | jamfsoftware                      |
    | Database password        | --database-password | <not configured>                  |
    | Database backup path     | --backup-dir        | /Library/JSS/Backups/Database     |
    | How many backups to keep | --backup-limit      | 0 (disabled)                      |
    | Tomcat path              | --tomcat-dir        | /Library/JSS/Tomcat               |
    | Tomcat service           | --tomcat-service    | com.jamfsoftware.tomcat.plist     |
    | MySQL bin path           | --mysql-bin         |                                   |
    | MySQL service            | --mysql-service     | com.oracle.oss.mysql.mysqld.plist |
  3. Dans l’exemple de configuration affiché ci-dessus, le nom par défaut de la base de données est 'jamfsoftware', et l’utilisateur par défaut est également 'jamfsoftware'. Si le nom de la base de données et les identifiants de l’utilisateur ne correspondent pas à ce qui était affiché dans le fichier DataBase.xml à l’étape 2, modifiez le paramètre nécessaire en exécutant des commandes similaires à ce qui suit :
    jamf-pro config set --database-name db_name_from_database_xml
    jamf-pro config set --database-user db_username_from_database_xml
    Remarque : Remplacez l’exemple de texte dans les commandes ci-dessus, db_name_from_database et db_username_from_database, par le nom et le nom d’utilisateur réels de votre base de données.
  4. Dans l’exemple de configuration ci-dessus, le mot de passe de l’utilisateur de la base de données n’a pas été défini, mais il apparaît en tant que <not configured>. Spécifiez le mot de passe de l’utilisateur de la base de données avant de continuer. Ce mot de passe a été identifié à l’étape 2 à l’aide de la commande DataBase.xml. Définissez le mot de passe en exécutant la commande suivante :
    jamf-pro config set --database-password
  5. À l’invite, entrez le mot de passe de votre base de données.
  6. Maintenant que le mot de passe est défini, exécutez la commande suivante pour vous assurer que tout est correctement configuré :
    jamf-pro config list
    La valeur du mot de passe de la base de données devrait maintenant être <encrypted>. Le nom de la base de données et l’utilisateur de la base de données doivent correspondre aux informations figurant dans le fichier DataBase.xml. Si le contenu de la liste ne correspond pas aux paramètres système actuels du fichier DataBase.xml à l’étape 2, ajustez les paramètres nécessaires pour que l’outil fonctionne correctement, puis effectuez la conversion.

Étape 4. Configurer les paramètres InnoDB

Avant de convertir le moteur de base de données de MyISAM vers InnoDB, configurez deux paramètres MySQL spécifiques à InnoDB. Les deux paramètres sont innodb_buffer_pool_size et innodb_file_per_table.

innodb_buffer_pool_size

Ce paramètre contrôle la quantité de RAM disponible pour le moteur InnoDB afin de mettre en cache les données des tables et des index, et il doit être configuré avant de tenter la conversion. La taille recommandée du pool de mémoire tampon InnoDB représente environ 50 à 70 % de la mémoire système totale pour des serveurs de base de données dédiés. Cependant, si le serveur de base de données Jamf Pro héberge également Tomcat, cette valeur devrait être comprise entre 50 et 70 % de la mémoire système restante, en tenant compte de la quantité déjà allouée au service Tomcat, au système d’exploitation et aux services en cours d’exécution sur le serveur.

Par exemple, un serveur exécutant à la fois Tomcat et MySQL, avec 16 Go de RAM au total, alloue 8 Go au service Tomcat et 4 Go ont été réservés au système et à d’autres processus. Il reste 4 Go, et le calcul consiste donc à allouer 2 à 3 Go au paramètre de taille du pool de mémoire tampon InnoDB.

Pour définir la taille du paramètre pool_tampon innodb_buffer_pool_size, exécutez la commande suivante :

jamf-pro database config set --innodb-buffer-pool-size <value>

Cette commande accepte des valeurs en mégaoctets (Mo) ou en gigaoctets (Go). Par exemple :

jamf-pro database config set --innodb-buffer-pool-size 2048MB
jamf-pro database config set --innodb-buffer-pool-size 2GB

innodb_file_per_table

Ce paramètre permet de stocker les données et les index dans des fichiers .ibd distincts, améliorant ainsi la compression et les performances. Ce paramètre doit être défini sur true (booléen, 1) avant de tenter la conversion.

  1. Pour définir le paramètre innodb_file_per_table sur true, exécutez la commande suivante :
    jamf-pro database config set --innodb-file-per-table true
  2. Exécutez la commande suivante pour redémarrer le service MySQL :
    jamf-pro database restart

Étape 5. Arrêter Tomcat sur le serveur Jamf Pro

Arrêtez Apache Tomcat sur le serveur hébergeant l’application web Tomcat en exécutant une commande similaire à celle-ci :

jamf-pro server stop

Remarque : les privilèges sudo seront requis pour les serveurs Linux et Mac.
Remarque : Pour Windows, les commandes jamf-pro doivent être exécutées depuis le répertoire où l’exécutable est stocké. Référez-vous à l’étape 3 pour obtenir des instructions sur l’accès au répertoire approprié.

Si Tomcat est exécuté sur un serveur différent, ou s’il s’agit d’un environnement en cluster, Tomcat doit être arrêté sur tous les nœuds. Pour plus d’informations sur le démarrage et l’arrêt de Tomcat sur le serveur hébergeant l’application web Jamf Pro, consultez l’article de la Base de connaissances Starting and Stopping Tomcat (Démarrage et arrêt de Tomcat).

Étape 6. Sauvegarder la base de données

  1. Effectuez une sauvegarde de la base de données à l’aide de l’interface de ligne de commande (CLI) en exécutant la commande suivante :
    jamf-pro database backup
    Remarque : Pour Windows, les commandes jamf-pro doivent être exécutées depuis le répertoire où l’exécutable est stocké. Référez-vous à l’étape 3 pour obtenir des instructions sur l’accès au répertoire approprié.
  2. Pour plus de détails, exécutez la commande suivante :
    jamf-pro database backup --help

Étape 7. Convertir la base de données vers InnoDB

  1. Démarrez le processus de conversion en exécutant la commande suivante :
    jamf-pro database convert-to-innodb
    Remarque : les privilèges sudo seront requis pour les serveurs Mac et Linux. Remarque : Pour Windows, les commandes jamf-pro doivent être exécutées depuis le répertoire où l’exécutable est stocké. Référez-vous à l’étape 3 pour obtenir des instructions sur l’accès au répertoire approprié.
  2. À l’invite, tapez «Y » pour confirmer les conditions préalables suivantes :
    • La base de données est exécutée localement
    • Vous disposez de suffisamment d’espace disque et de mémoire système
    • La base de données a été sauvegardée
    • Le serveur Tomcat est arrêté sur tous les nœuds
    • Le paramètre de taille du pool de mémoire tampon InnoDB a été configuré et le service MySQL a été redémarré.
  3. Une fois ces conditions préalables confirmées, un processus de pré-conversion démarre et exécute les actions suivantes :
    • Réparer et optimiser la base de données
    • Vérifier les paramètres de la base de données

À la fin du processus de pré-conversion, toutes les tables de la base de données seront converties de MyISAM vers InnoDB. Cette opération peut prendre du temps.

Un message indiquant que la conversion est terminée s’affiche à la fin du processus. À ce stade, il est recommandé de créer une nouvelle sauvegarde de la base de données (voir l’étape 6 ci-dessus) avant de redémarrer Tomcat sur le serveur.

Si, à un moment quelconque, vous rencontrez une erreur que vous ne parvenez pas à résoudre, ou si vous ne pouvez pas poursuivre le processus, contactez l’assistance Jamf.

Obtenir de l’aide et dépannage

Vous pouvez obtenir des informations supplémentaires sur l’utilisation de l’interface de ligne de commande en exécutant la commande suivante :

jamf-pro help

De la même façon, l’utilisation de l’indicateur --help avec n’importe quelle sous-commande jamf-pro affichera des informations sur l’utilisation de cette commande.

jamf-pro database --help

Sous Linux et Mac, certaines commandes de l’interface de ligne de commande peuvent nécessiter sudo. Si vous recevez une erreur de type « jamf-pro: command not found », le paramètre sudopathe n’est peut-être pas correctement configuré. Pour résoudre ce problème, exécutez sudo à l’aide du chemin complet du fichier binaire jamf-pro. Par exemple :

  • Linux :
    sudo /usr/local/jss/bin/jamf-pro database convert-to-innodb
  • Mac :
    sudo /Library/JSS/bin/jamf-pro database convert-to-innodb

Si vous recevez une erreur de type « Error: database config file not found », l’outil CLI n’a pas trouvé l’élément my.cnf ou my.ini. Vous devrez vérifier qu’il est présent sur le système, conformément aux instructions de l’étape 2 ci-dessus.

Si vous recevez une erreur de type « Error: unrecognized memory format », la syntaxe de chaîne utilisée pour définir la valeur mémoire n’est pas reconnue. L’outil accepte les abréviations M ou MB pour les mégaoctets, G ou GB pour les gigaoctets, et il est sensible à la casse. Par exemple :

jamf-pro database config set --innodb-buffer-pool-size 1024M

Si Jamf Pro se trouve sur un serveur Windows et que vous recevez une erreur de type « Error: unable to create config file directory: mkdir H:\: The system cannot find the path specified », vous n’êtes probablement pas connecté en tant qu’administrateur local au serveur Windows. Vous pouvez exécuter la commande en tant qu’administrateur local dans une invite de commandes, ou vous déconnecter puis vous reconnecter au serveur en tant qu’administrateur local afin d’effectuer la conversion vers InnoDB.

Si Jamf Pro se trouve sur un serveur Windows et que vous recevez une erreur de type « Error: could not find MySQL binaries in C:\Program Files\MySQL\MySQL Server 5.x\bin », vous devrez peut-être spécifier l’emplacement réel des binaires MySQL. Pour cela, exécutez une commande similaire à la suivante, qui utilise l’exemple d’une installation MySQL sur le lecteur D:\ :

jamf-pro config set --mysql-bin "D:\Program Files\MySQL\MySQL Server 5.x\bin"

Informations supplémentaires

Pour plus d’informations, consultez l’article suivant de la Base de connaissances : Utilisation de l’interface de ligne de commande des outils du serveur Jamf Pro.

Like Comment