Zarafa Datenbank optimieren

Status
Für weitere Antworten geschlossen.

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
Hallo Zusammen

Ich habe eine frage zu der Zarafa Datenbank sie hat bei mir eine Größe von ca. 1,7 GB, jetzt habe ich viele mails die Große Anlagen hatten gelöscht die Datenbank ist aber nicht kleiner geworden ?
Gibt es eine Möglichkeit die SQL Datenbank zu optimieren ? oder mach das Zarafa in gewissen abständen selber.


Für einen Tip wäre ich sehr dankbar.

Gruß pcmeister
 

juvi

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hi,

Zarafa löscht E-Mails nicht sofort.
Sie bleiben für eine gewisse Zeit wiederherstellbar.

Du kannst in der server.cfg festlegen wann Zarafa e-Mails entgültig löschen soll. Dazu musst du den Parameter: "softdelete_lifetime" entspechend einstellen.
Standard sind 30 Tage. Die gelöschten e-Mails werden also erst nach 30 tagen vollständig gelöscht. Man kann diesen Wert natürlich auch verringern.

Du kannst Zarafa auch mit dem Befehl:

zarafa-admin --purge-softdelete [TAG]

sofort auffordern Mails komplett zu löschen. Bei [TAG] gibst du an das die E-Mails älter als [TAG] gelöscht werden sollen.

grüße Juvi
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
Danke juvi

das hat geklappt super vielen dank tolles Forum

gruß pcmeister
 

Jdo2002

Benutzer
Mitglied seit
24. Dez 2011
Beiträge
692
Punkte für Reaktionen
1
Punkte
38
Generell ist es auch kein verkehrter Ansatz die Anhänge ausserhalb der Datenbank zu speichern. Man kann das in der server.cfg definieren (Pfad und ob das gemacht werden soll). Es gibt auch im Zarafa Wiki nen Skript was die Anhänge aus der DB exportiert. Ich werde diese möglichkeit auch noch irgendwann mal in die GUI implementieren, da es zwar recht einfach ist die Daten alle in der Datenbank zu haben, aber es macht die Sache nicht gerade performanter :)
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
Hallo Jdo2002

das mit den Anhängen ausserhalb der Datenbank hört sich sehr gut an kannst du ewtl. erklären wie der eintrag in der server.cfg heißt wo das eingestellt werden kann ???

Gruß pcmeister
 

juvi

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hi pcmeister,


Rich (BBCode):
# Where to place attachments. Value can be 'database' or 'files'
attachment_storage      = files

# When attachment_storage is 'files', use this path to store the files
attachment_path         = /data/mail/

grüße juvi
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
hi juvi

hab den eintrag in der server.cfg gefunden und geändert, aber in welcher Struktur auf der Diskstation liegt der pfad /data/mail/ ?
Und es wäre nett wenn ihr noch das skript posten könntet mit dem die Anhänge aus der datenbank exportiert werden.


Gruß pcmeister
 

juvi

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hi pcmeister,

das Script findest du hier: /volume1/@appstore/Zarafa/share/doc/zarafa/db-convert-attachments-to-files .

/data/mail war nur ein Beispiel von einer Zarafa Installation die nicht auf einer Synology läuft. Bei einer Diskstation ist es natürlich sinnvoller die Daten irgendwo auf /volume1 zu sichern.
Hatte das mal eben von einem Server bei mir auf der Arbeit raus kopiert.

grüße juvi
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
hi juvi

hab den pfad jetzt auf /volume1/homes/zfiles/ geändert und Zarafa neu gestartet, hab mir ein paar test mails geschickt der Ordner bleibt aber leer ?

Gruß pcmeister
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
Hab gerade einen Neustart gemacht hier das Log.
Rich (BBCode):
Tue Feb 26 09:06:52 2013: Shutting down.
Tue Feb 26 09:06:52 2013: Still waiting for 8 threads to exit
Tue Feb 26 09:06:54 2013: Server shutdown complete.
Tue Feb 26 09:07:15 2013: Starting zarafa-server version 7,1,2,39121, pid 9082
Tue Feb 26 09:07:15 2013: Listening for priority pipe connections on /var/run/zarafa-prio
Tue Feb 26 09:07:15 2013: Listening for pipe connections on /var/run/zarafa
Tue Feb 26 09:07:15 2013: Listening for TCP connections on port 236
Tue Feb 26 09:07:15 2013: Connection to database 'zarafa' succeeded
Tue Feb 26 09:07:15 2013: zarafa-licensed is running, but no license key was found. Not all commercial features will be available.
Tue Feb 26 09:07:16 2013: Startup succeeded on pid 9089
 

smueff

Benutzer
Mitglied seit
26. Feb 2013
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Hi pcmeister,

falls Du immer noch keine Anhänge im Dateisystem hast, die /etc/zarafa/server.cfg aber korrekt auf

Rich (BBCode):
attachment_storage      = files

mit gültigem Pfad konfiguriert ist, empfehle ich Dir, den Zarafa-Server neu zu starten mit dem Argument

Rich (BBCode):
--ignore-attachment-storage-conflict

Wie im Wikiartikel von Jdo2002 gepostet sollte der zarafa-server Dienst einmal so gestartet werden. Danach wird die Ordnerstruktur im Dateisystem angelegt.

Wenn Du danach ins /var/log/zarafa/server.log schaust, sollte folgende Meldung erscheinen:

Rich (BBCode):
Ignoring attachment storing conflict as requested. Attachments are now stored with option 'files'.

Diese Option ist seit einiger Zeit eigentlich "Werks"-Standard in der Zarafa-Konfig. Beim Synology SPK werden die Attachments noch in der database abgelegt. Ich empfehle diese Option schon vor dem allerersten Start vom zarafa-server umzustellen (wenn möglich, nicht getestet), dann muss man nicht mit dem conversion script kämpfen. Ich habe es auch nachträglich umgestellt, da es mir erst später auffiel.

WICHTIG! BACKUP! Falls ihr einen mysqldump ausführt oder ein eigenes Script für Backup verwendet, beachtet bitte, dass ihr nun den Attachments-Ordner (z.B. via cp -r) auch sichern müsst! Ein mysqldump allein richt nicht mehr aus. Wer den Ordner im richtigen Pfad ablegt, kann das auch gleich mit der integrierten Datensicherung erschlagen.

Grüße! =)
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
hi smueff

nach dem ich das Argument ausgeführt habe starte Zarafa nicht mehr und es steht folgendes im log.

Wed Feb 27 08:56:37 2013: Connection to database 'zarafa' succeeded
Wed Feb 27 08:56:37 2013: zarafa-licensed is running, but no license key was found. Not all commercial features will be available.
Wed Feb 27 08:56:38 2013: Startup succeeded on pid 31742
Wed Feb 27 08:57:22 2013: Caught SIGSEGV (11), traceback:
Wed Feb 27 08:57:22 2013: 0x000000080f31ed /usr/local/zarafa/bin/zarafa-server(_Z7sigsegvi+0x93) [0x80f31ed]
Wed Feb 27 08:57:22 2013: 0x000000f721625e /lib/libpthread.so.0 [0xf721625e]
Wed Feb 27 08:57:22 2013: 0x000000f7726400 [0xf7726400]
Wed Feb 27 08:57:22 2013: 0x000000f715eff1 /lib/libc.so.6(__libc_free+0x3e) [0xf715eff1]
Wed Feb 27 08:57:22 2013: 0x000000f7511f3f /usr/local/zarafa/lib/libmysqlclient.so.16 [0xf7511f3f]
Wed Feb 27 08:57:22 2013: 0x000000f7513274 /usr/local/zarafa/lib/libmysqlclient.so.16(gzclose+0x8d) [0xf7513274]
Wed Feb 27 08:57:22 2013: 0x0000000823be3c /usr/local/zarafa/bin/zarafa-server(_ZN16ECFileAttachment22SaveAttachmentInstanceEjjiPh+0x178) [0x823be3c]
Wed Feb 27 08:57:22 2013: 0x00000008239c66 /usr/local/zarafa/bin/zarafa-server(_ZN19ECAttachmentStorage14SaveAttachmentEjjbiPhPj+0x21a) [0x8239c66]
Wed Feb 27 08:57:22 2013: 0x0000000814cd0f /usr/local/zarafa/bin/zarafa-server(_Z10WritePropsP4soapP9ECSessionP10ECDatabaseP19ECAttachmentStorageP10saveObjectjbjS8_PbP11_s_FILETIMESB_+0xf23) [0x814cd0f]
Wed Feb 27 08:57:22 2013: 0x000000081545a7 /usr/local/zarafa/bin/zarafa-server(_Z10SaveObjectP4soapP9ECSessionP10ECDatabaseP19ECAttachmentStoragejjjjjP10saveObjectS8_jPb+0x24b) [0x81545a7]
Wed Feb 27 08:57:22 2013: 0x000000081546a3 /usr/local/zarafa/bin/zarafa-server(_Z10SaveObjectP4soapP9ECSessionP10ECDatabaseP19ECAttachmentStoragejjjjjP10saveObjectS8_jPb+0x347) [0x81546a3]
Wed Feb 27 08:57:22 2013: 0x000000081569e5 /usr/local/zarafa/bin/zarafa-server(_Z14ns__saveObjectP4soapy17xsd__base64BinaryS1_P10saveObjectjjP18loadObjectResponse+0x8bd) [0x81569e5]
Wed Feb 27 08:57:22 2013: 0x00000008370ea9 /usr/local/zarafa/bin/zarafa-server(_Z25soap_serve_ns__saveObjectP4soap+0xed) [0x8370ea9]
Wed Feb 27 08:57:22 2013: 0x00000008372aee /usr/local/zarafa/bin/zarafa-server(_Z18soap_serve_requestP4soap+0x202) [0x8372aee]
Wed Feb 27 08:57:22 2013: 0x000000081043b7 /usr/local/zarafa/bin/zarafa-server(_ZN14ECWorkerThread4WorkEPv+0x53f) [0x81043b7]
Wed Feb 27 08:57:22 2013: 0x000000f7210f54 /lib/libpthread.so.0 [0xf7210f54]
Wed Feb 27 08:57:22 2013: 0x000000f71ae3fa /lib/libc.so.6(__clone+0x5a) [0xf71ae3fa]
Wed Feb 27 08:57:22 2013: When reporting this traceback, please include Linux distribution name, system architecture and Zarafa version.
 

juvi

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hi,

das db-convert-attachments-to-files Script hast Du nach der Wiki Anleitung vorher ausgeführt? http://www.zarafa.com/wiki/index.php/Store_attachment_outside_of_the_database

Mach zuerst ein Backup Deiner SQL Datenbank.
Dann geh genau nach der Wiki Anleitung vor:

1.
Stoppe den Zarafa Dienst.

2.
perl db-convert-attachments-to-files mysqluser mysqlpassword mysqldatabase path_to_filesystem delete
Mit Deinem mysql Passwort[Standart leer] Datenbank[Standart zarafa] und Pfad zum Verzeichnis mit Deinen Dateien.

3.
zarafa-server --ignore-attachment-storage-conflict
 
Zuletzt bearbeitet:

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
Bei 2. habe ich schon ein Problem es kommt die Meldung Can´t open perl script.
 

juvi

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Versuchs mal mit

Rich (BBCode):
perl  /volume1/@appstore/Zarafa/share/doc/zarafa/db-convert-attachments-to-files mysqluser mysqlpassword mysqldatabase path_to_filesystem delete
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
ja du hattest Recht lag daran das ich falschen pfad war aber jetzt kommt die meldung "Not enough space left on device"
hab folgenden pfad angegeben /volume1/zfiles/
 

smueff

Benutzer
Mitglied seit
26. Feb 2013
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Hi pcmeister,

vielleicht schlägt deswegen auch der --ignore-attachment-storage-conflict fehl? Mit

Rich (BBCode):
df -h

siehst Du die aktuelle Belegung deiner Dateisysteme. Steht dort in der Spalte "Use%" irgendwo 100%? Wenn ja, dann hat dein attachment-Ziel keinen freien Speicherplatz mehr übrig.

Das Ergenis sieht in etwa so aus (das Beispiel ist von einem Debian auf dem ich gerade bin, nicht von einer Synology):

Rich (BBCode):
root@meindebian:~# df -h
Dateisystem           Size  Used Avail Use% Eingehängt auf
/dev/mapper/vg_rootfs
                       14G  3,1G  9,6G  25% /
tmpfs                 502M     0  502M   0% /lib/init/rw
udev                  493M  132K  493M   1% /dev
tmpfs                 502M     0  502M   0% /dev/shm
/dev/sda1             297M   36M  246M  13% /boot
 

juvi

Benutzer
Mitglied seit
30. Nov 2012
Beiträge
51
Punkte für Reaktionen
0
Punkte
0
Hm ok jetzt wirds ein bisschen kompliziert.
Falls Du genug Platz hast liegt es vermutlich an den eingeschränkten Fähigkeiten von df busybox.
Öffne dann mal das Perl Script zum Beispiel mit vi und gehe zur Zeile 80:

my $free = `df -P -B1 $basepath | tail -1 | awk '{print \$4}'`;

das ersetzt Du durch:

my $free = `df -P $basepath | tail -1 | awk '{print \$4}'`;

danach die Datei speichern und nochmal versuchen.

grüße juvi
 

pcmeister

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
38
Punkte für Reaktionen
0
Punkte
0
Hallo smueff / Hallo juvi

bei df -h steht bei keinem eintrag 100 %

hab den eintrag in dem Perl Script geändert jetzt kommt folgende meldung.

The size of all attachments in the database is: 1589248 Bytes (1.52 MB)
Argument "65%" isn't numeric in division (/) at db-convert-attachments-to-files line 18.
Available space is: 65% Bytes (65 B)
Argument "65%" isn't numeric in numeric ge (>=) at db-convert-attachments-to-files line 84.
Not enough space left on device.

gruß pcmeister
 
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