Datenreplikationskomponenten in Oracle GoldenGate
Arten von Datenreplikationskonfigurationen
Oracle GoldenGate kann für die folgenden Zwecke konfiguriert werden:
-
Eine statische Extraktion von Datensätzen aus einer Datenbank und das Laden dieser Datensätze in eine andere Datenbank oder Datenquelle.
-
Kontinuierliche Extraktion und Replikation von DML-(Transactional Data Manipulation Language-)Vorgängen und DDL-(Data Definition Language-)Änderungen (für unterstützte Datenbanken), um die Konsistenz von Quell- und Zieldaten zu gewährleisten.
-
Datenextraktion aus unterstützten Datenbankquellen und Replikation auf Big Data- und Dateiziele mit Oracle GoldenGate Distributed Applications and Analytics.
Oracle GoldenGate-Prozesse
Extrahieren
Der Extract-Prozess ist so konfiguriert, dass er auf dem Quellendpunkt ausgeführt wird, von dem aus die festgeschriebenen Datenbanktransaktionen erfasst werden müssen. Dieser Prozess ist der Extraktions- oder Datenerfassungsmechanismus von Oracle GoldenGate.
Sie können den Extraktionsprozess so konfigurieren, dass Daten aus den folgenden Datenquellentypen erfasst werden:
-
Quelltabellen: Dieser Quelltyp wird für anfängliche Ladevorgänge verwendet.
-
Datenbank-Recovery-Logs oder Transaktionslogs: Während die Erfassung aus den Logs erfolgt, variiert die tatsächliche Methode je nach Datenbanktyp. Ein Beispiel für diesen Quelltyp sind die Oracle AI Database-Redo-Logs.
Weitere Informationen finden Sie unter Info zu Extract.
Replicat
Der Replicat-Prozess wendet die Aktualisierungen aus den Traildateien auf die Zieldatenbank an. Er liest die Traildatei in der Zieldatenbank, rekonstruiert die DML- oder DDL-Vorgänge und wendet sie auf die Zieldatenbank an.
Der Replicat-Prozess verwendet dynamisches SQL, um eine SQL-Anweisung einmal zu kompilieren und dann mehrmals mit verschiedenen Bind-Variablen auszuführen. Sie können den Replicat-Prozess so konfigurieren, dass er eine bestimmte Zeit wartet, bevor die replizierten Vorgänge auf die Zieldatenbank angewendet werden.
Beispielsweise kann eine Verzögerung wünschenswert sein, um die Propagierung von fehlerhaftem SQL zu verhindern, die Dateneingabe über verschiedene Zeitzonen hinweg zu steuern oder Zeit für andere geplante Ereignisse zu lassen.
Für die beiden gängigen Anwendungsfälle von Oracle GoldenGate funktioniert Replicat wie folgt:
-
Erste Ladevorgänge: Wenn Sie Oracle GoldenGate für anfängliche Ladevorgänge einrichten, wendet der Replicat-Prozess eine statische Datenkopie auf Zielobjekte an oder leitet die Daten an ein Hochgeschwindigkeits-Utility zum globalen Laden weiter.
-
Synchronisierung ändern: Wenn Sie Oracle GoldenGate so einrichten, dass die Zieldatenbank mit der Quelldatenbank synchronisiert bleibt, wendet der Replicat-Prozess die Quellvorgänge mit einer nativen Datenbankschnittstelle oder ODBC (je nach Datenbanktyp) auf die Zielobjekte an.
Sie können mehrere Replicat-Prozesse mit einem oder mehreren Extract-Prozessen parallel konfigurieren, um den Durchsatz zu erhöhen. Um die Datenintegrität zu wahren, verarbeitet jeder Prozess eine andere Gruppe von Objekten. Um zwischen Replicat-Prozessen zu unterscheiden, können Sie Replicat-Gruppen mit einem eindeutigen Gruppennamen erstellen.
Weitere Informationen zu verschiedenen Typen von Replicats-Modi finden Sie unter Info zu Replicat.
Verteilungspfade für Datentransport
Ein Verteilungspfad oder DISTPATH definiert den Pfad der Traildatei zwischen den Endpunkten. Der Verteilungspfad wird über den Verteilungsdienst konfiguriert. Weitere Informationen finden Sie unter Distribution Service.
Ein vom Ziel initiierter Verteilungspfad, der auch als Empfängerpfad oder RECVPATH bezeichnet wird, definiert den Pfad des Trails vom Empfangsservice zum Verteilungsservice in Umgebungen mit sicheren Zielendpunkten. Siehe Empfängerservicepfade hinzufügen.
Oracle GoldenGate-Objekte
Oracle GoldenGate-Objekte dürfen nicht direkt geändert werden. Die Änderung von Parameterdateien, Trails, Checkpoint-Dateien und Tabellen darf nur über REST-API-Aufrufe mit AdminClient und der Weboberfläche geändert werden.
Traildateien
Ein Trail ist eine Reihe von Dateien auf dem Datenträger, in denen Oracle GoldenGate die erfassten Änderungen speichert, um die kontinuierliche Extraktion und Replikation von Datenbankänderungen zu unterstützen.
Je nach Konfiguration von Oracle GoldenGate kann ein Trail auf dem Quellsystem, einem Zwischensystem, dem Zielsystem oder einer beliebigen Kombination dieser Systeme vorhanden sein. Auf dem lokalen System wird es als Extract-Trail (oder lokaler Trail) bezeichnet. Auf einem entfernten System wird es als Remote Trail bezeichnet. Durch die Verwendung eines Trails für Speicher unterstützt Oracle GoldenGate die Datengenauigkeit und Fehlertoleranz. Durch die Verwendung eines Trails können Extraktions- und Replikationsaktivitäten unabhängig voneinander durchgeführt werden. Wenn diese Prozesse getrennt sind, haben Sie mehr Möglichkeiten, wie Daten verarbeitet und bereitgestellt werden. Beispiel: Anstatt Änderungen kontinuierlich zu extrahieren und zu replizieren, können Sie sie kontinuierlich extrahieren und zur späteren Replikation auf das Ziel im Trail speichern, wenn die Zielanwendung sie benötigt.
Darüber hinaus können Trails in einer heterogenen Umgebung von Oracle AI Database ausgeführt werden. Die Daten werden in einer Traildatei in einem konsistenten Format gespeichert, sodass sie vom Replicat-Prozess für alle unterstützten Datenbanken gelesen werden können.
Prozesse, die in die Traildatei schreiben
Oracle GoldenGate Extract schreibt in die Traildatei. Alle lokalen Trails müssen unterschiedliche Namen für Vollpfade haben, obwohl Sie dieselben Trailnamen in verschiedenen Pfaden verwenden können.
In Oracle GoldenGate MA werden Verteilungspfade und Empfängerpfade verwendet, um Remotetrails zu verteilen. Mit dem Verteilungsservice und dem Empfangsdienst werden der Verteilungspfad bzw. der Empfängerpfad konfiguriert. Der Verteilungspfad überträgt den Trail über ein Netzwerk auf definierte Ziele. Der Trail kann Daten aus mehreren Extracts enthalten, die an ein Remote-System übertragen werden.
Prozesse, die aus der Traildatei gelesen werden
Die Replicat-Prozesse und der Verteilungspfad werden aus den Traildateien gelesen. Extract erfasst DML- und DDL-Vorgänge mit einem lokalen Trail, führt bei Bedarf eine weitere Verarbeitung durch und überträgt die Daten in einen Trail, der vom nächsten Oracle GoldenGate-Prozess, dem Replicat, gelesen wird.
Im Falle einer verteilten Bereitstellung liest ein Distribution Service-Prozess die Remote-Traildatei und sendet sie über das Netzwerk an einen wartenden Receiver Service-Prozess.
Der Replicat-Prozess liest den Trail und wendet die replizierten DML- und DDL-Vorgänge auf die Zieldatenbank an.
Erstellung und Verwaltung von Traildateien
Die Traildateien werden bei Bedarf während der Verarbeitung erstellt. Sie geben einen aus zwei Zeichen bestehenden Namen für den Trail an, wenn Sie ihn zur Oracle GoldenGate-Konfiguration hinzufügen. Standardmäßig werden Trails im Unterverzeichnis des Oracle GoldenGate-Verzeichnisses gespeichert. Sie können eine neunstellige Folgenummer für die Traildatei angeben.
Wenn jede neue Datei erstellt wird, erbt sie den aus zwei Zeichen bestehenden Trailnamen, an den eine eindeutige neunstellige Folgenummer von 000000000 bis 99999999 angehängt ist. Wenn die Folgenummer 999.999.999 oder 999.999 (je nach vorheriger Einstellung) erreicht, wird der Extract-Prozess abgebrochen.
Traildateien können routinemäßig gelöscht werden, indem automatisierte Wartungsaufgaben eingerichtet werden, um Traildateien zu löschen, oder Traildateien manuell aus dem Administrationsservice gelöscht werden. Siehe Traildateien löschen und Trails löschen
Sie können mehrere Trails erstellen, um die Daten von verschiedenen Objekten oder Anwendungen zu trennen. Um den Durchsatz zu maximieren und die I/O-Belastung des Systems zu minimieren, werden extrahierte Daten in großen Blöcken in einen und aus einem Trail gesendet. Die Transaktionsreihenfolge der Traildatei oder der Trailsequenz wird beibehalten.
Parameterdateien
Die meisten Oracle GoldenGate-Funktionen werden über Parameter gesteuert, die in Parameterdateien angegeben sind. Eine Parameterdatei ist eine Nur-Text-Datei, die von einem zugehörigen Oracle GoldenGate-Prozess gelesen wird.
Oracle GoldenGate Microservices Architecture verwendet die folgenden Laufzeitparameter:
-
Globale Laufzeitparameter: Diese unterscheiden sich vom GLOBALS-Parameter. Sie gelten für alle Datenbankobjekte, die in einer Parameterdatei angegeben sind. Einige globale Laufzeitparameter wirken sich auf das Prozessverhalten aus, während andere sich auf die Speicherauslastung auswirken.
USERIDALIASist ein Beispiel für einen globalen Laufzeitparameter. Ein globaler Parameter darf nur einmal in der Datei aufgeführt werden. Wenn mehr als einmal aufgeführt, ist nur die letzte Instanz aktiv, und alle anderen Instanzen werden ignoriert. -
Objektspezifischer Parameter: Mit diesen Parametern können Sie verschiedene Verarbeitungsregeln für verschiedene Gruppen von Datenbankobjekten anwenden.
GETINSERTSundIGNOREINSERTSsind Beispiele für objektspezifische Parameter. Jeder Befehl steht vor einerMAP-Anweisung, die angibt, welche Objekte betroffen sein sollen. Objektspezifische Parameter werden in der Reihenfolge ihrer Auflistung in der Datei wirksam.
Laufzeitparameter ermöglichen die Steuerung verschiedener Aspekte der Oracle GoldenGate-Synchronisierung, wie:
-
Datenauswahl, Zuordnung, Transformation und Replikation
-
Auswahl, Zuordnung und Replikation von DDL und Sequence (sofern unterstützt)
-
Fehlerbehebung
-
Protokollierung
-
Status- und Fehlerberichte
-
Systemressourcenauslastung
-
Start- und Laufzeitverhalten
Obwohl mehrere Extracts und Replicats in einem einzelnen Deployment ausgeführt werden können, kann jede einzelne Parameterdatei nur mit einer einzelnen Parameterdatei verknüpft werden. Extrakte und Replikate werden durch den Namen identifiziert, bei dem die Groß-/Kleinschreibung nicht beachtet wird. Beispiel: Ein Extract mit dem Namen exte hätte 1 zugehörige Parameterdatei mit dem Namen exte.prm.
Checkpoint-Dateien und -Tabellen
Oracle GoldenGate verwendet eine Kombination aus Checkpoint-Dateien, Checkpoint-Tabellen und entsprechenden Werten in den Traildateien, um sicherzustellen, dass die Daten genau einmal auf die Zielplattform angewendet werden. Oracle GoldenGate verwendet diese Objekte, um die ordnungsgemäße Replikation von Daten sicherzustellen, und zu Recovery-Zwecken, wenn die Quelldatenbank, die Zieldatenbank oder Oracle GoldenGate selbst ausfallen oder abstürzen. Diese Objekte sind für den Zustand von Oracle GoldenGate von entscheidender Bedeutung und sollten niemals ohne direkte Anleitung von Oracle Support geändert oder geändert werden.
Siehe Weitere Details zu Checkpoint-Tabellen.
Checkpointverwendung nach Extract, Pfad und Replicat
Checkpoints werden während der Onlineänderungssynchronisierung verwendet, um die aktuelle Lese- und Schreibposition eines Prozesses zu speichern. Checkpoints stellen sicher, dass für die Synchronisierung markierte Datenänderungen extrahiert werden und redundante Extraktionen verhindert werden. Sie bieten Fehlertoleranz, indem sie den Datenverlust verhindern, wenn das System, das Netzwerk oder ein Oracle GoldenGate-Prozess neu gestartet werden muss.
Extract, Path (Extract) und Delivery (Replicat) speichern Positionen in einer Checkpoint-Datei, um ein Recovery bei einem Fehler zu ermöglichen. Extract erstellt Checkpoints für seine Positionen in der Datenquelle und im Trail. Replicat erstellt Checkpoints für seine Position im Trail. Das folgende Diagramm veranschaulicht diesen Workflow:

Checkpoint-Informationen werden in Checkpoint-Dateien im Oracle GoldenGate-Standardverzeichnis verwaltet: $OGG_VAR_HOME/lib/checkpt
Dies darf nicht mit der optionalen Checkpoint-Tabelle verwechselt werden, die in der Datenbank gespeichert ist. Extract platziert einen Schreib-Checkpoint, der als aktueller Checkpoint bezeichnet wird, im Trail. Der aktuelle Checkpoint ist die Position im Trail, an der Extract gerade schreibt.
Checkpoints speichern die aktuelle Lese-/Schreibposition eines Prozesses. Sie verhindern redundante Extraktionen und sorgen für Fehlertoleranz.
Oracle GoldenGate verwendet die Checkpoints nur zu Informationszwecken, da die Source of Truth in den Traildateien enthalten ist.
Pfad-Checkpoint
Der Checkpoint "Verteilungsservicepfad" bietet eine zusätzliche Zuverlässigkeitsebene für die Microservices-Architektur, wenn Traildateien zwischen Deployments übertragen werden. In der folgenden Abbildung wird der Checkpoint-Mechanismus DISTPATH beschrieben, der in Deployments verwendet wird.

Der aktuelle Lesevorgang ist der Checkpoint dessen, was zuletzt gelesen wurde. Der Checkpoint prüft jede Sekunde auf Änderungen. Diese Häufigkeit ist konfigurierbar. Der Schreib-Checkpoint identifiziert, was zuletzt in den Trail geschrieben wurde. Oracle GoldenGate verfolgt die Schreibposition im Trail.
Der Verteilungsservicepfad kennt keine offenen Transaktionen, weil sie nur die festgeschriebenen Datensätze verarbeiten.
Replicat-Checkpoint
Replicat macht Checkpoints in der Checkpoint-Tabelle, um die letzte Lese- und Apply-Position zu markieren.
Um Prozess-Checkpoints anzuzeigen, verwenden Sie den Befehl INFO REPLICAT mit der Option SHOWCH. Der Basisbefehl zeigt aktuelle Checkpoints an.
Der aktuelle Checkpoint ist die Position des letzten Datensatzes, der von Replicat im Trail gelesen und auf die Datenbank angewendet wurde. Die Source of Truth für angewendete Transaktionen ist die Checkpoint-Tabelle. Die Checkpoint-Datei, die von Replicat- und INFO-Befehlen verwendet wird, sind nur ungefähre und Advisory-Informationen. Sehen Sie sich die folgende Abbildung an, um diesen Workflow zu verstehen:
