Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Migration de MyISAM vers InnoDB, celle pour les versions 3.x de Moodle est consultable ici : Migration de MyISAM vers InnoDB et celle pour Moodle 4.x est consultable là : Migration de MyISAM vers InnoDB.

Migration de MyISAM vers InnoDB

De MoodleDocs
Aller à :navigation, rechercher

Cette page devrait contenir toutes les informations nécessaires pour prendre une décision concernant le passage vers InnoDB (au lieu de MyISAM). En attendant qu'elle s'enrichisse, il peut-être utile de consulter la version anglaise, peut-être plus complète. La création de cette page fait suite à cette discussion.

Pourquoi passer de MyISAM à InnoDB

Partie à compléter

Différences entre MyISAM et InnoDB

  • lisez [1]
  • InnoDB est meilleur pour l'intégrité des données, moins bon pour la recherche dans de gros fichiers, et utilise plus de ressources CPU et d'espace de stockage (jusqu'à 2 ou 3 fois plus) que MyISAM
  • InnoDB est plus jeune que MyISAM, mais devient de plus en plus attrayant... mais étant plus complexe, certains utilitaires écrit pour MyISAM comme mysqlhotcopy peuvent ne pas fonctionner
  • Il est parfaitement possible d'utiliser InnoDB pour certaines tables, et MyISAM pour d'autres (selon les critères ci-dessus)

Configuration MySQL

Avant de tenter de changer le type de table, vous devriez :

  • vérifier qu'InnoDB est activé. Connectez-vous à MySQL et lancez la commande SHOW ENGINES. Assurez vous que le support pour InnoDB montre "YES" ou "DEFAULT".
  • activer innodb_file_per_table si nécessaire. Ce paramètre peut être utile pour de grosses installations, mais s'applique uniquement aux nouvelles tables créées et ne peut être appliqué après coup.

Différentes façon de migrer de MyISAM à InnoDB

Il suffit d'utiliser une des méthodes ci-dessous, qui correspond le plus à votre cas, et vos possibilités.

  • Exécutez le script depuis la page web http://www.MON_SITE_MOODLE.fr/admin/tool/innodb (Moodle 2.2.1 Vous devez être connecté en tant qu'administrateur). Pour Moodle 1.x, le script était là : http://www.MON_SITE_MOODLE.fr/admin/innodb.php. Attention, il peut y avoir des problèmes de timeout sur les grandes bases de données.
  • Utilisez le script en ligne de commande dans admin/cli/mysql_engine.php (nécessite l'accès au shell, et le fichier config.php doit n'avoir qu'une seule instance Moodle, mais il n'y a aucun problème de timeout) - Moodle 2.x uniquement !
  • Utilisez PHPMyAdmin en entrant dans la vue de la structure d'une table et cliquez sur l'onglet Opérations. Recherchez les paramètres du moteur de stockage. Il s'agit d'une tâche fastidieuse à cause du nombre de tables [2]
  • Effectuez un dump de base de données (par exemple mysqldump moodle_database > dump.sql), utilisez un éditeur ou des commandes sed/perl/awk pour trouver/remplacer MyISAM par InnoDB. Enfin, restaurez votre base dans le serveur. (mysql < dump.sql ou équivalent)
  • Suivez le processus détaillé ici : https://sites.google.com/site/moodlemayhem/tcea2011-moodle-server-setup-basics/moodleacidtrip

Retours d'expérience

Vous avez migré, n'hésitez pas à ajouter vos retours d'expérience : temps de traitement, en liaison avec la taille de votre base, éventuels problèmes rencontrés et solutions trouvées...

Voir aussi