Die Oracle CDC-Instanz

Von Bedeutung

Change Data Capture für Oracle von Attunity ist inzwischen veraltet. Weitere Details finden Sie in der Ankündigung.

Die Oracle CDC-Instanz ist ein Prozess, der vom Oracle CDC Service erstellt wurde, um Änderungen zu verarbeiten, die aus einer einzigen Oracle-Quelldatenbank erfasst wurden. Die Oracle CDC-Instanz ruft ihre Konfiguration aus der cdc.xdbcdc_config Tabelle ab und verwaltet ihren Zustand in der cdc.xdbcdc_state Tabelle. Diese Tabellen sind Teil der CDC-Datenbank, die die Oracle CDC-Instanz definiert. Weitere Informationen zur xdbcdc-Datenbank und -Tabellen finden Sie in den CDC-Datenbanken.

Im Folgenden werden die aufgaben beschrieben, die von der Oracle CDC-Instanz ausgeführt werden:

  • Handhabung der Verifizierung des Dienststarts: Beim Starten lädt die CDC-Instanz ihre Konfiguration aus der xdbcdc_config Tabelle und führt eine Reihe von Statusüberprüfungen durch, die sicherstellen, dass der persistente Zustand der CDC-Instanz konsistent ist und dass sie mit der Verarbeitung von Änderungen beginnen kann.

  • Vorbereiten der Änderungserfassung: Wenn die Überprüfung erfolgreich bestanden wurde, überprüft die Oracle CDC-Instanz alle derzeit definierten Aufnahmeinstanzen und bereitet die Oracle LogMiner-Abfragen und andere Supportstrukturen vor, die für die Änderungserfassung erforderlich sind. Darüber hinaus lädt die Oracle-Instanz den internen Aufnahmestatus erneut, der beim letzten Ausführen der Oracle CDC-Instanz gespeichert wurde.

  • Erfassen von Änderungen aus Oracle: Die Oracle CDC-Instanz fasst Änderungen aus Oracle mithilfe der Oracle LogMiner-Funktion zusammen, ordnet sie nach Transaktionscommit, ändert dann die Zeit in einer Transaktion und schreibt sie in die SQL Server-Änderungstabellen in der CDC-Datenbank.

  • Abwicklung des Dienstabschaltungsprozesses: Der Lebenszyklus der Oracle CDC-Instanz wird vom Oracle CDC-Dienst verwaltet. Wenn die Oracle CDC-Instanz zum Herunterfahren angefordert wird, führt sie die folgenden Aufgaben aus:

    • Beendet das Lesen aus dem Oracle-Transaktionsprotokoll.

    • Stoppt das Schreiben abgeschlossener Oracle-Transaktionen in die CDC-Datenbank.

    • Wartet gegebenenfalls bis zu 30 Sekunden, bis die aktuelle Transaktion das Schreiben in die CDC-Datenbank abgeschlossen hat. Wenn mehr als 30 Sekunden vergehen, wird der Schreibvorgang abgebrochen und die Transaktion rückgängig gemacht (und erneut versucht, wenn die CDC-Instanz neu gestartet wird).

    • Schreibt in einem separaten Thread so viele zwischengespeicherte Datensätze im Arbeitsspeicher wie möglich in die mehrstufige Transaktionstabelle für bis zu 30 Sekunden (von der ältesten Transaktion bis zum neuesten), aktualisiert dann die xdbcdc_state Tabelle und führt einen Commit für alle Änderungen durch.

  • Behandeln von Konfigurationsänderungen: Die Oracle CDC-Instanz wird über Konfigurationsänderungen vom CDC-Dienst oder durch Erkennen einer neuen Version in der cdc.xdbcdc_config Tabelle benachrichtigt. Die meisten Änderungen erfordern keinen Neustart der Oracle CDC-Instanz (z. B. Hinzufügen oder Entfernen von Aufnahmeinstanzen). Einige Änderungen, z. B. das Ändern der Oracle-Verbindungszeichenfolge oder Zugriffsanmeldeinformationen, erfordern jedoch den Neustart der CDC-Instanz.

  • Behandeln der Wiederherstellung: Wenn eine Oracle CDC-Instanz gestartet wird, wird ihr interner Status aus den Tabellen xdbcdc_state und xdbcdc_staged_transactions wiederhergestellt. Sobald der Zustand wiederhergestellt wurde, fährt die CDC-Instanz wie gewohnt fort.