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 » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
{{Ébauche}}{{En cours de traduction}}
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 à [http://moodle.org/mod/forum/discuss.php?d=162871 cette discussion].


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 à [http://moodle.org/mod/forum/discuss.php?d=162871 cette discussion].
== Pourquoi passer de MyISAM à InnoDB ==
Partie à compléter


== Différences entre MyISAM et InnoDB ==
== Différences entre MyISAM et InnoDB ==
* lisez [http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB]
* lisez [http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB]
* InnoDB is best for data integrity, not so good for searching large files, and uses up more CPU cycles and storage space than MyISAM equivalent
* 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 is much younger than MyISAM but is becoming increasingly attractive ... but because it is more complex, some utilities written for MyISAM like mysqlhotcopy may not work
* 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
* It is perfectly OK to select InnoDB for certain tables, and MyISAM for others (based on above criteria)
* Il est parfaitement possible d'utiliser InnoDB pour certaines tables, et MyISAM pour d'autres (selon les critères ci-dessus)


== Configuration MySQL ==
== Configuration MySQL ==
Ligne 16 : Ligne 17 :
== Différentes façon de migrer de MyISAM à InnoDB ==
== 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.
Il suffit d'utiliser '''une''' des méthodes ci-dessous, qui correspond le plus à votre cas, et vos possibilités.
* run the innodb script as a webpage http://www.YOUR_MOODLE_SITE/admin/innodb.php (there might be timeout issues on large databases)
* Exécutez le script depuis la page web http://www.domaine.fr/moodle/admin/innodb.php (il peut y avoir des problèmes de timeout sur les grandes bases de données)
* use the CLI script in admin/cli/mysql_engine.php (requires access to shell, and the config.php must only have one moodle instance, but has no timeout issues)  
* Utilisez le [[Administration en ligne de commande|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)
* use PHPMyAdmin entering Structure view of a table and clicking Operations tab. Look for Storage Engine parameter. This is a tedious task due to the number of tables [http://moodle.org/mod/forum/discuss.php?d=162002]
* 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 [http://moodle.org/mod/forum/discuss.php?d=162002]
* perform a database dump (e.g. mysqldump moodle_database > dump.SQL), use an editor or sed/perl/awk command to find/replace , replacing MyISAM with InnoDB. Finally, restore back in the server. (e.g. mysql < dump.SQL or equivalent)
* 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)
* Follow the process detailed here - https://sites.google.com/site/moodlemayhem/tcea2011-moodle-server-setup-basics/moodleacidtrip
* Suivez le processus détaillé ici : https://sites.google.com/site/moodlemayhem/tcea2011-moodle-server-setup-basics/moodleacidtrip
 
== Convertir toutes les tables MySQL de MYISAM vers InnoDB ==
Il est possible de convertir toutes les tables interne de Moodle, lorsque l'on utilise MySQL, de MyISAM vers InnoDB, en utilisant le script accessible à l'adresse '''votre-serveur/moodle/admin/innodb.php''' ou un [[Administration en ligne de commande|script en ligne de commande]].


== Voir aussi ==
== Voir aussi ==

Version du 8 décembre 2010 à 08:03

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.domaine.fr/moodle/admin/innodb.php (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)
  • 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

Voir aussi