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 der Verwendung einer Oracle-Datenbank als Quelle

Verhalten

Die Oracle-Datenbank für die Quelle verwendet das Oracle Logminer-Feature, um Änderungen an den Daten aufzuzeigen.

  • 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 Änderungen der Datenbearbeitungssprache (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, die eindeutige IDs für Zeilen in einer Tabelle speichert. 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.

Zu den Aktionen, die die ROWID-Werte ändern können, gehören:

  • Physische Bewegung der Zeilen:

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

    • FLASHBACK TABLE-Befehl: Zum Wiederherstellen einer Tabelle in einem vorherigen Zustand werden Zeilen gelöscht und neu eingefügt, wodurch neue ROWID-Werte erstellt werden.
    • FLASHBACK_TRANSACTION_QUERY: Ähnlich wie FLASHBACK TABLE. Das Rollback einer Transaktion kann 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
  • 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 Typen von Oracle-Datenbanken:

  • Selbst gehostet, lokal oder bei einem beliebigen Cloud-Anbieter
  • Amazon RDS für Oracle
  • Oracle Cloud
  • 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, eine Aufbewahrungsrichtlinie definiert usw.

Unter Oracle-Quelldatenbank konfigurieren erfahren Sie, wie Sie diese Datenbank so konfigurieren, dass Datastream Daten daraus in ein Ziel 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 mandantenfähige Oracle-Architektur (CDB/PDB). Sie können jedoch nur eine einzelne modulierbare Datenbank in einem Stream replizieren.
  • Oracle Autonomous Database wird nicht unterstützt.
  • Bei Tabellen ohne Primärschlüssel verwendet Datastream das ROWID der Zeile, um auf der Nutzerseite eine Zusammenführung durchzuführen. ROWID ist möglicherweise nicht eindeutig. Wenn Sie eine Zeile beispielsweise mit dem Export-/Importdienstprogramm von Oracle löschen und wieder einfügen, ändert sich der ROWID der Zeile möglicherweise. Wenn Sie eine Zeile löschen, kann Oracle seine ROWID einer neuen Zeile zuweisen, die später eingefügt wird.
  • Indexbasierte Tabellen (Index-organized Tables, IOTs) werden nicht unterstützt.
  • Temporäre Tabellen werden nicht unterstützt.
  • Bei Spalten vom Typ BFILE wird nur der Pfad zur Datei repliziert. Der Inhalt der Datei wird nicht repliziert.
  • Spalten mit den Datentypen ANYDATA, INTERVAL DAY TO SECOND, INTERVAL YEAR TO MONTH, LONG/LONG RAW, SDO_GEOMETRY, UDT, UROWID und XMLTYPE werden nicht unterstützt und durch NULL-Werte ersetzt.
  • Zum Streamen von Spalten mit großen Objektdatentypen, z. B. Binary Large Objects (BLOB), „Character Large Objects“ (CLOB) und „National Character Large Objects“ (NCLOB), müssen Sie das Flag streamLargeObjects in die Streamkonfiguration aufnehmen. Ohne Angabe des Flags streamt Datastream solche Spalten nicht. Sie werden im Ziel 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 regelmäßig das neueste Schema aus 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.
  • SAVEPOINT-Anweisungen werden nicht unterstützt und können bei einem Rollback zu Datendiskrepanzen führen.
  • Datastream unterstützt die folgenden Zeichensatzcodierungen für Oracle-Datenbanken:
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • JA16SJIS
    • JA16SJISTILDE
    • US7ASCII
    • UTF8
    • WE8ISO8859P1
    • WE8ISO8859P9
    • WE8ISO8859P15
    • WE8MSWIN1252
    • ZHT16BIG5
  • Das Replizieren von Nulldatumswerten wird von Datastream nicht unterstützt. Solche Datumsangaben werden durch NULL-Werte ersetzt.
  • Das Erstellen sehr großer Logdateien kann zu einer Zeitüberschreitung bei Datastream führen, was zu einem Streamfehler führen kann. Die empfohlene Größe der Redo-Log-Datei liegt unter 1 GB.
  • Datastream unterstützt keine direkte Verbindung zu Datenbanken, die die SCAN-Funktion (Single Client Access Name) in Oracle Real Application Cluster-Umgebungen (RAC) verwenden. Informationen zu möglichen Lösungen finden Sie unter Funktionsweise und Einschränkungen der Oracle-Quelle.
  • Wenn die Quelle eine Oracle Active Data Guard-Standby-Datenbank ist, unterstützt Datastream das Replizieren verschlüsselter Daten nicht.