Datenbank reorganisieren

Status
Für weitere Antworten geschlossen.

Omega4

Benutzer
Mitglied seit
07. Apr 2014
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Nach einem Providerwechsel (mit leider mehrfachem Import aller Mails, die noch vorhanden waren) ist meine Datenbank sehr stark angewachsen.

Die mehrfachen Mails habe ich mittlerweile alle wieder gelöscht, aber – soweit ich weiß – wird der Speicherbereich nicht automatisch wieder freigegeben.

Wie kann ich am einfachsten diesen Speicherbereich wieder freigeben?
Danke für jede Hilfe
Holger
 

Omega4

Benutzer
Mitglied seit
07. Apr 2014
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
So, nach etlichen Recherchen und Tests habe ich folgenden Ablauf für eine Reorganisation – falls mal noch jemand suchen sollte.

Emails werden von Zarafa nicht sofort gelöscht sondern erst nach Ablauf einer in der Datei server.cfg festgelegten Zeit (Parameter "softdelete_lifetime"), der default auf 30 Tage steht. So lange wollte ich nicht warten, bis zum Löschen vorgemerkte Emails endgültig gelöscht werden.

Alternativ gibt es den Befehl:
zarafa-admin --purge-softdelete [TAG]
[TAG] legt fest, dass alle E-Mails älter als [TAG] sofort gelöscht werden sollen.

Ablauf:
Internet sperren für Diskstation (damit nicht neue Mails für Verwirrung sorgen)
Diskstation herunterfahren, sichern und anschließend wieder starten.
Mit Putty auf Console anmelden
zarafa-admin --purge-softdelete [1]
---> auch das reicht alleine noch nicht aus, um den Platz freizugeben, wird aber benötigt.

Datenbank zarafa exportieren (wenn noch weitere DBs im System sind, müssen die auch exportiert werden)
phpMyAdmin - zarafa - exportieren - x angepasst
Speichern in Datei: @DATABASE@ @SERVER@ 20160909
Komprimierung: ohne
Objekterstellungsoptionen (zusätzlich aktiviert)
X DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER-Befehl hinzufügen
ok
Die Datei wird auf dem lokalen Rechner gespeichert.

WINScp: exportierte sql-Datei nach /volume1/Daten/zarafa/ kopieren

Datenbank(en) löschen
phpMyAdmin: zarafa - Operationen - Drop alle Datenbanken außer mysql, performance_schema und information_schema
Stop zarafa, phpMyAdmin und MariaDB
WINScp: Delete ibdata1 and ib_log files in /volume1/@database/mysql
Start MariaDB und phpMyAdmin

Importieren der zuvor exportierten DB
Zuerst muss eine leere Datenbank angelegt werden
mysql -u root -p
CREATE DATABASE zarafa;
Exit

Jetzt erfolgt der Import der zuvor exportieren DB
/var/packages/MariaDB/target/usr/bin/mysql -uroot -pmeinrootPasswort zarafa < /volume1/Daten/zarafa/zarafa_localhost_20160909.sql
Vorgang für jede weitere Datenbank wiederholen, die zuvor exportiert wurde.

zarafa wieder starten

Vorsichtshalber noch mal eine Sicherung
Internet wieder zulassen für die Diskstation.
Datei /volume1/Daten/zarafa/zarafa_localhost_20160909.sql löschen (wird nicht mehr benötigt, belegt nur Platz)

Erfolg: Verkleinerung der ibdata1 von 4.642 MiB auf 1.618 MiB
 

Tosoboso

Benutzer
Mitglied seit
27. Aug 2012
Beiträge
1.256
Punkte für Reaktionen
52
Punkte
74
Hi, die Beschreibung ist korrekt.
Grundsaätzlich ist zum Verkleinern der Datenbank ein Backup / Dump, Drop Database und Restore nötig. Und die Beschreibungen sind richtig soweit, aber manuell aufwendig. Das geht auch mit den angehängten Skript etwas einfacher.
Zarafa-Backup.sh dient zum Backup Restore der Datenbank und auch zur Migration von JD legacy Zarafa auf Zarafa4h (siehe WIki). WIchtiger Punkt ist: vor dem Restore die MySQL Settings anpassen, dass der Upload grosser Blocks nicht scheitert..
Das Skript passt die MySQL Settings so an dass der Restore nicht scheitert, denn Mail Anhänge können grösser sein, als der Upload per Default MySQL Settings es erlaubt und dann hat man das Problem...
-TososBoso
 

Anhänge

  • zarafa-backup.zip
    2,6 KB · Aufrufe: 29

Online78

Benutzer
Mitglied seit
15. Mrz 2013
Beiträge
237
Punkte für Reaktionen
11
Punkte
18
Werter Tobosco

Seit ich auf Z4H umgestiegen bin arbeite ich mit deinem zarafa-backup.sh script. Bei mir wurde jedoch noch nie Speicherplatz "freigegeben". Die DB wird einfach immer grösser. Gibt es denn Parameter, um nicht mehr benötigten Speicherplatz frei zu geben?

Gruss Domi
 

Tosoboso

Benutzer
Mitglied seit
27. Aug 2012
Beiträge
1.256
Punkte für Reaktionen
52
Punkte
74
Bei mir wurde jedoch noch nie Speicherplatz "freigegeben". Die DB wird einfach immer grösser. Gibt es denn Parameter, um nicht mehr benötigten Speicherplatz frei zu geben?
Hi, ohne Drop Datebase und Neu-Anlegen, danach Import gibt es auchkleine Bereinigung. Man sollte sich auch nicht zu viel von der Bereinigung versprechen, es sei denn man hat grosse Datenmangen archviert, oder auf FS mit Attachments geschoben.
-TosoBoso
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat