Problembehandlung beim Openflow Connector for Oracle

Bemerkung

Der Openflow Connector for Oracle unterliegt zusätzlichen Nutzungsbedingungen, die über die Standardnutzungsbedingungen für Konnektoren hinausgehen. Weitere Informationen dazu finden Sie im Addendum zu Openflow Connector für Oracle.

Unter diesem Thema wird beschrieben, wie Sie häufige Probleme mit Openflow Connector for Oracle beheben können.

Eine Tabelle wurde zur Replikation hinzugefügt, wird aber nicht in Snowflake angezeigt

Der vollqualifizierte Name (FQN) der Tabelle ist in der Konfiguration des Konnektors möglicherweise falsch angegeben.

Lösung

  • Überprüfen Sie das Format des FQN in Oracle Ingestion Parameters. Es sollte <database_name>.<schema_name>.<table_name> lauten (beachten Sie das Datenbankpräfix).

  • Überprüfen Sie den Datenbanknamen in Oracle Source Parameters |raa|``Oracle Connection URL``. Während FQNs die Angabe des Datenbanknamens unterstützen, müssen sich die Daten derzeit in derselben Datenbankinstanz befinden, die für diese Verbindung verwendet wird.

  • Vergewissern Sie sich, dass Sie den vollständigen Datenbanknamen, einschließlich des Domänennamens, in der Konfiguration des Konnektors angegeben haben. Verwenden Sie zum Beispiel MYDB.EXAMPLE.COM statt nur MYDB.

    Um den korrekten Datenbanknamen zu finden, führen Sie die folgende Abfrage in Ihrer Oracle-Datenbank aus:

    SELECT property_value
      FROM database_properties
      WHERE property_name = 'GLOBAL_DB_NAME';
    

    Im Allgemeinen entspricht property_value dem Dienstnamen der Datenbank. Der zurückgegebene Datenbankname kann jedoch einen angehängten Domänennamen enthalten (z. B. für den Dienstnamen FOO könnte die Abfrage FOO.EXAMPLE.COM zurückgeben). Verwenden Sie in diesem Fall den vollständigen Namen mit der Domäne (in doppelten Anführungszeichen, da er Punkte enthält).

Keine Änderungen beim inkrementellen Laden

Beim inkrementellen Laden werden keine Änderungen aus der Quelldatenbank erfasst oder angewendet.

Lösung

Führen Sie die Überprüfung für den Prozessor Read Oracle CDC Stream aus:

  1. Doppelklicken Sie in Ihrer Openflow-Laufzeitumgebung auf den Oracle-Ablauf.

  2. Doppelklicken Sie auf die Prozessgruppe mit dem Namen Incremental Load.

  3. Suchen Sie den Read Oracle CDC Stream-Prozessor.

    1. Wenn er ausgeführt wird, klicken Sie mit der rechten Maustaste, und wählen Sie Stop aus. Der Prozessor muss gestoppt werden, bevor Sie seine Konfiguration überprüfen können.

  4. Klicken Sie mit der rechten Maustaste erneut auf Read Oracle CDC Stream, und wählen Sie dann Configure aus.

  5. Wählen Sie die Registerkarte Properties aus.

  6. Aktivieren Sie das Kontrollkästchen Verification in der oberen rechten Ecke.

  7. Wählen Sie im angezeigten Popup-Fenster Verify in der rechten unteren Ecke aus.

    Die Ergebnisse des Verifizierungsverfahrens sind unten aufgeführt. Die Prozedur validiert die Konnektivität der Datenbank und prüft den Status der Komponenten, die erforderlich sind, damit das inkrementelle Laden funktioniert.

Wenn einer der Überprüfungsschritte fehlschlägt, lesen Sie die Fehlermeldung, beheben Sie das Problem, und führen Sie die Überprüfung erneut aus. In den folgenden Abschnitten werden spezifische Probleme und Lösungen beschrieben.

Erfassungsstatus nicht ENABLED

Der Status des Erfassungsprozesses ist DISABLED oder ABORTED. Der Status DISABLED bedeutet, dass der Erfassungsprozess manuell gestoppt wurde (mit DBMS_XSTREAM_ADM.STOP_OUTBOUND) oder die Datenbank neu gestartet wurde. Der Status ABORTED bedeutet, dass bei der Erfassung ein Fehler aufgetreten ist, normalerweise, weil die für den Erfassungsprozess benötigten Redo-Protokolle gelöscht wurden. Sie können dies bestätigen, indem Sie die Systemänderungsnummer (SCN, System Change Number) überprüfen oder den Erfassungsstatus abfragen.

Lösung

Starten Sie den Ausgangsserver:

BEGIN
   DBMS_XSTREAM_ADM.START_OUTBOUND('XOUT1');
END;
/

Status UNKNOWN der LogMiner-Sitzung

Der Status von LogMiner ist UNKNOWN, was bedeutet, dass archivierte Protokolle, von denen LogMiner abhängig war, gelöscht wurden. Sie können dies durch Abfragen von V$ARCHIVED_LOG und Suchen nach Zeilen, in denen die Spalte DELETED den Wert YES hat, bestätigen.

Lösung

Erstellen Sie den XStream-Ausgangsserver neu. Weitere Informationen finden Sie unter Es treten Probleme mit dem XStream-Ausgangsserver auf.

Status WAITING FOR REDO der XStream-Erfassung

Der Erfassungsstatus für XStream zeigt WAITING FOR REDO: FILE NA, THREAD 1, SEQUENCE 47, SCN 0x0000000000190ac4 an. Das bedeutet, dass LogMiner auf eine archivierte Protokolldatei wartet, die nicht verfügbar ist, weil sie gelöscht wurde. Sie können dies durch Abfragen von V$ARCHIVED_LOG und Suchen nach Zeilen, in denen die Spalte DELETED den Wert YES hat, bestätigen.

Lösung

Erstellen Sie den XStream-Ausgangsserver neu. Weitere Informationen finden Sie unter Es treten Probleme mit dem XStream-Ausgangsserver auf.

Die XStream-Erfassungsregeln sind falsch

XStream ist nicht so konfiguriert, dass es Änderungen an den erwarteten Schemas oder Tabellen erfasst.

Lösung

Überprüfen Sie die Erfassungsregeln, indem Sie die folgende Abfrage ausführen:

SELECT STREAMS_NAME, SCHEMA_NAME, OBJECT_NAME, RULE_TYPE
FROM DBA_XSTREAM_RULES
WHERE STREAMS_NAME = 'XOUT1';

Sie können den Erfassungsstatus und die Fehlermeldung auch direkt abfragen:

SELECT CLIENT_NAME, STATUS, ERROR_MESSAGE FROM ALL_CAPTURE;

Diese Abfrage gibt Folgendes zurück:

  • CLIENT_NAME: Der Name des XStream-Clients (Ausgangsserver).

  • STATUS: Der aktuelle Status des Erfassungsprozesses (z. B. ENABLED, DISABLED, ABORTED).

  • ERROR_MESSAGE: Jede Fehlermeldung im Zusammenhang mit dem Erfassungsprozess.

Fehler ORA-21560: das Argument „last_position“ ist null, ungültig oder außerhalb des Bereichs

Der Konnektor hat versucht, eine Verbindung zu einer SCN-Position herzustellen, für die keine Redo-Protokolle mehr verfügbar sind.

Lösung

Bestätigen Sie das Problem, indem Sie die folgende Abfrage ausführen. Die SCN für Last SCN processed by XStream muss höher sein als die niedrigste SCN, für die Redo-Protokolle existieren.

SELECT min(FIRST_CHANGE#) as SCN,
       'Lowest SCN for which redo logs still exist' AS DESCRIPTION
FROM V$ARCHIVED_LOG
WHERE DELETED = 'NO'
UNION ALL
SELECT PROCESSED_LOW_SCN,
       'Last SCN processed by XStream'
FROM DBA_XSTREAM_OUTBOUND_PROGRESS
WHERE SERVER_NAME = 'XOUT1'
ORDER BY SCN;

Um diesen Fehler zu beheben, erstellen Sie den XStream-Ausgangsserver neu. Weitere Informationen finden Sie unter Es treten Probleme mit dem XStream-Ausgangsserver auf.

Fehler ORA-26701: Der Prozess XOUT1 für Streams ist nicht vorhanden

Der XStream-Ausgangsserver kann in der Datenbankinstanz nicht gefunden werden.

Lösung

Überprüfen Sie Folgendes:

  • Der Name der Datenbank in Oracle Source Parameters » XStream Out Server URL zeigt auf die Datenbankinstanz mit dem XStream-Ausgangsserver, nicht ein anderes PDB.

  • XStream wurde für diese Instanz erstellt und hat denselben Namen.

Fehler ORA-01722: ungültige Nummer bei der Erstellung des Ausgangsservers

Ausführen von DBMS_XSTREAM_ADM.CREATE_OUTBOUND schlägt fehl mit:

ORA-01722: invalid number
ORA-06512: at "SYS.DBMS_LOGREP_UTIL", line 582
ORA-06512: at "SYS.DBMS_LOGREP_UTIL", line 636
ORA-06512: at "SYS.DBMS_XSTREAM_ADM_UTL", line 440
ORA-06512: at "SYS.DBMS_XSTREAM_UTL_IVK", line 2094
ORA-06512: at "SYS.DBMS_XSTREAM_UTL_IVK", line 2302
ORA-06512: at "SYS.DBMS_XSTREAM_ADM", line 44
ORA-06512: at line 8

Dieser Fehler ist irreführend. Der Ausgangsserver existiert bereits.

Lösung

Es ist keine Aktion erforderlich. Verwenden Sie den vorhandenen Ausgangsserver.

Es treten Probleme mit dem XStream-Ausgangsserver auf

Mehrere Probleme, wie z. B. gelöschte Redo-Protokolle oder beschädigter LogMiner-Status, können durch die erneute Erstellung des XStream-Ausgangsservers gelöst werden.

Lösung

  1. Löschen Sie den bestehenden Ausgangsserver:

    BEGIN
       DBMS_XSTREAM_ADM.DROP_OUTBOUND('XOUT1');
    END;
    /
    
  2. Erstellen Sie den Ausgangsserver erneut. Weitere Informationen dazu finden Sie unter Erstellen eines XStream-Ausgangsservers.