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:
CM -dump
.
my.cnf
und
starten Sie den Server neu.
mysql
-Kommandozeilentool.
cmdb.xml
(bzw. tedb.xml
)
neu an.
CM -restore
wieder her.
Voraussetzung für eine gute Datenbank-Performance ist, dass die Indizes aller Tabellen regelmäßig aktualisiert werden:
analyze table tablename1, tablename2, ... flush tables;