Mit der Datenerhaltung können Sie steuern, wie Daten in Ihrer Zieldatenbank angezeigt werden, wenn Änderungen an den Datenstrukturen oder den Metadaten vorgenommen oder wenn Daten von einer Tabelle in eine andere migriert werden.
Optim Database
Administrator unterstützt erweiterte Änderungen. Erweiterte Änderungen sind erforderlich, wenn keine ALTER-Anweisung zur einfachen Implementierung der Änderung verwendet werden kann. Bei einer erweiterten Änderung werden die Tabellendaten gespeichert und beibehalten, die Tabelle gelöscht und erneut erstellt und anschließend die Daten erneut geladen. Daten müssen auch gespeichert und beibehalten werden, wenn Sie Daten von einer Tabelle in eine andere migrieren.
Wenn Sie im Scripteditor für das Änderungsmanagement auf den Link Befehlsvorschau klicken, generiert Optim Database
Administrator die Befehle für die Änderungen. Zudem generiert das Produkt auch automatisch Entladebefehle und Befehle zum erneuten Laden, wenn es feststellt, dass Daten erhalten bleiben müssen. Auch DB2-Verwaltungsbefehle werden automatisch generiert. Sie können auf Datenoptionen klicken, um den Assistenten Datenerhaltung anpassen zu starten, wenn Sie die Befehle modifizieren möchten. Der Assistent unterstützt Sie beim Modifizieren der zu verwendenden Methoden zum Entladen und erneuten Laden, beim Modifizieren der Entladebefehle und der Befehle zum erneuten Laden sowie beim Ändern der DB2-Verwaltungsbefehle, die generiert werden.
Datenerhaltung ist in den folgenden Situationen sinnvoll:
- Wenn Sie eine Tabelle löschen
- Wenn Sie eine Tabelle löschen, möchten Sie die Daten aus dieser Tabelle möglicherweise für eine spätere Verwendung in einer Datei speichern. Dies gilt insbesondere für den Fall, dass Sie die Änderungen widerrufen müssen.
- Wenn Sie eine Tabelle erstellen
- Wenn Sie eine Tabelle erstellen, möchten Sie sie möglicherweise mit Daten aus einer anderen Tabelle füllen. Sie können Daten mit der Aktion Daten migrieren der Option Änderungsmanagement des Hauptmenüs in die Tabelle migrieren. Sie können dann die zu ladenden Daten anpassen, indem Sie auf Datenoptionen im Abschnitt Befehle des Scripteditors für das Änderungsmanagement klicken. Der Assistent Datenerhaltung anpassen wird gestartet. Er führt Sie durch die Zuordnung der
Daten, die Sie aus einer Tabelle entladen und in die neue Tabelle laden möchten.
Tipp: Mit dem Dienstprogramm LOAD oder IMPORT können Sie eine neue Tabelle mit Daten aus einer Datei füllen. Klicken Sie in der Objektliste mit der rechten Maustaste auf die neue Tabelle und wählen Sie die gewünschte Aktion aus dem Menü aus.
- Wenn Sie eine zerstörerische Änderung vornehmen
- Wenn Sie eine Änderung vornehmen, die erfordert, dass eine Tabelle gelöscht und anschließend erneut erstellt wird, müssen Sie die Daten in dieser Tabelle entladen und anschließend erneut laden.
- Wenn Sie Daten aus einer Tabelle in eine andere migrieren
- Beim Migrieren von Daten müssen Sie die Daten aus der Quellentabelle entladen und sie anschließend erneut in die Zieltabelle laden.
Auf der Seite Informationen zum Entladen und erneuten Laden des Assistenten Datenerhaltung anpassen können Sie verschiedene Aktionen ausführen. Sie können eine Tabelle auswählen und das Kontrollkästchen Abfrage ändern aktivieren, um den Entladebefehl für die Tabelle anzupassen. Sie können das Kontrollkästchen Zuordnung ändern aktivieren, um den Befehl zum erneuten Laden anzupassen. Zusätzliche Assistentenseiten werden angezeigt, die Sie bei der Anpassung von Entladebefehlen und Befehlen zum erneuten Laden unterstützen. Die Anpassung von Änderungsbefehlen für die Datenerhaltung ist zum ordnungsgemäßen Implementieren von gewissen Änderungen erforderlich.
Einschränkung: Wenn Sie Änderungsbefehle generieren, werden die Standardeingaben für die Datenerhaltung stets neu generiert. Zuvor generierte Datenerhaltungsbefehle werden beim erneuten Ausführen des Assistenten Datenerhaltung anpassen nicht verwendet.
Methoden für Entladebefehle und Befehle zum erneuten Laden
Optim Database
Administrator unterstützt mehrere unterschiedliche Methoden zum Entladen und zum erneuten Laden von Daten. Auf der Seite Informationen zum Entladen und erneuten Laden von Daten angeben des Assistenten Datenerhaltung anpassen können Sie die Methode für Operationen zum Entladen und erneuten Laden auswählen und anpassen.
Durch den von Ihnen ausgewählten Typ der Methode für den Entladebefehl wird festgelegt, ob die externe oder interne Datenerhaltung verwendet wird, wie die folgende Tabelle zeigt:
Tabelle 1. Unterstützte Entlademethoden und DatenerhaltungstypenEntladeprovider |
Typ der Datenerhaltung |
EXPORT für Datenformat DEL |
Extern |
Datenformat EXPORT IXF |
Extern |
Entladen mit hoher Leistung (DB2 HPU-Entladebefehle) |
Extern |
Interner Datenerhaltungsprovider |
Intern |
Cursor-Provider für interne Datenerhaltung |
Intern |
Bei der externen Datenerhaltung werden Daten in externen Dateien gespeichert. Die Daten werden entweder mit Exportbefehlen oder mit DB2 HPU in die externen Dateien entladen.
Die Daten werden in Abhängigkeit von der von Ihnen gewählten Methode für Befehle zum erneuten Laden mit Import- oder Ladebefehlen aus den externen Dateien erneut geladen. Wenn Sie Daten von einer Tabelle in eine andere migrieren, müssen Sie die externe Datenerhaltung verwenden, weil die Daten in einer externen Datei gespeichert werden müssen.
Bei der internen Datenerhaltung werden Daten innerhalb der Datenbank intern gespeichert.
Wenn eine Tabelle geändert wird, wird die Tabelle in der Datenbank umbenannt, um eine Spiegeltabelle zu erstellen. Nachdem die Tabelle neu erstellt wurde, werden die Daten aus der Spiegeltabelle in die neu erstellte, geänderte Tabelle versetzt. Die Daten werden in Abhängigkeit von der von Ihnen ausgewählten Methode für Entladebefehle mit INSERT-Anweisungen oder durch den Befehl LOAD FROM CURSOR versetzt.
Standardmäßig werden Spiegeltabellen mit dem Präfix 'SHAD_' umbenannt. Wenn eine Tabelle mit diesem Namen vorhanden ist, wird sie vor der Erstellung der Spiegeltabelle gelöscht. Sie können die Optionen für die internen Entlademethoden anpassen, um anzugeben, dass ein anderes Präfix verwendet werden soll oder dass die Spiegeltabelle mit einem anderen Präfix erstellt werden soll, falls eine Tabelle mit diesem Namen bereits vorhanden ist.
Die interne Datenerhaltung kann schneller als die externe Erhaltung sein, da keine Ein-/Ausgabe in Dateien erforderlich ist. Stellen Sie jedoch sicher, dass in Ihrer Datenbank genügend Speicherplatz vorhanden ist, wenn Sie die interne Datenerhaltung verwenden.
Voraussetzung: Zum Angeben von Entladen mit hoher Leistung (High Performance Unload) als Entlademethode muss DB2 High Performance Unload (HPU) for Multiplatforms oder DB2 High Performance Unload (HPU) for Workgroups installiert sein. Andernfalls schlagen die generierten Entladebefehle fehl. Diese Produkte sind gegen Aufpreis erhältliche und gesondert zu installierende Tools.
Wenn Daten erneut in eine Tabelle geladen werden, die einen Trigger enthält, wird der Trigger nur aktiviert, wenn die Daten mit Importbefehlen oder aus einer Datendatei mit INSERT-Anweisungen erneut geladen werden. Der Trigger wird nicht aktiviert, wenn die Daten mit Ladebefehlen oder aus einer Datendatei mit einem Befehl LOAD FROM CURSOR erneut geladen werden, da das Dienstprogramm LOAD die einem Trigger zugeordneten Geschäftsregeln nicht umsetzen kann. Wenn Sie nicht möchten, dass Trigger aktiviert werden, müssen Sie Ladebefehle (oder den Befehl LOAD FROM CURSOR) verwenden oder die generierten Änderungsbefehle so modifizieren, dass alle Trigger nach dem Laden der Daten erstellt werden.
Wichtig: Wenn Sie eine Methode zum erneuten Laden auswählen, die Trigger aktiviert, öffnen Sie die Änderungsbefehlsdatei, um die Reihenfolge zu prüfen, in der die Daten erneut geladen werden. Optim Database
Administrator lädt die Daten nicht automatisch erneut, sodass die Trigger in der von Ihnen beabsichtigten Weise aktiviert werden.
Erweiterte Datenerhaltungsverfahren
Erweiterte Datenerhaltungsverfahren umfassen Folgendes:
- Spalten löschen
- Das Löschen von Spalten kann einfach verwaltet werden, indem die generierten Entladebefehle und Befehle zum erneuten Laden angepasst werden. Sie können die Befehle ändern, um sicherzustellen, dass die Daten in den gelöschten Spalten erhalten bleiben. Zudem können Sie den Befehl zum erneuten Laden anpassen, um sicherzustellen, dass die entladenen Spalten den erneut geladenen Spalten entsprechend zugeordnet werden.
- NOT NULL-Spalten hinzufügen
- Das Hinzufügen von NOT NULL-Spalten ist einfach für Spalten, die über einen Standardwert verfügen. Falls eine Spalte über keinen Standardwert verfügt, passen Sie die Klausel SELECT im Entladebefehl auf der Seite Entladebefehle anpassen des Assistenten Datenerhaltung anpassen an.
- Verwenden der Funktion 'Automatische Umsetzung' (Cast)
- Wenn die Datentypen der Entladespalten und der Spalten zum erneuten Laden voneinander abweichen, können Sie die Funktion 'Automatische Umsetzung' verwenden, um die Abweichung zu beheben. Wenn Sie im Assistenten Datenerhaltung anpassen auf der Seite Informationen zum Entladen und erneuten Laden oder der Seite Entladebefehle anpassen die Option Automatische Umsetzung auswählen, fügt Optim Database
Administrator automatisch eine CAST-Spaltenfunktion in der Klausel SELECT der Anweisung EXPORT oder UNLOAD hinzu. Sie können Standardabfrage auswählen, um die Klausel SELECT auf die Standardeinstellung zurückzusetzen.
Einschränkung: Alle zusätzlichen Änderungen an der Klausel SELECT gehen verloren, wenn Sie die Option Automatische Umsetzung oder Standardabfrage auswählen.
Unterstützte DB2-Verwaltungsbefehle
Im Verlaufe des Änderungsmanagementprozesses kann es vorkommen, dass bestimmte Datenbankpakete funktionsunfähig werden und Statistikdaten nicht mehr stimmen. DB2 markiert beispielsweise Pakete als ungültig oder funktionsunfähig, wenn Sie Objekte löschen. Eventuell müssen Sie Befehle für erneutes Binden absetzen, um die Pakete auf der Grundlage der aktuellen Statistikdaten erneut zu erstellen. Zu den DB2-Verwaltungsbefehlen gehören:
- RUNSTATS-Befehle
- Das erneute Generieren von Statistikdaten ist wichtig, nachdem eine Datenbank geändert wurde oder Daten in Tabellen geladen wurden.
- Reorganisationsbefehle
- Wenn eine Tabelle geändert wird, sollten Sie alle Indizes reorganisieren. Außerdem sollten Sie alle Tabellen und Indizes reorganisieren, wenn ein Tabellenbereich geändert wird. Optim Database
Administrator setzt bei der Vorwärtsentwicklung eines Modells standardmäßig REORG TABLE-Befehle ab, es sei denn, Sie inaktivieren diese Option im Assistenten Datenerhaltung anpassen auf der Seite Verwaltungsbefehle. Optim Database
Administrator generiert auch automatisch RUNSTATS-Befehle, um die Statistikdaten nach der Reorganisation einer Tabelle zu aktualisieren. Sie sollten auch alle Ihre Anwendungspakete erneut binden, um die reorganisierten Daten zu nutzen.
Weitere Informationen zur Auswirkung von Reorganisationsbefehlen finden Sie in der Befehlsreferenz zu DB2.
- Befehle für erneutes Binden
- Sie müssen Pakete erneut binden, wenn Ihre Änderungsbefehle die folgenden DROP-Anweisungen enthalten:
- TABLE
- TRIGGER
- MQT
- UDF
- VIEW
- ALIAS
- INDEX
- STRUCTURE TYPE
Nach dem Vornehmen mehrerer Änderungen sollten Sie Ihre Pakete erneut binden, um die Leistung zu verbessern. Optim Database
Administrator generiert Befehle für erneutes Binden für die Pakete, die von den im Änderungsmanagementscript definierten Änderungen betroffen sind.
- FLUSH PACKAGE CACHE-Befehle
- Nachdem die Statistikdaten aktualisiert wurden, führen Sie für den Paketcache eine Flushoperation aus, damit die dynamischen SQL-Anweisungen die aktualisierten Statistikdaten verwenden, was die Leistung verbessert.