Tabellen für die Verarbeitung vorbereiten

Die Tabellenattribute in den folgenden Abschnitten müssen in Ihrer Oracle GoldenGate-Umgebung adressiert werden.

Replicat-Überlegungen für Zielidentitätsspalten, Trigger und Constraints

Wenn Sie Daten in eine SQL Server-Zieldatenbank replizieren, die Identitätsspalten, Trigger sowie Constraints für die Kaskadierung und Prüfung enthält, beachten Sie Folgendes:

Um diese Situationen zu überwinden, gibt es mehrere Optionen, die basierend auf dem Replikationsanwendungsfall implementiert werden können.

Verbesserung der IDENTITY-Replikation mit Array-Verarbeitung

Da für nur eine Tabelle pro Session IDENTITY_INSERT auf ON gesetzt werden kann, muss Replicat IDENTITY_INSERT kontinuierlich umschalten, wenn IDENTITY-Daten auf mehrere Tabellen in einer Session angewendet werden. Um die Performance von Replicat in dieser Situation zu verbessern, verwenden Sie den Parameter BATCHSQL. BATCHSQL bewirkt, dass Replicat die Arrayverarbeitung verwendet, anstatt SQL-Anweisungen einzeln anzuwenden.

Zeileneindeutigkeit in Quell- und Zieltabelle sicherstellen

Für Oracle GoldenGate ist eine eindeutige Zeilen-ID in den Quell- und Zieltabellen erforderlich, um die richtigen Zielzeilen für replizierte Aktualisierungen und Löschvorgänge zu finden.

Sofern keine KEYCOLS-Klausel in der TABLE- oder MAP-Anweisung verwendet wird, wählt Oracle GoldenGate eine Zeilen-ID aus, die in der folgenden Prioritätsreihenfolge verwendet werden soll:

  1. Primärschlüssel

  2. Erster eindeutiger Schlüssel alphanumerisch, der keinen Zeitstempel oder keine nicht materialisierte berechnete Spalte enthält.

  3. Wenn keiner der oben genannten Schlüsseltypen vorhanden ist (auch wenn andere Schlüsseltypen in der Tabelle definiert sind), erstellt Oracle GoldenGate einen Pseuderschlüssel aller Spalten dass die Datenbank die Verwendung in einem eindeutigen Schlüssel zulässt, ausgenommen diejenigen, die von Oracle GoldenGate nicht in einem Schlüssel unterstützt werden, oder solche, die von der Oracle GoldenGate-Konfiguration ausgeschlossen sind. Hinweis: Wenn andere, nicht verwendbare Schlüssel in einer Tabelle vorhanden sind oder keine Schlüssel in der Tabelle vorhanden sind, protokolliert Oracle GoldenGate eine entsprechende Meldung in der Berichtsdatei. Wenn Sie einen Schlüssel aus allen Spalten erstellen, wird die Performance von Oracle GoldenGate im Quellsystem beeinträchtigt. Auf dem Ziel führt dieser Schlüssel dazu, dass Replicat eine größere, weniger effiziente WHERE-Klausel verwendet.

  1. Wenn eine Tabelle über keinen geeigneten Schlüssel verfügt oder die vorhandenen Schlüssel nicht verwendet werden sollen, können Sie einen Ersatzschlüssel definieren, wenn die Tabelle Spalten enthält, die immer eindeutige Werte enthalten. Sie definieren diesen Ersatzschlüssel, indem Sie eine KEYCOLS-Klausel in den Extract TABLE-Parameter und den Replicat MAP-Parameter aufnehmen. Der angegebene Schlüssel überschreibt alle vorhandenen Primär- oder eindeutigen Schlüssel, die Oracle GoldenGate findet. Siehe TABLE | MAP in Referenz für Oracle GoldenGate.

Verwenden von KEYCOLS zur Angabe eines benutzerdefinierten Schlüssels

Wenn eine Tabelle keine anwendbare Zeilen-ID aufweist oder wenn Sie es vorziehen, dass IDs nicht verwendet werden, können Sie einen Ersatzschlüssel definieren, vorausgesetzt, die Tabelle enthält Spalten, die immer eindeutige Werte enthalten. Sie definieren diesen Ersatzschlüssel, indem Sie eine KEYCOLS-Klausel in den Extract TABLE-Parameter und den Replicat MAP-Parameter aufnehmen. Der angegebene Schlüssel überschreibt alle vorhandenen Primär- oder eindeutigen Schlüssel, die Oracle GoldenGate findet.