MySQL

Ab Version 6.6 unterstützt das CMS MySQL

Bitte beachten Sie bezüglich der erforderlichen Datenbankversion die Systemvoraussetzungen. Wir empfehlen, die kommerzielle Version von MySQL einschließlich Support einzusetzen, um im Bedarfsfall einen kompetenten Ansprechpartner zu haben. Eine solche Version kann über uns bezogen werden.

Wenn Sie beabsichtigen, in der 32-Bit-Version der Datenbank große Blobs abzulegen (ab 100 MB), empfehlen wir, vor dem Produktivbetrieb die Konfiguration des MySQL-Servers mit großen Blobs zu testen. Gegebenenfalls ist es aufgrund der MySQL-Konfiguration notwendig, die 64-Bit-Version des Datenbankservers einzusetzen.

Bei der Erzeugung der Datenbanktabellen verwendet CMS Fiona voreingestellt die Speicher-Engine InnoDB. Diese Engine ist obligatorisch.

Um CMS Fiona mit einer MySQL-Datenbank verwenden zu können, muss auf dem CMS-Rechner eine MySQL-Installation vorhanden sein. Bitte prüfen Sie, ob sich das CMS mit der Datenbank verbinden kann, indem Sie als der CMS-Benutzer die folgenden Kommandos mit den Datenbankadministrator-Anmeldedaten ausführen:

mysqladmin -u MySQL-Administrator -p -h MySQL-Server ping
mysql -u MySQL-Administrator -p -h MySQL-Server -e ""

Bitte beachten Sie, dass für den Betrieb von CMS Fiona an den Standard-Einstellungen des MySQL-Servers (Datei my.cnf) Änderungen vorgenommen werden müssen:

  • Der MySQL-Server muss mit dem globalen Transaction Isolation Level READ-COMMITTED laufen. Tragen Sie diesen bitte in der Sektion [mysqld] unter der Option transaction-isolation ein:

    transaction_isolation = read-committed
  • Als Zeichensatz muss UTF-8 verwendet werden.

    character-set-server = utf8
    default-character-set = utf8
  • Als globaler SQL-Modus muss TRADITIONAL gesetzt sein. Tragen Sie diesen bitte in der Sektion [mysqld] unter der Option sql_mode ein.

    sql_mode = traditional

Bitte beachten Sie, dass insbesondere bei großen Datenmengen ebenfalls Anpassungen an der MySQL-Konfiguration vorgenommen werden müssen, um den Betrieb der Datebank sicherzustellen:

  • Passen Sie in der Option innodb_data_file_path die Beschränkung der Datenbank-Dateigröße (max:128M) an oder entfernen Sie sie.

  • Für einen performanten Betrieb sollte die Option innodb_buffer_pool_size vergrößert werden. Je nach Größe der CMS-Datenbank und dem auf dem Server verfügbaren RAM sollte dieser Wert auf mindestens 512M erhöht werden.

  • Passen Sie für große Einzeltransaktionen (große Binärdaten) die Optionen innodb_log_file_size (auf ca. 25% von innodb_buffer_pool_size) und innodb_log_buffer_size an.

  • Ebenfalls für große Einzeltransaktionen empfehlen wir, die Option max_allowed_packet auf 1G zu setzen.

  • Damit der Datenbankserver Verbindungen zum CMS nicht vorzeitig schließt, erhöhen Sie die Werte der Parameter net_write_timeout auf 1800 und wait_timeout auf mindestens 3600. Alternativ zur Änderung von wait_timeout können Sie den Parameter slaveIdleTimeout des CMS in der Datei tuning.xml auf einen kleineren Wert als wait_timeout setzen.

  • Wir empfehlen, in der Konfigurationsdatei my.cnf den Konfigurationsparameter innodb_file_per_table zu verwenden und innodb_data_file_path zu deaktivieren. Diese Änderung bewirkt, dass je Datenbanktabelle eine eigene Datei verwendet wird, wodurch die Performanz verbessert wird. Die Umstellung einer bestehenden Datenbank ist unten beschrieben.

  • Der ab MySQL 5.0.32 verfügbare Parameter innodb_rollback_on_timeout bewirkt, dass bei Zeitüberschreitungen nicht nur die letzte Anweisung einer Transaktion, sondern die gesamte Transaktion rückgängig gemacht wird. Dies war vor MySQL 5.0.13 die Voreinstellung. Aus Gründen der Datenkonsistenz sollte diese Einstellung aktiviert werden.

Bei Verwendung eines MySQL-Servers, der nicht auf dem Standard-Port 3306 läuft, muss der Port in der entsprechenden Datenbank-Konfiguration (mysql.xml im config-Verzeichnis der betreffenden Instanz) eingestellt werden. Der Port wird abgefragt, wenn Sie eine Datenbank mit install-db anlegen.

Wird eine MySQL-Datenbank mit install-db angelegt, wird sie so konfiguriert, dass der Zugriff nur von dem Rechner erlaubt ist, der das Skript ausführt hat. Soll der Zugriff von einem anderen Rechner erlaubt werden, müssen die Zugriffsrechte auf dem MySQL-Server entsprechend geändert werden.

Umstellung der Datenbank auf innodb_file_per_table

Um in der MySQL-Datenbankkonfiguration my.cnf den Parameter innodb_file_per_table zu aktivieren und damit innodb_data_file_path zu deaktivieren, müssen die betreffenden Datenbanken gelöscht und neu angelegt werden, damit die Änderung wirksam wird. Gehen Sie hierzu folgendermaßen vor:

  1. Halten Sie das CMS vollständig an.
  2. Sichern Sie die Inhalte der betreffenden CM-Datenbank per CM -dump.
  3. Ändern sie die MySQL-Parameter in der Datei my.cnf und starten Sie den Server neu.
  4. Löschen Sie die Datenbanken des CM und der TE über das mysql-Kommandozeilentool.
  5. Legen Sie die Datenbanken des CM und der TE entsprechend Ihrer Datenbankkonfiguration cmdb.xml (bzw. tedb.xml) neu an.
  6. Stellen Sie die gesicherten Inhalte per CM -restore wieder her.
  7. Starten Sie Ihr CMS wieder.

Voraussetzung für eine gute Datenbank-Performance ist, dass die Indizes aller Tabellen regelmäßig aktualisiert werden:

analyze table tablename1, tablename2, ...
flush tables;