Durchsuchbare Dokumentation aufrufen

Zurück zur Dokumentationsübersicht

Realen Speicherplatz der MariaDB-Datenbank einsehen

Im Standard werden Ihre Dokumente samt Dokumentinhalt, Metadatenwerte und Pfadangaben in der von agorum core genutzten Datenbank gespeichert.

Hinweis: Die Informationen zum Speicherplatz der MariaDB-Datenbank beziehen sich auch auf die zuvor integrierte MySQL-Datenbank. 

Speichervarianten der MariaDB-Datenbank


Grundsätzlich empfiehlt es sich, den Dokumenteninhalt per agorum core storage auszulagern. Sollten Sie dieses Modul nicht verwenden, kommt eine interessante Eigenschaft der MySQL-Datenbank zutage.

Die MariaDB-Datenbank kann Informationen auf zwei verschiedene Varianten abspeichern:

Datenbankcontent in einer einzigen Datei hinterlegen

Frei gewordener Speicherplatz wird in diesem Fall nicht ersichtlich. Die Datenbank reserviert diesen freigewordenen Speicherplatz für sich selbst und gibt diesen nicht frei. Dadurch entsteht manchmal Verwirrung seitens der Administratoren, denn Löschungen oder Auslagerungen räumen normalerweise Platz frei.

Diese Eigenschaft tritt nur noch bei langjährigen Kunden von agorum core auf. Bei neuen Installationen wird automatisch die folgende Variante verwendet.

Datenbankcontent in einzelne Dateien aufsplitten

Der Content innerhalb der Datenbank wird aufgesplittet und in einzelnen Dateien abgespeichert. Diese Tabellen sind in Summe genauso groß wie bei der Nutzung der Variante 1, allerdings mit dem Unterschied, dass der Speicherplatz dank optimze table unkompliziert wieder freigegeben werden kann.

Mit dieser Einstellung werden neue agorum core-Installationen durchgeführt.

Anwendungsfälle zur Verkleinerung der Datenbank


für MySQL 5.6

Durch Variante 1 wird der frei gewordene Speicherplatz nicht sichtbar, und Sie können anhand des hier vorgestellten Prozesses Ihre Datenbank verkleinern und dadurch auf den frei gewordenen Speicherplatz zugreifen.

Anwendungsfälle sind etwa folgende:

ältere oder neuere MariaDB- oder MySQL-Versionen

Bei älteren oder neueren Versionen verwenden Sie das beschriebene Vorgehen unter für MySQL 5.6 nicht, da sich ggf. das Verfahren geändert hat und zudem keine Aussagen über die Performance getroffen werden kann. Informieren Sie sich hierzu eigenständig.

Verwenden Sie zudem eine MySQL-Version, die älter als 5.6 ist, aktualisieren Sie Ihre MySQL-Version oder migrieren Sie auf MariaDB. Aktualisieren Sie außerdem auch agorum core.

Realen Speicherplatz per Datei „ibdata“ einsehen


agorum core liefert die MariaDB-Datenbank mit.

Hinweis: Wenn die Befehle nicht direkt nutzbar sind, können Sie auch /opt/agorum/agorumcore/mysql/bin/mysql (Linux) bzw. C:\Program Files (x86)\agorum\core\mysql\bin anstatt mysql schreiben. Die Installation erfolgt weiterhin im Verzeichnis mysql, um den Änderungsaufwand für den Fall einer Migration so gering wie möglich zu halten.

Die Datensicherung erstellen

Im 1. Schritt erstellen Sie eine vollständige Datensicherung von agorum core.

Die Datenbank dumpen

Im 2. Schritt dumpen Sie die Datenbank mit folgendem Befehl.

MySQL-Aufruf:

mysqldump -u root -pdbpassword --all-databases > /backup/all-database.sql

Maria-DB-Aufruf:

mariadb-dump -u root -pdbpassword --all-databases > /backup/all-database.sql

Die Datenbank stoppen und agorum core beenden

Im 3. Schritt stoppen Sie Ihre Datenbank. Beenden Sie zudem agorum core.

Dateien im Verzeichnis „data“ löschen

Im 4. Schritt löschen Sie alle im Verzeichnis data liegenden MariaDB/MySQL-Dateien bis auf die Datei my.ini/my.cnf.

ibdata-Files auf ibd-Files umstellen

Im 5. Schritt stellen Sie Ihre Datenbank von ibdata1 auf inndodb_file_per_table folgendermaßen um. Dadurch können Sie in der Zukunft mit optimize table Ihre Datenbank unkompliziert verkleinern.

  1. Öffnen Sie die Datei my.ini/my.cnf.
  2. Tragen Sie in der Sektion [mysqld] folgende Werte ein:
    innodb_file_per_table=1
    
    # kann auch angepasst werden auf
    innodb_data_file_path=ibdata1:12M:autoextend

Die Datenbank initialisieren

Im 6. Schritt sichern Sie vor Initialisierung die Datei my.ini/my.cnf, in dem Sie diese vorübergehend aus dem Verzeichnis data entfernen und an einem beliebigen Ort ablegen, etwa ein Verzeichnis höher.

  1. Initialisieren Sie Ihre Datenbank mit folgendem Befehl:

    MySQL-Aufruf:

    mysqld --defaults-file=..\my.ini --initialize-insecure
    

    MariaDB-Aufruf:

    mariadbd --defaults-file=..\my.ini --initialize-insecure
    
  2. Fügen Sie anschließend die Datei my.ini/my.cnf in das Verzeichnis data ein.
  3. Passen Sie unter Linux die Rechte des Verzeichnisses mit folgendem Befehl an:
    chown -R mysql.mysql data

Die Datenbank importieren

Im 7. und letzten Schritt starten Sie die Datenbank neu. Anschließend stellen Sie Ihre Datenbanken mit folgendem Befehl wieder her:

MySQL-Aufruf:

# erst mal kein Passwort notwendig, da mit "insecure" initialisiert wurde, das Passwort kommt dann über den Dump wieder rein
mysql -u root < /backup/all-database.sql

MariaDB-Aufruf:

# erst mal kein Passwort notwendig, da mit "insecure" initialisiert wurde, das Passwort kommt dann über den Dump wieder rein
mariadb -u root < /backup/all-database.sql


Besonderheit unter Linux

Unter Linux kann es sein, dass Sie den Socket mitgeben müssen:

MySQL-Aufruf:

mysql --socket=/tmp/mysql.agorumcore.sock01 -u root < all-database.sql

MariaDB-Aufruf:

mariadb --socket=/tmp/mysql.agorumcore.sock01 -u root < all-database.sql

Realen Speicherplatz per Datei „inndodb_file_per_table“ einsehen


Um den realen Speicherplatz der Datenbank bei Nutzung von inndodb_file_per_table einzusehen, führen Sie die folgenden Schritte durch.

Ob Sie die Datei verwenden, erkennen Sie an folgender Einstellung innerhalb der Datei my.ini/my.cnf:

[mysqld]
innodb_file_per_table=1
  1. Beenden Sie agorum core.
  2. Starten Sie die Datenbank.
  3. Verwenden Sie den Befehl optimize table.

    Durch diesen Befehl wird der eigentliche Speicherplatz freigegeben. Das System erstellt vorübergehend die Datei TMP-ibd und löscht anschließend die ursprüngliche ibd-Datei. Diese Methode können Sie selektiv auf Tabellen-Ebene durchführen. Möchten Sie etwa den realen Speicherbedarf des Solr-Indexes einsehen, optimieren Sie die Tabelle index_content_t.

    Beispiel nach einer Storage-Auslagerung
    optimize table indexedcontentstore;
    optimize table unknownformatcontentstore;
    optimize table nonindexedcontentstore;