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: den Oracle-Binärlog-Reader (Vorabversion) und Oracle LogMiner.
Bei der Methode „Binärlog-Reader“ (Vorabversion) wird folgendes 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. Transaktionen, für die kein Commit durchgeführt wurde oder die zurückgesetzt wurden, werden nicht repliziert.
Der Binärlog-Reader unterstützt die Replikation von
VARCHAR2-Spalten von Oracle, die länger als 4.000 Zeichen sind.
Datastream unterstützt auch das Oracle LogMiner-Feature, um Änderungen an den Daten aufzuzeigen. Die Methode hat folgendes 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, in das Ziel. 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
INSERTgibt, enthalten die Ausgabedatensätze auch einen entsprechendenDELETE-Vorgang. In diesem Fall wird das Ereignis alsDELETE-Ereignis angezeigt, das nurROWIDenthält.
Backfill auf Basis von ROWID
ROWID ist in Oracle eine Pseudospalte, in der eindeutige IDs für Zeilen in einer Tabelle gespeichert werden. Datastream verwendet die ROWID-Werte für seine Backfill-Vorgänge. Aus diesem Grund empfehlen wir, keine Aktionen auszuführen, die die ROWID-Werte in Ihrer Oracle-Quelldatenbank ändern könnten, bis der Backfill-Vorgang abgeschlossen ist.
Die folgenden Aktionen können die ROWID-Werte ändern:
Physische Verschiebung von 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. - Befehl
ALTER TABLE (...) MOVE: Wenn Sie eine Tabelle in einen anderen Tabellenbereich verschieben, kann sich der physische Speicher ändern und zuROWID-Änderungen führen. - Befehl
ALTER TABLE (...) SHRINK SPACE: Mit diesem Befehl wird die Tabelle komprimiert, wodurch Zeilen möglicherweise verschoben werden und sich ihreROWID-Werte ändern. - Partitionierungsvorgänge: Wenn Sie Partitionen aufteilen, zusammenführen oder verschieben, 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 der physische Speicherort der Zeilen ändern, was zu neuen
Flashback-Vorgänge:
- Befehl
FLASHBACK TABLE: Wenn Sie eine Tabelle in einen vorherigen Zustand zurückversetzen, werden Zeilen gelöscht und wieder eingefügt, wodurch neueROWID-Werte erstellt werden. FLASHBACK_TRANSACTION_QUERY: Ähnlich wieFLASHBACK TABLE. Wenn Sie einen Rollback für eine Transaktion durchführen, können sich dieROWID-Werte ändern, wenn Zeilen innerhalb der Transaktion gelöscht oder aktualisiert wurden.
- Befehl
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.
Best Practices
In diesem Abschnitt werden empfohlene Best Practices für die Konfiguration Ihrer Oracle-Quelle zur Verwendung mit Datastream beschrieben.
Groß-/Kleinschreibung für den Binärlog-Reader
Wenn Sie eine Oracle-Quelle mit der CDC-Methode „Binärlog-Reader“ konfigurieren und Verzeichnisnamen für Redo- und Archivlogs angeben, müssen Sie beachten, dass bei den Namen die Groß-/Kleinschreibung berücksichtigt wird. Die Verzeichnisnamen, die Sie im Datastream-Verbindungsprofil angeben, müssen genau mit der Groß-/Kleinschreibung der Verzeichnisnamen in Ihrer Oracle-Datenbank übereinstimmen.
CDC-Parallelität
Um die Replikationsverzögerung zu minimieren, muss Datastream Redo-Logs so schnell verarbeiten können, wie sie von Ihrer Oracle-Quelle erstellt werden. Bei Verwendung der CDC-Methode „Binärlog-Reader“ erfolgt die Parallelität von Datastream auf der Ebene der Redo-Logdatei: Jede Aufgabe, die durch maxConcurrentCdcTasks definiert wird, verarbeitet jeweils eine Datei.
Wir empfehlen die folgende Methode:
- Parallelität in Datastream optimieren: Ermitteln Sie die durchschnittliche Anzahl der
Redo-Log-Switches während der Hauptgeschäftszeiten und konfigurieren Sie den
maxConcurrentCdcTasksParameter entsprechend. Weitere Informationen finden Sie unter Maximale Anzahl von CDC-Aufgaben. - Oracle-Log-Switching konfigurieren:Konfigurieren Sie Oracle so, dass Logs häufig gewechselt werden, z. B. alle 10 bis 20 Minuten. Dadurch wird ein stetiger Stream kleinerer Arbeitseinheiten erstellt, sodass die parallelen Aufgaben von Datastream effektiv parallel ausgeführt werden können.
Wir empfehlen, die Einstellungen so zu optimieren, dass in Datastream genügend parallele Aufgaben vorhanden sind, um die häufige Erstellung kleinerer Redo-Logs aus Oracle zu verarbeiten. Weitere Informationen finden Sie unter Steuerelemente für die Stream-Parallelität.
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 Pluggable Database in einem Stream replizieren.
- Oracle Autonomous Database wird nicht unterstützt.
- Für Tabellen ohne Primärschlüssel verwendet Datastream die
ROWIDder Zeile, um auf der Consumerseite einen Merge-Vorgang auszuführen. Beachten Sie, dass dieROWIDmöglicherweise nicht eindeutig ist. Wenn Sie beispielsweise eine Zeile mit dem Export-/Import-Dienstprogramm von Oracle löschen und wieder einfügen, kann sich dieROWIDder Zeile ändern. Wenn Sie eine Zeile löschen, kann Oracle ihreROWIDeiner 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,XMLTYPEwerden 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 FlagstreamLargeObjectsin Ihre Streamkonfiguration aufnehmen. Wenn Sie das Flag nicht einfügen, streamt Datastream solche Spalten nicht und sie werden im Ziel durchNULL-Werte ersetzt. Weitere Informationen finden Sie unter Streaming von Large Objects für Oracle-Quellen aktivieren. - Bei Oracle 11g werden Tabellen mit Spalten vom Datentyp
ANYDATAoderUDTnicht 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, wenn 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
SAVEPOINTAnweisungen nicht unterstützt und können im Falle eines Rollbacks zu Datenabweichungen führen. - Bei Verwendung der Oracle LogMiner-Methode unterstützt Datastream die Replikation von Tabellen und Spalten nicht, deren Namen länger als 30 Zeichen sind.
- Datastream unterstützt die folgenden Zeichensatzcodierungen für Oracle-Datenbanken:
AL16UTF16AL32UTF8IN8ISCIIIW8ISO8859P8JA16SJISJA16SJISTILDEKO16MSWIN949US7ASCIIUTF8WE8ISO8859P1WE8ISO8859P9WE8ISO8859P15WE8MSWIN1252ZHT16BIG5
- Datastream unterstützt die Replikation von Datumsangaben mit dem Wert „0“ nicht. 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 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-Standby-Datenbank ist, unterstützt Datastream die Replikation verschlüsselter Daten nicht.
Zusätzliche Einschränkungen bei Verwendung des Binärlog-Readers
Der Binärlog-Reader unterstützt die folgenden Funktionen nicht:
- Transparente Datenbankverschlüsselung (Transparent Database Encryption, TDE)
- Hybride spaltenbasierte Komprimierung
- Sichere Dateien
- ASM wird für Amazon RDS-Quellen nicht unterstützt.
- Die CDC-Methode „Binärlog-Reader“ unterstützt Oracle 11g und frühere Versionen nicht.