Openflow Connector for Oracle: Konfigurieren der Oracle-Datenbank¶
Bemerkung
Dieser Connector unterliegt den `Nutzungsbedingungen für Snowflake Connector<https://www.snowflake.com/legal/snowflake-connector-terms/>`_.
Bemerkung
Der Openflow Connector for Oracle unterliegt zusätzlichen Nutzungsbedingungen, die über die Standardnutzungsbedingungen für Konnektoren hinausgehen. Weitere Informationen dazu finden Sie unter Openflow Connector für Oracle-Zusatz.
Unter diesem Thema wird beschrieben, wie Sie die Oracle-Datenbank für den Openflow Connector for Oracle einrichten.
Bemerkung
Das Einrichten Ihrer Oracle-Datenbank hängt von den Sicherheitsrichtlinien Ihrer Organisation und der Datenbankarchitektur ab. Also davon, ob sich Tabellen in einer Container Database (CDB ), einer Pluggable Database (PDB ), mehrerenPDBs oder einer Kombination befinden.
Die unter diesem Thema angegebenen Schritte sind nur Beispiele. Ändern Sie diese je nach Ihrer Umgebung.
Führen Sie als Oracle-Datenbankadmin die folgenden Prozeduren für Ihre Quelldatenbank aus:
Konfigurieren der Aufbewahrungsfrist für archivierte Redo-Protokolle
Konfigurieren des Connector-Benutzerenden für den XStream-Server
Einrichten des Connector-Benutzers für den XStream-Ausgangsserver
Einrichten eines Capture-Benutzers für den XStream-Ausgangsserver
Bemerkung
Die Schritte unter diesem Thema wurden für eine Multi-Tenant-Architektur mit einer Container Database (CDB) und einer oder mehreren Pluggable Databases (PDB) geschrieben. Wenn Ihre Oracle-Datenbank eine Single-Tenant-Architektur verwendet, finden Sie entsprechende Informationen unter Einrichten von XStream für Single-Tenant-Datenbanken.
Konfigurieren der Aufbewahrungsfrist für archivierte Redo-Protokolle¶
Sie müssen den ARCHIVELOG-Modus aktivieren, um sicherzustellen, dass Änderungsdaten für die Replikation verfügbar sind.
Wenn Sie AWS RDS für Oracle verwenden, müssen Sie auch die Aufbewahrungsfrist für archivierte Redo-Protokolle konfigurieren. Bestimmen Sie diesen Zeitraum auf Grundlage des Umfangs der Änderungen in der Quelldatenbank und Ihrer Speicherkapazität.
Um die Aufbewahrungsfrist z. B. auf 24 Stunden einzustellen, gehen Sie wie in der folgenden Tabelle beschrieben vor:
Datenbankversion |
Prozedur |
|---|---|
AWS RDS (Standard) |
Führen Sie Folgendes aus: Weitere Informationen dazu finden Sie im Abschnitt zur Aufbewahrung archivierter Redo-Protokolle. |
AWS RDS Custom |
Weitere Informationen dazu finden Sie im Abschnitt zum Wiederherstellen einerRDS Custom for Oracle-Instanz. |
Aktivieren von XStream und zusätzlicher Protokollierung¶
Bemerkung
XStream ist in Oracle Database enthalten und erfordert keine zusätzliche Software.
Um die XStream-Replikation zum Erfassen und Streamen von Änderungsdaten zu aktivieren und konfigurieren, führen Sie die folgenden Befehle aus:
Aktivieren der XStream-Replikation:
Bemerkung
Snowflake empfiehlt, die Größe des Streampools auf 2,5 GB festzulegen. Diese Zuteilung deckt Folgendes ab:
1 GB für Capture
1 GB für Apply
Ein zusätzlicher Puffer von 25 %
Um die zusätzliche Protokollierung zu aktivieren, um sicherzustellen, dass die Redo-Protokolle die für die logische Replikation erforderlichen Informationen erfassen, führen Sie die folgenden Befehle aus:
Stellen Sie sicher, dass sich die Datenbank im ARCHIVELOG-Modus befindet, wie im folgenden Beispiel gezeigt:
Snowflake empfiehlt, die Protokollierung auf Datenbank- oder Tabellenbereichsebene zu erzwingen.
Setzen Sie den Container auf den Stammcontainer und fügen Sie eine zusätzliche Protokollierung der Datenbank hinzu:
Alternativ können Sie die Protokollierung auch nur für bestimmte Tabellen aktivieren, wie im folgenden Beispiel gezeigt:
Erstellen des XStream-Admins¶
Ein XStream-Admin ist erforderlich, um XStream-Komponenten, einschließlich der Erstellung und Änderung von Ausgangsservern, zu verwalten. Sie können entweder einen dedizierten Benutzer für diese Zweck anlegen oder einen bestehenden Benutzer verwenden, sofern die erforderlichen XStream-Administrationsberechtigungen gewährt werden (siehe nächster Abschnitt).
Das folgende Beispiel zeigt die Einrichtung eines dedizierten XStream-Admins im Stammcontainer einer CDB.
Bemerkung
Im folgenden Beispiel wird davon ausgegangen, dass die Datenbank auch eine PDB mit den zu replizierenden Tabellen enthält.
Verbinden Sie sich als SYSDBA oder als Benutzender mit entsprechenden Berechtigungen und führen Sie die folgenden Befehle aus:
Gewähren von XStream-Administratorberechtigungen¶
Gewähren Sie die erforderlichen Berechtigungen für den XStream-Admin, basierend auf Ihrer Oracle Database-Version.
Für Oracle Database 19c und 21c
Verbinden Sie sich als SYSDBA oder als Benutzender mit entsprechenden Berechtigungen.
Gewähren Sie dem XStream-Admin die erforderlichen Systemberechtigungen, indem Sie den folgenden Befehl ausführen:
Für Oracle Database 23c
Verbinden Sie sich als SYSDBA oder als Benutzender mit entsprechenden Berechtigungen.
Gewähren Sie die erforderlichen Systemberechtigungen undXStream-Rollen für Oracle Database 23c, indem Sie den folgenden Befehl ausführen:
Konfigurieren des Connector-Benutzerenden für den XStream-Server¶
Der Snowflake Openflow Connector verwendet einen dedizierten Connector-Benutzer, um eine Verbindung zum XStream-Ausgangsserver herzustellen und Änderungsdaten zu empfangen. Dieser Benutzer benötigt bestimmte Berechtigungen, um die Replikation zu vereinfachen:
Lesen vom XStream-Ausgangsserver: Der Benutzer muss in der Lage sein, vom konfigurierten XStream-Ausgangsserver auf den Änderungsdatenstream zuzugreifen.
Auswahl aus Data Dictionary-Ansichten: Der Connector-Benutzer benötigt SELECT-Zugriff auf verschiedene Data Dictionary-Ansichten. Dies kann durch das Gewähren von SELECT_CATALOG_ROLE oder SELECTANYDICTIONARY erreicht werden. Wenn das Gewähren von SELECT ANY DICTIONARY aufgrund von Unternehmensrichtlinien nicht erwünscht ist, benötigt der Benutzer ausdrücklich SELECT-Zugriff auf die folgenden Ansichten:
ALL_USERS
ALL_TABLES
ALL_TAB_COLS
ALL_CONS_COLUMNS
ALL_CONSTRAINTS
V$DATABASE
Auswahl aus Quelltabellen: Der Benutzer muss SELECT-Berechtigungen für alle Tabellen haben, die für die Replikation vorgesehen sind.
Im Folgenden finden Sie ein Beispiel dafür, wie Sie einen solchen Benutzer im Stammcontainer der CDB einrichten. Im Beispiel wird davon ausgegangen, dass die Datenbank auch eine PDB mit den zu replizierenden Tabellen enthält.
Erstellen eines XStream-Ausgangsservers¶
Der XStream-Ausgangsserver erfasst Änderungen aus Redo-Protokollen für die Nutzung durch den Openflow Connector. Definieren Sie, welche Schemas oder Tabellen repliziert werden sollen. Weitere Informationen finden Sie unter DBMS_XSTREAM_ADM.CREATE_OUTBOUND. Dokumentation.
Wichtige Hinweise zum Replikationsbereich:
Wenn eine Tabelle im Befehl zu Filterregeln für den XStream-Ausgangsserver enthalten ist, wird sie nicht repliziert.
Tabellen oder Schemas, die hier enthalten sind, müssen auch in den Connector-Parametern definiert sein, damit sie repliziert werden. Sie können ein gesamtes Schema in die Filterregeln des Servers aufnehmen und später in den Connector-Parametern nur bestimmte Tabellen innerhalb dieses Schemas für die Replikation angeben.
Bemerkung
Der XStream-Ausgangsserver kann nur über den Stammcontainer erstellt werden. Ab Oracle Database Version 23ai kann er jedoch auch auf PDB-Ebene erstellt werden.
Um einen erheblichen Einfluss auf Ihre CPU und Ihr Netzwerk zu vermeiden und zu verhindern, dass Ihre Warteschlangen mit irrelevanten Daten gefüllt werden, ist ein granularer Ansatz unerlässlich. Am besten eignet sich hierfür die DBMS_XSTREAM_ADM.ADD_TABLE_RULES-Prozedur, mit der Sie nur die spezifischen Tabellen auswählen können, die Sie benötigen.
Im Folgenden finden Sie Beispiele für die Einrichtung des XStream-Ausgangsservers, basierend auf unterschiedlichen Replikationsanforderungen. In der Praxis sollten Sie beim Einrichten des XStream-Ausgangsservers für Ihre Produktionsumgebung gezielt angeben, welche Änderungen Sie erfassen möchten. Wenn Sie alles erfassen, kann dies schwerwiegende Folgen für die Leistung Ihrer Datenbank und die Ressourcennutzung haben.
Weitere Informationen zur Konfiguration des XStream-Ausgangsservers finden Sie unter Konfigurieren des XStream-Ausgangsservers.
Beispiel 1: Erfassen aller Tabellen aus allen Schemas im Stammcontainer und allen PDBs
Beispiel 2: Erfassen aller Tabellen aus einem einzigen Schema in einer Pluggable Database (PDB)
Einrichten des Connector-Benutzers für den XStream-Ausgangsserver¶
Legen Sie den Connector-Benutzer für den XStream-Ausgangsserver fest. Dadurch wird sichergestellt, dass der zuvor erstellte Connector-Benutzer mit dem XStreamAusgangsserver (XOUT1) verknüpft ist, sodass er Änderungsdaten empfangen kann.
Bemerkung
Im folgenden Beispiel wird davon ausgegangen, dass der Connector-Benutzer „c##connectuser“ ist.
Einrichten eines Capture-Benutzers für den XStream-Ausgangsserver¶
Bemerkung
Wenn Sie möchten, dass die Daten von demselben Benutzenden erfasst werden, der den Server erstellt hat (der Admin), überspringen Sie diesen Abschnitt.
Wenn Sie einen separaten Capture-Benutzenden konfiguriert haben, konfigurieren Sie den XStream-Ausgangsserver so, dass er als dieser Benutzende ausgeführt wird. Dadurch wird sichergestellt, dass der dedizierte Capture-Benutzende mit dem XStream-Ausgangsserver (XOUT1) verknüpft ist, sodass dieser Benutzende Änderungsdaten erfassen kann.
Einrichten von XStream für Single-Tenant-Datenbanken¶
Die Standardarchitektur für Oracle 12c und höher ist eine Multi-Tenant-Architektur mit einer Container Database (CDB) und einer oder mehreren Pluggable Databases (PDB).
Wenn Ihre Oracle-Datenbank eine Single-Tenant-Architektur verwendet, beachten Sie die folgenden Unterschiede beim Einrichten vonXStream:
Verwenden Sie keine
ALTER SESSION SET CONTAINER-Befehle. In einer Single-Tenant-Datenbank gibt es nur eine Instanz, sodass kein Containerwechsel möglich ist.Erstellen Sie nur einen``xstream_adm_tbs``-Tabellenbereich. Erstellen Sie keinen zweiten Tabellenbereich in einer PDB.
Verwenden Sie nicht das
C##-Präfix für Benutzernamen. Erstellen Sie zum Beispiel``xstreamadmin`` anstelle von``c##xstreamadmin`` und``connectuser`` anstelle von``c##connectuser``. Das``C##``-Präfix ist nur in Multi-Tenant-Umgebungen erforderlich.Schließen Sie nicht
CONTAINER=ALLoder``container => ‚ALL‘`` in Befehle ein. Diese Klauseln gewähren Berechtigungen für mehrere Container und gelten nicht für Single-Tenant-Datenbanken.
Konfigurieren von SSL-Verbindungen (optional)¶
Openflow Connector for Oracle unterstützt verschlüsselte SSL-Verbindungen zur Oracle-Datenbank unter Verwendung des TCPS-Protokolls (TCP mit SSL). Wenn SSL aktiviert ist, verwenden sowohl die Datenbankverbindung als auch die XStream-Verbindung die verschlüsselte Kommunikation.
Für die Verwendung von SSL müssen Sie Folgendes tun:
Aktivieren von TCPS für die Oracle-Datenbank¶
Sie müssen die Oracle-Datenbank so konfigurieren, dass sie Verbindungen über das TCPS-Protokoll akzeptiert. Folgen Sie der Prozedur für Ihre Datenbankumgebung.
Lokal/OCI¶
Erstellen Sie ein SSL-Server-Wallet mit dem Serverzertifikat.
Konfigurieren Sie die
listener.ora, um einen TCPS-Endpunkt (Standardport 2484) einzuschließen.Konfigurieren Sie den
sqlnet.ora, um auf den Server-Wallet zu verweisen.Starten Sie die Überwachung neu.
Weitere Informationen dazu finden Sie unter Konfigurieren der Verschlüsselung der Sicherheit der Transportschicht.
AWS RDS (Standard)¶
Fügen Sie die Oracle SSL-Option zu der mit der DB-Instanz verbundenen Optionsgruppe hinzu.
Geben Sie den SSL-Port (z. B. 2484) an.
Weitere Informationen dazu finden Sie unter Oracle Secure Sockets Layer.
Erstellen eines Client-Wallets¶
Nachdem TCPS für die Datenbank aktiviert ist, erstellen Sie eine Oracle-Wallet für die automatische Anmeldung (cwallet.sso), das das vertrauenswürdige Zertifikat des Servers enthält. Dieses Wallet wird dem Konnektor zur Verfügung gestellt, damit dieser den Server während des SSL-Handshakes überprüfen kann.
Exportieren Sie das Serverzertifikat des Oracle-Datenbankservers als PEM-Datei.
Verwenden Sie das Oracle-
orapki-Dienstprogramm, um ein Client-Wallet zu erstellen und das Serverzertifikat zu importieren:Kopieren Sie die generierte
cwallet.sso-Datei an einen Speicherort, der für die Openflow-Laufzeitumgebung zugänglich ist.
Bemerkung
Laden Sie für AWS RDS das Stammzertifikat von AWS herunter, anstatt dieses vom Datenbankserver zu exportieren. Weitere Informationen dazu finden Sie unter Herstellen einer Verbindung mit einem RDS für die Oracle DB-Instanz mithilfe von SSL.
Weitere Informationen dazu finden Sie unter Verwenden des orapki-Dienstprogramms zur Verwaltung von PKI-Elementen.