Datensätze werden archiviert

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 4 Minuten Lesedauer
  • Verwalten Sie das Wachstum der Tabellengröße, und verbessern Sie die Abfrageleistung, indem Sie Datensätze archivieren.

    Sie können Datensätze in Core-Tabellen wie der Aufgabentabelle [task] und Datensätze in benutzerdefinierten Tabellen, die Sie in Now Platform erstellen, mithilfe von Archivierungsregeln archivieren.

    • Um Configuration Management Database (CMDB) CI-Datensätze zu archivieren, verwenden Sie den Datenmanager CMDB. Weitere Informationen finden Sie unter Working with CMDB Data Manager.
    • Um E-Mails zu archivieren, aktivieren Sie das Plugin zur E-Mail-Aufbewahrung, und verwenden Sie die Archivierungs- und Vernichtungsregeln, die mit dem Plugin geliefert werden. Verwenden Sie die Archivierungsfunktion nicht zum Erstellen eigener Archivierungsregeln in der E-Mail-Tabelle.

    Archivaktivierung

    Wenn Sie eine Archivierungsregel aktivieren, führt das System die folgenden Aktionen aus:

    • Erstellt die Archivtabelle in der Datenbank. Die Archivtabelle hat den gleichen Namen wie die primäre Tabelle mit dem Präfix „ar_“. Wenn Sie beispielsweise die Incident-Tabelle [incident] archivieren, lautet die Archivtabelle [ar_incident].
    • Speichert eine XML-Version jedes archivierten Datensatzes in der Tabelle „sys_archive_log“. Dieses Archivprotokoll ist für alle Archivierungsregeln dieselbe Tabelle, und Sie können dieses Verhalten nicht ändern. Dies ist auch der einzige Ort, an dem die sys_id zusammen mit dem Anzeigewert für Referenzfelder gespeichert wird.
      Beispiel: für ar_incident<assigned_to> Fred Luddy</assigned_to> lautet der Datensatz „sys_archive_log“ wie folgt:
      
      <assigned_to display_value="Fred Luddy">5137153cc611227c000bbd1bd8cd2005</assigned_to>
    • Konvertiert mehrere verbundene Tabellen in eine einzige Flatfile-Archivtabelle. Die Archivtabelle besteht nicht mehr aus einer Basistabelle und erweiterten Tabellen.
      Abbildung : 1. Konvertierung mehrerer verbundener Tabellen in eine flache Archivtabelle
      Konvertierung mehrerer verbundener Tabellen in eine flache Archivtabelle
    • Konvertiert Referenzfeldwerte (Werte, die durch Verweise auf Datensätze in anderen Tabellen festgelegt werden) in Zeichenfolgenwerte. Der Archivdatensatz enthält den Anzeigewert des Referenzfelds zum Zeitpunkt der Archivierung.
    • Fügt der Liste „Archivtabellen“ in der Anwendung „Systemarchivierung“ ein Modul hinzu. Der Modulname ist eine Kombination aus dem Wort „Archive“ und dem Anzeigenamen für die archivierte Tabelle. Das Archivmodul für die Tabelle „Anhang“ [sys_attachments] lautet beispielsweise „Archivanhang“.
    • Erstellt eine Liste der Archivtabelle mithilfe der Standardlistenansicht.
    • Erstellt ein Formular für die Archivtabelle mithilfe der Standardformularansicht. Das Formular schließt alle Dot-Walking- Felder wie Caller ID.Emailaus.

    In Zeichenfolgen konvertierte Referenzwerte

    Archivierte Daten werden als Flatfile ohne Referenzfelder für andere Tabellen gespeichert. Der Archivierungsprozess konvertiert alle Verweise auf andere Tabellen in Zeichenfolgenwerte.

    Im Fall eines Referenzfelds verwendet die Zeichenfolge den Anzeigewert, z. B. den Anwendernamen des Anrufers. Beispielsweise würde das Referenzfeld Anrufer in einem Incident die Zeichenfolge ITIL-Benutzeranzeigen. Wenn die Referenz eine Dokument-ID war und die Archivierungsregel die Option zur Archivierung zugehöriger Dokument-IDs enthält, ist die Zeichenfolge die Dokument-ID des zugehörigen Datensatzes.

    Zukünftige Änderungen an Referenzwerten werden nicht in archivierten Datensätzen berücksichtigt. Wenn Sie beispielsweise den Anwendernamen für „John Smith“ in „John A. Smith“ ändern, zeigen alle aktiven Incident-Datensätze den Anrufer aufgrund des Verweises zwischen den Tabellen „Incident“ und „User“ automatisch als „John A. Smith“ an. Alle archivierten Incident-Datensätze zeigen jedoch den Anwendernamen an, der zum Zeitpunkt der Archivierung vorhanden war. Auch wenn Sie einen Benutzer aus dem System löschen, wird er in aktuellen Incidents nicht mehr als Anrufer angezeigt. In archivierten Incidents wird jedoch weiterhin die Zeichenfolge „John Smith“ angezeigt, da dieser Wert bei der Archivierung des Datensatzes verwendet wurde.

    Archivierte Daten werden abgefragt

    Archivierte Tabellen sind nicht für Ad-hoc-Abfragen optimiert. Sie enthalten nur Indexeinträge für den Anzeigewert, das Erstellungsdatum und den Primärschlüssel von sys_id.

    Vermeiden Sie es, bei Bedarf Abfragen für eine archivierte Tabelle durchzuführen, z. B. die Suche nach allen archivierten Incidents der Priorität 1. Suchen Sie stattdessen nur in den indizierten Feldern. Suchen Sie beispielsweise nach dem Incident INC100001 oder Incidents, die an einem bestimmten Datum erstellt wurden.

    Tabellen und ACLs archivieren

    Standardmäßig verwenden Archivtabellen die ACLs für die nicht archivierte Tabelle mit demselben Namen. Beispielsweise verwendet die archivierte Incident-Tabelle [ar_incident] die ACLs, die für die nicht archivierte Incident-Tabelle [incident] definiert sind.

    Sie können den Zugriff auf Archivtabellen explizit verwalten, indem Sie ACLs für bestimmte Archivtabellen erstellen und die Eigenschaft glide.security.enable_archive_table_acls auf truefestlegen. Das System folgt dann einem von zwei Pfaden:
    1. Wenn für eine Archivtabelle eine oder mehrere aktive ACLs definiert sind, steuern diese ACLs den Zugriff auf die Archivtabelle.
    2. Wenn für eine Archivtabelle keine ACLs definiert sind, kehrt das System zum Standardverhalten zurück und verwendet die ACLs für die nicht archivierte Version der Tabelle.
    Hinweis:
    Die beiden Pfade schließen sich gegenseitig aus: Wenn ACLs für Archivtabellen den Zugriff verweigern, versucht das System nicht, zum Standardverhalten zurückzukehren.

    Der Lesevorgang ist der einzige -Vorgang, der ausgewertet wird. Andere Vorgänge werden verhindert.

    Die Ausführungsplan-UI kennt diese Logik und präsentiert entsprechend Informationen. Wenn Sie beispielsweise die erste ACL zu einer Archivtabelle hinzufügen, zeigt dies, dass die ACL der Archivtabelle ACLs in der nicht archivierten Tabelle (Originaldaten) „maskiert“.

    Wenn Sie über vorhandene ACLs für archivierte Tabellen verfügen, werden diese ignoriert, es sei denn, Sie legen die Eigenschaft glide.security.enable_archive_table_acls auf truefest. Diese neu aktivierten ACLs können möglicherweise Zugriffsprobleme verursachen. Um dies zu verhindern, legt das System die Eigenschaft glide.security.enable_archive_table_acls wie folgt fest:
    • Instanzen ohne die Eigenschaft glide.security.enable_archive_table_acls verwenden den Standardwert false.
    • Bei aktualisierten Instanzen wird die Eigenschaft nicht installiert. Die Eigenschaft muss manuell hinzugefügt und auf „true“ festgelegt werden, um das ACL-Verhalten der Archivtabelle zu aktivieren.
    • Zboot-Instanzen installieren die Eigenschaft und legen sie auf truefest.

    Sprache der archivierten Zeichenfolgen festlegen

    In internationalen Instanzen verwendet der Archivierungsprozess die Sprache des SYSTEM-Benutzers, um die Anzeigewertzeichenfolgen auszuwählen.

    Wenn kein SYSTEM-Benutzer vorhanden ist, verwendet die Instanz die Standardspracheinstellung, um die Anzeigewertzeichenfolgen auszuwählen. Sie können entweder einen SYSTEM-Anwender mit einer bestimmten Spracheinstellung erstellen oder die Systemstandardsprache festlegen, um die Sprache der archivierten Zeichenfolgen auszuwählen.