Aktualisierung für eine Subskription starten
Die Aktualisierungsoperation CDC Replication ist für die Synchronisation von Quellen-und Zieltabellen konzipiert.
Informationen zu dieser Task
Die Synchronisation von Tabellen kann z. B. aus den folgenden Gründen verlorengehen:
- Geparkte Tabellen
- Wenn eine Tabelle während der Replikation für eine bestimmte Zeitdauer geparkt wird, um Änderungen (z. B. die Aktualisierung der Definition einer Quellentabelle) durchzuführen, dann werden die in der Quelle durchgeführten Änderungen nicht mehr repliziert.
- Konfigurationsänderungen
- Eine Aktualisierung kann notwendig werden, wenn eine Gruppe von Subskriptionen von einer Testumgebung in eine Produktionsumgebung hochgestuft wird.
- Wartungsoperationen
- Umfangreiche SQL-Massenoperationen, die während der Wartungszeiten für die Quellentabelle ausgeführt werden und bewirken, dass die Resynchronisation mit einer Aktualisierung für die Mehrzahl der Zeilen schneller ausgeführt werden kann. Die Aktualisierung kann beim Replizieren von Millionen von Änderungen schneller sein als die Spiegelung, weil die Zeilen mit einer Massenladeoperation in die Zieldatenbank geladen werden können.
Wenn Sie über eine Subskription verfügen, die eine Zieltabelle enthält, die nicht mit der Quellentabelle synchronisiert ist, dann können Sie die Quellentabelle für eine Aktualisierung markieren. Tabellen, die zur Aktualisierung markiert sind und mit der Replikationsmethode 'Spiegeln' arbeiten, werden aktualisiert, bevor die Spiegelung beginnt.
CDC Replication aktualisiert alle markierten Tabellen innerhalb einer einzelnen Subskription als eine sequenzielle Operation, die vollständig ausgeführt wird. Jede Tabelle wird einzeln nacheinander aktualisiert, bis die Aktualisierung aller markierten Tabellen abgeschlossen ist. Bei der Aktualisierung handelt es sich um eine Operation, die für eine einzelne Subskription gilt, sodass von der Aktualisierung einer Subskription andere Subskriptionen nicht betroffen sind. Sie können weiterhin Daten für unterschiedliche Tabellen spiegeln oder Tabellen nach Bedarf aktualisieren. Zur Ausführung einer parallelen Aktualisierung können mehrere Subskriptionen verwendet werden.
Regelbasierte Tabellen werden bei der Aktualisierung nicht einbezogen. Wenn Sie in der Managementkonsoleeine Aktualisierung starten, wird eine Warnung angezeigt, die darauf hinweist, dass die von Regeln ausgewählten Tabellen nicht aktualisiert werden.
CDC Replication bietet zwei Arten von Aktualisierungsoperationen: Standardaktualisierung und Teilaktualisierung.
Eine Standardaktualisierung führt dazu, dass eine vollständige Kopie der Daten in einer Quellentabelle an die Zieltabelle gesendet wird. Bei dieser Operation wird der Inhalt der Zieltabelle abgeschnitten oder gelöscht. Anschließend wird der neue Inhalt eingefügt, der vom Quellensystem gesendet wurde.
Bei einer Teilaktualisierung wird die Zieltabelle aktualisiert, indem nur die Unterschiede zwischen ihr und der Quellentabelle angewendet werden. Anstatt den Inhalt der Zieltabelle zu Beginn der Aktualisierung zu löschen und sie dann mit neuen Daten zu füllen, wie dies bei der Standardaktualisierung der Fall ist, wird bei der Teilaktualisierung jede Zeile in der Zieltabelle mit jeder Zeile in der Quellentabelle verglichen, um fehlende, geänderte oder neu hinzugekommene Zeilen zu identifizieren. Der Hauptvorteil der Teilaktualisierung besteht darin, dass die Zieltabelle während der Aktualisierungsoperation im Onlinemodus verbleiben kann.
Es gibt drei Verfahren zur Durchführung einer Teilaktualisierung:
- Nur Inhalt aktualisieren
- Führt eine Teilaktualisierung aus, bei der alle Zielzeilen geändert werden, die von den Quellenzeilen abweichen.
- Inhalt aktualisieren und Unterschiede protokollieren
- Führt eine Teilaktualisierung aus und erstellt eine Protokolltabelle in den Metadaten der Zielreplikationsengine, um alle Änderungen, die während der Aktualisierung ausgeführt wurden, zu protokollieren.
- Nur Unterschiede protokollieren
- Erstellt eine Protokolltabelle in den Metadaten der Zielreplikationsengine und füllt sie mit Daten. Auf diese Weise werden alle Unterschiede zwischen Quellen- und Zieltabellen identifiziert.
Für die Ausführung einer Teilaktualisierung gelten bestimmte Voraussetzungen und Einschränkungen:
- Die Teilaktualisierung steht nur für Tabellen zur Verfügung, die die Standardreplikation verwenden.
- Die Sortierfolge der Quellen- und Zieltabellen muss identisch sein.
- Abgeleitete Spalten in der Quellentabelle werden nicht unterstützt.
- Alle Zielspalten, die abgeleiteten Ausdrücken, Konstanten oder Journalsteuerfeldern zugeordnet sind, werden ignoriert.
- Die Schlüsselspalten der Zieltabelle müssen direkt den Spalten der Quellentabelle zugeordnet werden.
- Die Zieltabelle muss über einen eindeutigen Schlüssel verfügen. Dabei kann es sich entweder um einen Primärschlüssel oder einen eindeutigen Index handeln, der mindestens eine Spalte enthält, die keine Nullwerte enthalten darf.
- Bei der Teilaktualisierung werden die Optionen Alle durchsuchbaren Spalten verwenden und Schlüssel angeben nicht unterstützt, wenn Sie Schlüsselspalten für die Tabellenzuordnung angeben. Nur die Option Index verwenden ist gültig.
Sowohl eine Standard- als auch eine Teilaktualisierung können mithilfe einer SQL-WHERE-Klausel verfeinert werden, sodass sie nur Zeilen innerhalb eines bestimmten Bereichs umfasst. Dies ist nützlich für Tabellen, bei denen nur die aktuellsten Daten aktualisiert werden müssen.
- Der Tabellenerfassungspunkt wurde entweder explizit oder über die Tabelle festgelegt, die in Management Console oder im CHCCLP-Programm gespiegelt wurde.
- Der Scraping-Punkt für die Subskription wurde (mit dem Befehl SETLOGPOS oder dem Befehl dmsetbookmark) gesetzt.
Die Reihenfolge, in der Daten während einer Aktualisierung aus der Datenbank abgerufen werden, hängt vom Typ der ausgeführten Aktualisierung ab. Während einer Standardaktualisierung wird keine ORDER BY-Sortierung ausgeführt. Die Datenbank legt die Reihenfolge fest, in der Daten zurückgegeben werden. Während einer Teilaktualisierung fragt CDC Replication die Datenbank unter Verwendung einer ORDER BY-Sortierung für die Tabelle ab. Zum Sortieren der Quellen- und Zieltabellen sowie zum Ermitteln der Unterschiede wird entweder ein Primärschlüssel oder ein eindeutiger Indexschlüssel ausgewählt.
Wenn eine Aktualisierung mit mehreren Tabellen ausgeführt wird, dann basiert die Reihenfolge, in der jede einzelne Tabelle aktualisiert wird, auf der Gruppenreihenfolge, die in der Option 'Aktualisierungsreihenfolge' angegeben wurde.
Nach erfolgreichem Abschluss einer Aktualisierung kann die Subskription für die Spiegelung erneut gestartet werden. CDC Replication verarbeitet dann den Rückstand der Änderungen. Bei Tabellen, die nicht aktualisiert wurden, setzt CDC Replication die Verarbeitung von Änderungen ab der Position fort, an der die Spiegelung beendet wurde. Für Tabellen, die aktualisiert wurden, verarbeitet CDC Replication alle Änderungen, die nach Beginn der Aktualisierung für diese Tabelle festgeschrieben wurden.
- Wenn Sie CDC Replication in einer bidirektionalen Konfiguration verwenden, müssen Sie beim Aktualisieren einer Tabelle von Seite A auf Seite B sicherstellen, dass die folgenden Bedingungen erfüllt sind:
- Für diese Tabelle werden während der Aktualisierung keine Verarbeitungsprozesse für die Anwendung auf Seite B ausgeführt.
- Die Tabelle wird nicht von Seite B auf Seite A gespiegelt.
- Nach Abschluss der Aktualisierung und bevor Sie die Verarbeitungsprozesse wieder zu Seite B hinzufügen, müssen Sie den Befehl dmmarktablecapturepoint für diese Tabelle ausführen.
- Eine differenzielle Aktualisierung ist nicht verfügbar für CDC Replication Engine für InfoSphere® DataStage® CDC Replication Engine für Netezza®, CDC Replication Engine für FlexRep, Kafka oder CDC Replication Engine für Db2 for i.
- Db2 for z/OS: Wenn für eine Subskription für CDC Replication Engine for Db2 for z/OSkeine Aktualisierungsreihenfolge festgelegt ist, werden die Tabellen in alphabetischer Reihenfolge aktualisiert.