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 „Binary Log Reader“ (Vorabversion) wird Folgendes beobachtet:
Wenn beim Extrahieren der Änderungen aus den Online-Protokolldateien ein Leserückstand auftritt, extrahiert Datastream die Änderungen aus den archivierten Protokolldateien.
Datastream repliziert nur Änderungen, für die ein Commit durchgeführt wurde, in das Ziel. Nicht committete oder zurückgesetzte Transaktionen werden nicht repliziert.
Der Binärleser unterstützt die Replikation von Oracle-
VARCHAR2
-Spalten mit mehr als 4.000 Zeichen.
Datastream unterstützt auch die Funktion Oracle LogMiner, um Änderungen an den Daten aufzuzeigen. Die Methode hat folgende Eigenschaften:
- 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 entsprechendenDELETE
-Vorgang. In diesem Fall wird das Ereignis alsDELETE
-Ereignis angezeigt, das nurROWID
enthält.
ROWID
-basiertes 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. Wir empfehlen daher, bis zum Abschluss des Backfill-Vorgangs keine Aktionen auszuführen, die die ROWID
-Werte in Ihrer Quell-Oracle-Datenbank ändern könnten.
Die ROWID
-Werte können durch folgende Aktionen geändert werden:
Physische Verschiebung von Zeilen:
- Export- und Importvorgänge: Wenn Sie eine Tabelle exportieren und dann wieder importieren, kann sich die physische Position der Zeilen ändern, was zu neuen
ROWID
-Werten führt. ALTER TABLE (...) MOVE
-Befehl: Wenn Sie eine Tabelle in einen anderen Tablespace verschieben, kann sich der physische Speicher ändern und es kann zuROWID
-Änderungen kommen.ALTER TABLE (...) SHRINK SPACE
-Befehl: Mit diesem Befehl wird die Tabelle komprimiert, wodurch Zeilen möglicherweise verschoben werden und sich ihreROWID
-Werte ändern.- Partitionierungsvorgänge: Durch das Aufteilen, Zusammenführen oder Verschieben von Partitionen kann sich die physische Platzierung von Zeilen und ihre
ROWID
-Werte ändern.
- Export- und Importvorgänge: Wenn Sie eine Tabelle exportieren und dann wieder importieren, kann sich die physische Position der Zeilen ändern, was zu neuen
Flashback-Vorgänge:
FLASHBACK TABLE
-Befehl: Wenn Sie eine Tabelle in einen vorherigen Zustand wiederherstellen, werden Zeilen gelöscht und wieder eingefügt, wodurch neueROWID
-Werte erstellt werden.FLASHBACK_TRANSACTION_QUERY
: Ähnlich wieFLASHBACK TABLE
. Wenn Sie eine Transaktion rückgängig machen, kann das zu Änderungen anROWID
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 (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, kann es zu Fehlern kommen.
- 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 einen Zusammenführungsvorgang auf der Verbraucherseite auszuführen. Beachten Sie, dass dieROWID
möglicherweise nicht eindeutig ist. Wenn Sie beispielsweise eine Zeile mit dem Export-/Import-Dienstprogramm von Oracle löschen und wieder einfügen, ändert sich möglicherweise dieROWID
der Zeile. Wenn Sie eine Zeile löschen, kann Oracle dieROWID
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.
- 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 durchNULL
-Werte ersetzt. - Wenn Sie Spalten mit Large Object-Datentypen wie Binary Large Objects (
BLOB
), Character Large Objects (CLOB
) und National Character Large Objects (NCLOB
) streamen möchten, müssen Sie das FlagstreamLargeObjects
in Ihre Streamkonfiguration aufnehmen. Wenn Sie das Flag nicht angeben, werden solche Spalten nicht von Datastream gestreamt und im Ziel durchNULL
-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
oderUDT
nicht unterstützt und die gesamte Tabelle wird nicht repliziert. - Oracle Label Security (OLS) wird nicht repliziert.
- Datastream ruft bei der Verarbeitung von Ereignissen regelmäßig das aktuelle Schema aus der Quelle ab. 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 der Verwendung der Oracle LogMiner-Methode werden
SAVEPOINT
-Anweisungen nicht unterstützt und können bei einem Rollback zu Datenabweichungen führen. - Datastream unterstützt die folgenden Zeichensatzcodierungen für Oracle-Datenbanken:
AL16UTF16
AL32UTF8
IN8ISCII
JA16SJIS
JA16SJISTILDE
US7ASCII
UTF8
WE8ISO8859P1
WE8ISO8859P9
WE8ISO8859P15
WE8MSWIN1252
ZHT16BIG5
- Datastream unterstützt keine Replikation von Datumsangaben mit dem Wert „0“. Solche Datumsangaben werden durch
NULL
-Werte ersetzt. - Wenn Sie sehr große Protokolldateien generieren, kann es zu einer Zeitüberschreitung bei Datastream kommen, was zu einem Streamfehler führen kann. Die empfohlene Größe der Redo-Logdatei beträgt weniger als 1 GB.
- Datastream unterstützt keine direkte Verbindung zu Datenbanken, die die SCAN-Funktion (Single Client Access Name) in Oracle Real Application Clusters (RAC)-Umgebungen 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-Standbydatenbank ist, unterstützt Datastream die Replikation verschlüsselter Daten nicht.
Weitere Einschränkungen bei der Verwendung des Binärlesegeräts
Der Binärleser unterstützt die folgenden Funktionen nicht:
- Transparente Datenbankverschlüsselung (Transparent Data Encryption, TDE)
- Hybride spaltenbasierte Komprimierung
- Dateien schützen
- Die CDC-Methode des Binärlesers unterstützt keine Streamwiederherstellung.
- ASM wird für Amazon RDS-Quellen nicht unterstützt.
- Die CDC-Methode des Binärlesers wird von Oracle 11g und früheren Versionen nicht unterstützt.
Nächste Schritte
- Informationen zum Konfigurieren einer Oracle-Quelle für die Verwendung mit Datastream