Migration von MyISAM zu InnoDB: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
(Die Seite wurde neu angelegt: „{{Moodle administrieren}} Dieser Artikel ist für Moodle-Administrator/innen gedacht, die eine MySQL-Datenbank verwenden. Es geht um die Umwandlung der [http://de…“)
 
Keine Bearbeitungszusammenfassung
Zeile 4: Zeile 4:


== Unterschied zwischen MyISAM und InnoDB ==
== Unterschied zwischen MyISAM und InnoDB ==
* read [http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB]
* Lesen Sie [http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB diesen Artikel].
* 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 ist bestens geeignet, um Daten-Integrität sicherzustellen, es ist nicht so gut geeignet für das Durchsuchen von großen Dateien und es verwendet mehr CPU-Zyklen und Speicher als  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 ist wesentlich jünger als MyISAM, wird aber immer attraktiver. Es ist jedoch komplexer, so dass einige Tools, die für MyISAM entwickelt wurden, mit InnoDB eventuell nicht funktionieren (z.B. <code>mysqlhotcopy</code>)
* It is perfectly OK to select InnoDB for certain tables, and MyISAM for others (based on above criteria)
* Sie können InnoDB für ausgewählte Tabellen der Moodle-Datenbank verwenden und die anderen Tabellen unter MyISAM belassen.


== MySQL Konfiguration ==
== MySQL Konfiguration ==
Before attempting to change the table type, you should:
Bevor Sie den Tabellentyp einer Datenbank-Tabelle ändern, sollten Sie:
* '''check InnoDB is enabled'''. Log in to MySQL and run the command [http://dev.mysql.com/doc/refman/5.1/en/show-engines.html SHOW ENGINES]. Make sure that support for InnoDB shows either "YES" or "DEFAULT".
* '''Prüfen, dass InnoDB aktiviert ist'''. Melden Sie sich in MySQL an und führen Sie den Befehl [http://dev.mysql.com/doc/refman/5.1/en/show-engines.html SHOW ENGINES] aus. Stellen Sie sicher, dass die Unterstützung von InnoDB entweder "YES" oder "DEFAULT" ist.
* '''set innodb_file_per_table if required'''. [http://dev.mysql.com/doc/refman/5.1/en/innodb-multiple-tablespaces.html This setting] can be useful for large installations, but it only affects newly created tables and can't be applied retrospectively.
* '''Setzen Sie <code>innodb_file_per_table</code>, falls nötig'''. [http://dev.mysql.com/doc/refman/5.1/en/innodb-multiple-tablespaces.html Diese Einstellung] kann für große Moodle-Installationen nützlich sein, sie betrifft jedoch nur neue Tabellen und kann nicht im Nachhinein angewendet werden.


== Verschiedene Methoden aus den Moodle-Foren==
== Verschiedene Methoden aus den Moodle-Foren==
Wählen Sie eine der folgenden Methoden, um die Umwandlung von MyISAM zu InnoDB durchzuführen:
Wählen Sie eine der folgenden Methoden, um die Umwandlung von MyISAM zu InnoDB durchzuführen:
* run the innodb script as a webpage <nowiki>http://www.YOUR_MOODLE_SITE/admin/tool/innodb</nowiki> (v2.2.1 You should be logged into your Moodle site as an administrator - there might be timeout issues on large databases) In earlier versions of Moodle 2.x the script was at <nowiki>http://www.YOUR_MOODLE_SITE/admin/innodb.php</nowiki>
* Melden Sie sich als Administrator/in an und lassen Sie das innodb-Skript im Webbrowser laufen: <code>http://www.YOUR_MOODLE_SITE/admin/tool/innodb</code> bzw. <code>http://www.YOUR_MOODLE_SITE/admin/innodb.php</code> (je nach Moodle-Version)
* 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)
* Verwenden Sie das CLI-Skript ''/moodle/admin/cli/mysql_engine.php'' - dafür ist Shell-Zugriff auf den Moodle-Server erforderlich und die Moodle-Konfigurationsdatei ''config.php'' darf nur eine Moodle-Instanz enthalten und keine Timeout-Einschränkungen.
* 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]
* Verwenden Sie phpMyAdmin, gehen Sie auf die Struktur-Ansicht einer Tabelle und klicken Sie dann der Reiter ''Operationen''. Ändern Sie die Einstellung von ''Storage Engine'' auf ''InnoDB''. Diese Vorgehensweise ist aufgrund der großen Anzahl der Tabellen sehr aufwändig, weil jede Tabelle einzeln geändert werden muss, siehe [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). '''If using this method, be very careful to use the same file encoding on both input and output.'''
* Erstellen Sie einen Datenbank-Dump (z.B. mit dem Befehl <code>mysqldump moodle_database > dump.SQL</code>), öffnen Sie die Dump-Datei in einem Editor und suchen & ersetzen Sie MyISAM durch InnoDB. Spielen Sie dann die geänderte Dump-Datei wieder in die Datenbank ein.  
* Follow the process detailed here - https://sites.google.com/site/moodlemayhem/tcea2011-moodle-server-setup-basics/moodleacidtrip
* Folgen Sie dieser Anleitung: https://sites.google.com/site/moodlemayhem/tcea2011-moodle-server-setup-basics/moodleacidtrip
* Use the php script (Tested on 1.9 and 2.0/2.2) http://noveckg.blogspot.com/2012/04/moodle-php-script-to-convert-mysql.html
* Verwenden Sie das PHP-Skript http://noveckg.blogspot.com/2012/04/moodle-php-script-to-convert-mysql.html (getestet mit Moodle 1.9 und 2.0/2.2)


==Siehe auch==
==Siehe auch==

Version vom 14. Juni 2012, 11:17 Uhr

Dieser Artikel ist für Moodle-Administrator/innen gedacht, die eine MySQL-Datenbank verwenden. Es geht um die Umwandlung der MySQL storage engine.


Unterschied zwischen MyISAM und InnoDB

  • Lesen Sie diesen Artikel.
  • InnoDB ist bestens geeignet, um Daten-Integrität sicherzustellen, es ist nicht so gut geeignet für das Durchsuchen von großen Dateien und es verwendet mehr CPU-Zyklen und Speicher als MyISAM.
  • InnoDB ist wesentlich jünger als MyISAM, wird aber immer attraktiver. Es ist jedoch komplexer, so dass einige Tools, die für MyISAM entwickelt wurden, mit InnoDB eventuell nicht funktionieren (z.B. mysqlhotcopy)
  • Sie können InnoDB für ausgewählte Tabellen der Moodle-Datenbank verwenden und die anderen Tabellen unter MyISAM belassen.

MySQL Konfiguration

Bevor Sie den Tabellentyp einer Datenbank-Tabelle ändern, sollten Sie:

  • Prüfen, dass InnoDB aktiviert ist. Melden Sie sich in MySQL an und führen Sie den Befehl SHOW ENGINES aus. Stellen Sie sicher, dass die Unterstützung von InnoDB entweder "YES" oder "DEFAULT" ist.
  • Setzen Sie innodb_file_per_table, falls nötig. Diese Einstellung kann für große Moodle-Installationen nützlich sein, sie betrifft jedoch nur neue Tabellen und kann nicht im Nachhinein angewendet werden.

Verschiedene Methoden aus den Moodle-Foren

Wählen Sie eine der folgenden Methoden, um die Umwandlung von MyISAM zu InnoDB durchzuführen:

  • Melden Sie sich als Administrator/in an und lassen Sie das innodb-Skript im Webbrowser laufen: http://www.YOUR_MOODLE_SITE/admin/tool/innodb bzw. http://www.YOUR_MOODLE_SITE/admin/innodb.php (je nach Moodle-Version)
  • Verwenden Sie das CLI-Skript /moodle/admin/cli/mysql_engine.php - dafür ist Shell-Zugriff auf den Moodle-Server erforderlich und die Moodle-Konfigurationsdatei config.php darf nur eine Moodle-Instanz enthalten und keine Timeout-Einschränkungen.
  • Verwenden Sie phpMyAdmin, gehen Sie auf die Struktur-Ansicht einer Tabelle und klicken Sie dann der Reiter Operationen. Ändern Sie die Einstellung von Storage Engine auf InnoDB. Diese Vorgehensweise ist aufgrund der großen Anzahl der Tabellen sehr aufwändig, weil jede Tabelle einzeln geändert werden muss, siehe [1]
  • Erstellen Sie einen Datenbank-Dump (z.B. mit dem Befehl mysqldump moodle_database > dump.SQL), öffnen Sie die Dump-Datei in einem Editor und suchen & ersetzen Sie MyISAM durch InnoDB. Spielen Sie dann die geänderte Dump-Datei wieder in die Datenbank ein.
  • Folgen Sie dieser Anleitung: https://sites.google.com/site/moodlemayhem/tcea2011-moodle-server-setup-basics/moodleacidtrip
  • Verwenden Sie das PHP-Skript http://noveckg.blogspot.com/2012/04/moodle-php-script-to-convert-mysql.html (getestet mit Moodle 1.9 und 2.0/2.2)

Siehe auch