Résolution des problèmes du Openflow Connector for Oracle

Note

Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.

Note

L’Openflow Connector for Oracle est également soumis à des conditions de service supplémentaires en plus des conditions de service standard du connecteur. Pour plus d’informations, consultez le Complément du connecteur Openflow pour Oracle.

Ce chapitre décrit comment résoudre les problèmes courants liés au Openflow Connector for Oracle.

Une table a été ajoutée à la réplication, mais n’apparaît pas dans Snowflake

Le nom complet de la table (FQN) peut être spécifié de manière incorrecte dans la configuration du connecteur.

Solution

  • Vérifiez le format du FQN dans``Oracle Ingestion Parameters`` . Ce doit être``<database_name>.<schema_name>.<table_name>`` (notez le préfixe de la base de données).

  • Vérifiez le nom de la base de données dans Oracle Source Parameters``|raa|``Oracle Connection URL. Alors que les FQNs prennent en charge la spécification du nom de la base de données, les données actuelles doivent résider dans la même instance de base de données que celle utilisée pour cette connexion.

  • Vérifiez que vous avez fourni le nom complet de la base de données, y compris le nom de domaine, dans la configuration du connecteur. Par exemple, utilisez``MYDB.EXAMPLE.COM`` au lieu de simplement``MYDB``.

    Pour trouver le nom de base de données correct, exécutez la requête suivante sur votre base de données Oracle :

    SELECT property_value
      FROM database_properties
      WHERE property_name = 'GLOBAL_DB_NAME';
    

    En général,``property_value`` est le même que le nom de service de la base de données. Toutefois, le nom de base de données renvoyé peut inclure un nom de domaine ajouté (par exemple, pour le nom de service FOO, la requête peut renvoyer``FOO.EXAMPLE.COM``). Dans ce cas, utilisez le nom complet avec le domaine (entre guillemets, car il contient des points).

Aucune modification dans le chargement incrémentiel

Le chargement incrémentiel ne capture pas ou n’applique pas les modifications de la base de données source.

Solution

Exécutez la vérification pour le processeur Read Oracle CDC Stream :

  1. Dans votre environnement d’exécution Openflow, double-cliquez sur le flux Oracle.

  2. Double-cliquez sur le groupe de processus nommé Incremental Load.

  3. Recherchez le processeur Read Oracle CDC Stream.

    1. S’il est en cours d’exécution, cliquez avec le bouton droit de la souris et sélectionnez Stop. Le processeur doit être arrêté avant que vous puissiez vérifier sa configuration.

  4. Cliquez avec le bouton droit de la souris sur Read Oracle CDC Stream à nouveau, puis sélectionnez Configure.

  5. Sélectionnez l’onglet Properties.

  6. Sélectionnez l’icône de coche Verification dans le coin supérieur droit.

  7. Dans la fenêtre contextuelle qui apparaît, sélectionnez Verify dans le coin inférieur droit.

    Les résultats de la procédure de vérification apparaissent ci-dessous. La procédure valide la connectivité de la base de données et vérifie le statut des composants nécessaires au chargement incrémentiel.

Si l’une des étapes de vérification échoue, affichez le message d’erreur, corrigez le problème et exécutez à nouveau la vérification. Les sections suivantes décrivent des problèmes spécifiques et des solutions.

Statut de capture non ENABLED

Le statut du processus de capture est DISABLED ou``ABORTED``. Le statut DISABLED signifie que le processus de capture a été arrêté manuellement (avec``DBMS_XSTREAM_ADM.STOP_OUTBOUND``) ou la base de données était redémarrée. Le statut ABORTED signifie que la capture a rencontré une erreur, généralement parce que les journaux « redo » nécessaires au processus de capture ont été supprimés. Vous pouvez confirmer cela en vérifiant la position SCN (System Change Number) ou en interrogeant le statut de la capture.

Solution

Démarrez le serveur sortant :

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

Statut UNKNOWN de session LogMiner

Le statut LogMiner est UNKNOWN, ce qui signifie que les journaux archivés dont dépendait LogMiner ont été supprimés. Vous pouvez confirmer cela en interrogeant``V$ARCHIVED_LOG`` et recherchant les lignes où la colonneDELETED a la valeurYES.

Solution

Recréez le serveur XStream sortant. Pour plus d’informations, voir Les problèmes se produisent avec le serveur XStream sortant.

Statut WAITING FOR REDO de capture XStream

Le statut de capture XStream indique WAITING FOR REDO: FILE NA, THREAD 1, SEQUENCE 47, SCN 0x0000000000190ac4. Cela signifie que LogMiner attend un fichier journal archivé qui n’est pas disponible parce qu’il a été supprimé. Vous pouvez confirmer cela en interrogeant``V$ARCHIVED_LOG`` et recherchant les lignes où la colonneDELETED a la valeurYES.

Solution

Recréez le serveur XStream sortant. Pour plus d’informations, voir Les problèmes se produisent avec le serveur XStream sortant.

XStream les règles de capture sont incorrectes

XStream n’est pas configuré pour capturer les modifications des schémas ou des tables attendus.

Solution

Vérifiez les règles de capture en exécutant la requête suivante :

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

Vous pouvez également interroger directement le statut de la capture et le message d’erreur :

SELECT CLIENT_NAME, STATUS, ERROR_MESSAGE FROM ALL_CAPTURE;

Cette requête renvoie :

  • CLIENT_NAME : Le nom du client XStream (serveur sortant).

  • STATUS : Le statut actuel du processus de capture (par exemple,``ENABLED`` ,``DISABLED`` ,``ABORTED``).

  • ERROR_MESSAGE : Tout message d’erreur associé au processus de capture.

Erreur ORA -21560 : l’argument last_position est nul, non valide ou hors plage

Le connecteur a essayé de se connecter à une position SCN pour laquelle les journaux « redo » ne sont plus disponibles.

Solution

Confirmez le problème en exécutant la requête suivante. LeSCN pour``Last SCN processed by XStream`` doit être supérieur au SCN le plus bas pour lequel il existe des journaux « redo ».

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;

Pour une reprise à partir de cette erreur, recréez le serveur XStream sortant. Pour plus d’informations, voir Les problèmes se produisent avec le serveur XStream sortant.

Erreur ORA-26701 : le processus de flux XOUT1 n’existe pas

Le serveur XStream sortant est introuvable sur l’instance de base de données.

Solution

Vérifiez ce qui suit :

  • Le nom de la base de données dans``Oracle Source Parameters``|ra|``XStream Out Server URL`` pointe vers l’instance de base de données avec le serveur XStream sortant, pas une autre PDB.

  • XStream a été créé sur cette instance et porte le même nom.

Erreur ORA -01722 : nombre non valide lors de la création du serveur sortant

L’exécution de DBMS_XSTREAM_ADM.CREATE_OUTBOUND échoue avec :

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

Cette erreur est trompeuse. Le serveur sortant existe déjà.

Solution

Aucune action n’est nécessaire. Utilisez le serveur sortant existant.

Les problèmes se produisent avec le serveur XStream sortant

Plusieurs problèmes, tels que journaux redo supprimés ou état LogMiner corrompu, peuvent être résolus en recréant le serveur XStream sortant.

Solution

  1. Supprimez le serveur sortant existant :

    BEGIN
       DBMS_XSTREAM_ADM.DROP_OUTBOUND('XOUT1');
    END;
    /
    
  2. Créez à nouveau le serveur sortant. Pour plus d’informations, voir Créer un serveur sortant XStream.