Datenbanken verkleinern - Auslagern - Archivieren

Hallo zusammen,

ich würde gerne ein Projekt starten. Lösungen über Skript, Automation oder sogar über Programmweiterentwicklung wäre denkbar.

Ausgangslage:
Ich habe 12 verschiedene Datenbanken am Laufen, insgesamt mit ca 638 GB. Da ich DevonThink schon sehr sehr lange verwende sind da viele - sehr viele Dokumente enthalten (350.000 - 400.000).
Das öffnen der Datenbanken dauert daher schon sehr lange, und darunter sind auch Dokumente die ich nicht aktuell brauche, aber nicht weggeworfen werden sollen.

Problemsituation:
Ich kann die Dokumente nur manuell in eine Archiv-Datenbank verschieben, dabei muss ich jedoch die Ordnerstruktur abgleichen. Wenn ich nur Dokumente ab einem gewissen Alter von x-Jahren (als Beispiel) verschieben möchte, müsste ich das ebenfalls manuell abgleichen.

Lösungsidee:
Eine Ausgelagerte Archiv-Datenbank erstellen, die als 1. Unterordner-Struktur die zu Archivierende Original-Datenbanken enthält. Mittels Skript (oder evtl. anderen Ideen) sollen aus den 12 Datenbanken die Dokumente welche älter als x-Jahren (oder x-Datum) sind in diese Archiv-Datenbank verschieben, jedoch dabei die Unterordner-Struktur beibehalten. In der Original-Datenbank soll das Dokument dann “gelöscht” werden.

Die Grundidee ist abgeleitet von der Outlook-Archiv-Funktion. Hier werden z.B. E-Mails die Älter als x sind automatisch ins Archiv verschoben, dabei wird auch die Ordnerstruktur beibehalten.

Darüber hinaus wäre es super, wenn in der Original-Datenbank zwar das Dokument gelöscht wird, aber vielleicht eine Referenz auf das Archiv erscheint. Entweder mit einem Dokumeten URL “Archiviert” oder direkt als referenziertes Dokument.

Ideen/Anregungen/Lösungen - bitte gerne :wink:

Hallo Clamsy,

habe genau das gleiche Problem gehabt und mit einer Smart Rule gelöst:

Eine Referenz auf die archivierten Objekte habe ich allerdings nicht, da ich die normalerweise nicht weiter benötige. Sollte ich doch einmal auf ein archiviertes Dokument zugreifen müssen, öffne ich die Datenbank dann eben.

1 Like

Hi @jrgsch ,

vielen Dank. Ich hab nur ein kleines Problem bei den Aliases. Ich habe das auch so eingetragen, aber bei mir werden die nicht blau hervorgehoben. Somit funktioniert das mit dem Verschieben nicht korrekt - Leider.

Was muss ich davor noch machen?

OK, gefunden :wink: Mal schauen ob ich weiterkomme

Danke - schaut soweit ganz gut aus :wink:

Ich habe die Regel noch etwas modifiziert.

Denn, wenn ich die Regel nochmal laufen lasse und ich über alle Datenbanken gehe, dann würde ja sich das Archiv nochmal archivieren. (Ich habe es zwar nicht ausprobiert, aber so würde es sich meiner Logik erschließen.)

Daher habe ich das Alias dazu genutzt, um es als bereits archiviert zu kennzeichnen. Bei der Überprüfung der zu Archivierenden Dokumente würden dann diese Dokumente übersprungen werden.

Was hälst Du davon @jrgsch ?

PS: Ich habe auch eine Änderung “für mich” gemacht bezüglich dem Änderungsdatum, ich gehe nur auf Erstellungsdatum. Aber das kann ja jeder für sich selbst entscheiden.

Jetzt stellt sich nur noch die Frage, wie ich die Datenbank auf dem Laufwerk verkleinern kann.

In meinem Beispiel wo ich das jetzt probiert habe, ist die Datenbank 19,8 GB groß, hier müssten sicherlich mindestens 5 GB ins Archiv gewandert sein, da mein Archiv jetzt 6,02 GB groß ist.

Leider ist aber die Original-Datenbank weiterhin bei 19,8 GB !!! Warum?
Es handelt sich um eine verschlüsselte Datenbank.
Wie bekomme ich die jetzt um diese mindestens 5 GB verkleinert? Also müsste es ja dann so ca 14 GB werden.

Verschlüsselte Datenbanken basieren auf mitwachsenden Disk Images. Deren Größe wächst bei Bedarf zwar an, verringert sich aber nicht automatisch. Der freie Speicherplatz sollte sich allerdings erhöhen (s. Ablage > Datenbank-Eigenschaften)

Hallo,
das mag schon sein, dass sich innerhalb des mitwachsenden Disk Images der freie Speicherplatz erhöht, aber dennoch belegt diese Datenbank noch die ursprüngliche Größe auf meiner externen Platte.

Gibt es keine Möglichkeit eine Art “Reorganisation” dieses Images zu machen, so das der freie Speicher nicht nur innerhalb der Datenbank freigestellt wird, sondern auch die größe des mitwachsenden Images reduziert wird?

Normalerweise wachsen diese Images nur an, d.h. das geht nur manuell. @bluefrog müsste dafür einen Workflow haben, soweit ich mich erinnere.

@Clamsy : Da hast du natürlich Recht, die archivierten Dateien würden noch einmal archiviert werden. Ich hatte ursprünglich geplant, jährlich ein neues Archiv anzulegen, daher fehlt noch die Prüfung, ob die Dateien bereits archiviert sind.

Im Terminal hdiutil compact path/name.sparseimage dürfte das machen, wenn ich mich recht erinnere. Ich glaube, dass die Datenbank dabei nicht geöffnet sein darf, d.h. du musst sie vorher von name.dtSparse in name.sparseimage umbenennen. Ich würde grundsätzlich empfehlen, vor solchen Aktionen eine Sicherungskopie anzulegen.

Dankeschön, ja das hilft mit dem hdiutil compare :wink: