Oracle-Quelldatenbank

Dieser Abschnitt enthält Informationen über:

  • Der Umgang von Datastream mit Daten, die aus einer Oracle-Quelldatenbank abgerufen werden
  • Die von Datastream unterstützten Versionen der Oracle-Datenbank
  • Eine Übersicht über das Einrichten einer Oracle-Quelldatenbank, damit Daten daraus an ein Ziel gestreamt werden können
  • Bekannte Einschränkungen bei Verwendung der Oracle-Datenbank als Quelle

Verhalten

Datastream unterstützt zwei Methoden zum Extrahieren von Änderungen an den Daten aus Online-Redo-Logdateien: das Oracle-Binärlog-Leseprogramm (Vorabversion) und Oracle LogMiner.

Bei der Methode „Binäres Log lesen“ (Vorschau) wird das folgende Verhalten beobachtet:

  • Wenn beim Extrahieren der Änderungen aus den Online-Logdateien eine Leseverzögerung auftritt, extrahiert Datastream die Änderungen aus archivierten Logdateien.

  • Datastream repliziert nur Änderungen, für die ein Commit durchgeführt wurde, in das Ziel. Nicht festgeschriebene oder zurückgesetzte Transaktionen werden nicht repliziert.

  • Das binäre Leseprogramm unterstützt die Replikation von Oracle-VARCHAR2-Spalten mit einer Länge von mehr als 4.000 Zeichen.

Datastream unterstützt auch das Oracle LogMiner-Feature, um Änderungen an den Daten aufzuzeigen. Die Methode hat das folgende Verhalten:

  • Es können alle Schemas oder bestimmte Schemas einer bestimmten Datenbank sowie alle Tabellen der Schemas oder bestimmte Tabellen ausgewählt werden.
  • Alle Verlaufsdaten werden repliziert.
  • Alle DML-Änderungen (Data Manipulation Language, DML) wie Einfügungen, Aktualisierungen und Löschungen aus den angegebenen Datenbanken und Tabellen werden repliziert.
  • Datastream repliziert sowohl Änderungen, für die ein Commit durchgeführt wurde, also auch (in einigen Fällen) Änderungen, für die kein Commit durchgeführt wurde. Datastream liest Änderungen, für die kein Commit durchgeführt wurde. Bei einem Rollback enthalten die Datastream-Ausgabedatensätze auch den umgekehrten Vorgang. Wenn es beispielsweise einen Rollback-Vorgang INSERT gibt, enthalten die Ausgabedatensätze auch einen entsprechenden DELETE-Vorgang. In diesem Fall wird das Ereignis als DELETE-Ereignis angezeigt, das nur ROWID enthält.

ROWID-basierter Backfill

In Oracle ist ROWID eine Pseudospalte, in der eindeutige Kennungen für Zeilen in einer Tabelle gespeichert werden. Datastream verwendet die ROWID-Werte für seine Backfill-Vorgänge. Aus diesem Grund empfehlen wir, bis zum Abschluss des Backfill-Vorgangs keine Aktionen auszuführen, die die ROWID-Werte in Ihrer Oracle-Quelldatenbank ändern könnten.

Die Aktionen, die die ROWID-Werte ändern können, sind:

  • Physische Bewegung von Zeilen:

    • Export- und Importvorgänge: Wenn Sie eine Tabelle exportieren und dann wieder importieren, kann sich der physische Speicherort von Zeilen ändern, was zu neuen ROWID-Werten führt.
    • ALTER TABLE (...) MOVE-Befehl: Wenn Sie eine Tabelle in einen anderen Tabellenbereich verschieben, kann sich der physische Speicher ändern und zu ROWID-Änderungen führen.
    • ALTER TABLE (...) SHRINK SPACE-Befehl: Mit diesem Befehl wird die Tabelle komprimiert. Dabei werden möglicherweise Zeilen verschoben, was sich auf ihre ROWID-Werte auswirkt.
    • Partitionierungsvorgänge: Durch das Aufteilen, Zusammenführen oder Verschieben von Partitionen kann sich die physische Platzierung von Zeilen und deren ROWID-Werte ändern.
  • Flashback-Vorgänge:

    • FLASHBACK TABLE-Befehl: Wenn Sie eine Tabelle in einen früheren Zustand zurückversetzen, werden Zeilen gelöscht und neu eingefügt. Dadurch werden neue ROWID-Werte erstellt.
    • FLASHBACK_TRANSACTION_QUERY: Ähnlich wie FLASHBACK TABLE. Wenn Sie eine Transaktion rückgängig machen, kann dies zu ROWID-Änderungen führen, wenn Zeilen innerhalb der Transaktion gelöscht oder aktualisiert wurden.

Versionen

Datastream unterstützt die folgenden Versionen der Oracle-Datenbank:

  • Oracle 11g, Version 11.2.0.4 (wird nur mit der Logminer-CDC-Methode unterstützt)
  • Oracle 12c, Version 12.1.0.2
  • Oracle 12c, Version 12.2.0.1
  • Oracle 18c
  • Oracle 19c
  • Oracle 21c

Datastream unterstützt die folgenden Arten von Oracle-Datenbanken:

  • Selbst gehostet, lokal oder bei einem beliebigen Cloud-Anbieter
  • Amazon RDS für Oracle
  • Oracle Cloud
  • Oracle Exadata
  • Oracle RAC
  • Oracle Active Data Guard-Standby-Datenbank

Einrichtung

Damit Sie eine Oracle-Quelldatenbank so einrichten können, dass Daten aus ihr in ein Ziel gestreamt werden können, muss die Datenbank so konfiguriert werden, dass sie Zugriff gewährt, eine Logging-Funktion einrichtet und eine Aufbewahrungsrichtlinie definiert.

Unter Oracle-Quelldatenbank konfigurieren wird erläutert, wie Sie diese Datenbank so konfigurieren, dass Datastream Daten aus einem Datenbankziel abrufen kann.

Bekannte Einschränkungen

Bekannte Einschränkungen bei Verwendung der Oracle-Datenbank als Quelle:

  • Streams sind auf 10.000 Tabellen beschränkt. Wenn ein Stream mehr als 10.000 Tabellen enthält, können Fehler auftreten.
  • Datastream unterstützt die mehrmandantenfähige Architektur von Oracle (CDB/PDB). Sie können jedoch nur eine einzelne Plug-in-Datenbank in einem Stream replizieren.
  • Oracle Autonomous Database wird nicht unterstützt.
  • Bei Tabellen ohne Primärschlüssel verwendet Datastream die ROWID der Zeile, um auf Nutzerseite einen Merge-Vorgang auszuführen. Beachten Sie, dass die ROWID möglicherweise nicht eindeutig ist. Wenn Sie beispielsweise eine Zeile mit dem Export-/Importdienstprogramm von Oracle löschen und neu einfügen, kann sich die ROWID der Zeile ändern. Wenn Sie eine Zeile löschen, kann Oracle ihre ROWID einer später eingefügten neuen Zeile neu zuweisen.
  • Indexbasierte Tabellen (Index-organized Tables, IOTs) werden nicht unterstützt.
  • Temporäre Tabellen werden nicht unterstützt.
  • Spalten der Datentypen ANYDATA, BFILE, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH, LONG/LONG RAW, SDO_GEOMETRY, UDT, UROWID, XMLTYPE werden nicht unterstützt und werden durch NULL-Werte ersetzt.
  • Wenn Sie Spalten mit großen Objektdatentypen wie binären großen Objekten (BLOB), großen Zeichenobjekten (CLOB) und großen nationalen Zeichenobjekten (NCLOB) streamen möchten, müssen Sie das Flag streamLargeObjects in Ihre Streamkonfiguration aufnehmen. Wenn Sie das Flag nicht angeben, werden solche Spalten nicht in Datastream übertragen und in der Zielumgebung durch NULL-Werte ersetzt. Weitere Informationen finden Sie unter Streaming großer Objekte für Oracle-Quellen aktivieren.
  • Bei Oracle 11g werden Tabellen mit Spalten vom Datentyp ANYDATA oder UDT nicht unterstützt und die gesamte Tabelle wird nicht repliziert.
  • Oracle Label Security (OLS) wird nicht repliziert.
  • Datastream ruft das aktuelle Schema regelmäßig von der Quelle ab, während Ereignisse verarbeitet werden. Wenn sich ein Schema ändert, werden möglicherweise einige Ereignisse aus dem neuen Schema gelesen, während das alte Schema noch angewendet wird. In diesem Fall erkennt Datastream die Schemaänderung, löst einen Schemaabruf aus und verarbeitet die fehlgeschlagenen Ereignisse noch einmal.
  • Nicht alle Änderungen am Quellschema können automatisch erkannt werden. Dies kann zu Datenbeschädigungen führen. Die folgenden Schemaänderungen können zu Datenbeschädigungen oder Fehlern bei der nachgelagerten Verarbeitung der Ereignisse führen:
    • Spalten entfernen
    • Spalten in der Mitte einer Tabelle einfügen
    • Datentyp einer Spalte ändern
    • Spalten neu sortieren
    • Tabellen löschen (relevant, wenn dieselbe Tabelle anschließend mit neuen Daten neu erstellt wird)
    • Tabellen kürzen
  • Datastream unterstützt keine Replikation von Ansichten.
  • Datastream unterstützt materialisierte Ansichten. Für neue Ansichten, die während der Ausführung des Streams erstellt werden, erfolgt jedoch kein automatischer Backfill.
  • Bei Verwendung der Oracle LogMiner-Methode werden SAVEPOINT-Anweisungen nicht unterstützt und können im Falle eines Rollbacks zu Datenabweichungen führen.
  • Wenn Sie die Oracle LogMiner-Methode verwenden, unterstützt Datastream die Replikation von Tabellen und Spalten, deren Namen länger als 30 Zeichen sind, nicht.
  • Datastream unterstützt die folgenden Zeichensatzcodierungen für Oracle-Datenbanken:
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • IW8ISO8859P8
    • JA16SJIS
    • JA16SJISTILDE
    • KO16MSWIN949
    • US7ASCII
    • UTF8
    • WE8ISO8859P1
    • WE8ISO8859P9
    • WE8ISO8859P15
    • WE8MSWIN1252
    • ZHT16BIG5
  • Datastream unterstützt keine Replikation von Nulldatumswerten. Solche Datumsangaben werden durch NULL-Werte ersetzt.
  • Datastream unterstützt keine direkte Verbindung zu Datenbanken, die das SCAN-Feature (Single Client Access Name) in Oracle RAC-Umgebungen (Real Application Clusters) verwenden. Informationen zu möglichen Lösungen finden Sie unter Verhalten und Einschränkungen von Oracle-Quellen.
  • Wenn die Quelle eine Oracle Active Data Guard-Standby-Datenbank ist, unterstützt Datastream die Replikation verschlüsselter Daten nicht.

Zusätzliche Einschränkungen bei der Verwendung des binären Readers

  • Der binäre Reader unterstützt die folgenden Funktionen nicht:

    • Transparente Datenbankverschlüsselung (Transparent Database Encryption, TDE)
    • Hybride spaltenbasierte Komprimierung
    • Dateien schützen
    • ASM wird für Amazon RDS-Quellen nicht unterstützt.
    • Die CDC-Methode des Binärlesers unterstützt Oracle 11g und frühere Versionen nicht.

Nächste Schritte