Configurer CDC dans le mode XStream d'Oracle - 6.2

Talend Big Data Platform Studio Guide utilisateur

EnrichVersion
6.2
EnrichProdName
Talend Big Data Platform
task
Création et développement
Qualité et préparation de données
EnrichPlatform
Studio Talend

Le mode XStream est uniquement disponible pour Oracle v12 avec OCI dans le Studio Talend. Les sections suivantes détaillent les prérequis pour utiliser CDC pour le mode XStream des bases de données d'Oracle et fournissent un exemple de configuration de l'environnement à l'aide du mode XStream dans le Studio Talend.

Prérequis pour le mode XStream

Avant de procéder à la configuration de CDC à l'aide du mode XStream dans le Studio Talend, l'administrateur de la base de données Oracle doit effectuer les tâches suivantes :

Activer le mode archive log d'Oracle

Connectez-vous à la base de données Oracle en tant qu'administrateur et exécutez la requête suivante afin d'afficher les informations d'archivage de la base de données :

archive log list;

Si la base de données n'est pas en mode archive log, exécutez les requêtes suivantes afin d'activer le mode archive log :

shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
Ouvrez toutes les PDB pour une CDB dans Oracle

Lors de la configuration de XStream, si la base de données Oracle est une base de données de conteneurs (CDB), vous devez vous assurer que toutes les bases données enfichables (PDB) de la CDB sont ouvertes en mode lecture/écriture.

Pour voir le mode d'ouverture des PDB, connectez-vous à la base de données Oracle en tant qu'administrateur et exécutez la requête suivante :

select con_id, dbid, guid, name, open_mode from v$pdbs;

Afin d'ouvrir les PDB, connectez-vous à la base de données Oracle en tant qu'administrateur et exécutez la requête suivante :

alter pluggable database all open;
Configurez un administrateur XStream

Afin de configurer un administrateur XStream, connectez-vous à la base de données Oracle en tant qu'administrateur ayant les droits pour créer des utilisateurs, accorder des privilèges et créer des tablespaces. Procédez ensuite comme suit.

  1. Créez un tablespace pour l'administrateur XStream en exécutant la requête suivante. Passez cette étape si vous souhaitez utiliser un tablespace existant.

    CREATE TABLESPACE xstream_tbs DATAFILE '$ORACLE_HOME/dbs/xstream_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
  2. Créez un nouvel utilisateur pour l'administrateur XStream en exécutant les requêtes suivantes. Passez cette étape si vous souhaitez identifier un utilisateur existant.

    CREATE USER username IDENTIFIED BY password
    DEFAULT TABLESPACE xstream_tbs
    QUOTA UNLIMITED ON xstream_tbs;

    Note

    • Si vous créez un administrateur XStream dans une CDB, l'administrateur XStream doit être un utilisateur commun. Le nom d'un utilisateur commun doit commencer par c## ou C## et vous devez inclure la clause CONTAINER=ALL dans la requête.

    • Si vous créez un administrateur XStream à l'aide du tablespace par défaut d'Oracle, vous devez supprimer les clauses DEFAULT TABLESPACE et QUOTA UNLIMITED ON de la requête.

  3. Accordez des privilèges à l'administrateur XStream en exécutant les requêtes et procédures suivantes :

    GRANT DBA TO username;
    GRANT CONNECT, CREATE TABLE TO username;
    GRANT RESOURCE TO username;
    GRANT CREATE TABLESPACE TO username;
    GRANT UNLIMITED TABLESPACE TO username;
    GRANT SELECT_CATALOG_ROLE TO username;
    GRANT EXECUTE_CATALOG_ROLE TO username;
    GRANT CREATE SEQUENCE TO username;
    GRANT CREATE SESSION TO username;
    GRANT CREATE ANY VIEW TO username;
    GRANT CREATE ANY TABLE TO username;
    GRANT SELECT ANY TABLE TO username;
    GRANT COMMENT ANY TABLE TO username;
    GRANT LOCK ANY TABLE TO username;
    GRANT SELECT ANY DICTIONARY TO username;
    GRANT EXECUTE ON SYS.DBMS_CDC_PUBLISH to username;
    ALTER USER username QUOTA UNLIMITED ON USERS;
    GRANT CREATE ANY TRIGGER TO username;
    GRANT ALTER ANY TRIGGER TO username;
    GRANT DROP ANY TRIGGER TO username;
    BEGIN
       DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
          grantee => 'username',
          privilege_type => 'CAPTURE',
          grant_select_privileges => TRUE);
    END;
    /
    BEGIN
       DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
          grantee => 'username',
          privilege_type => 'APPLY',
          grant_select_privileges => TRUE);
    END;
    /

Notez que si vous accordez des privilèges à un utilisateur commun, vous devez inclure la clause CONTAINER=ALL dans les requêtes et procédures GRANT précédentes.

Configurer le CDC à l'aide du mode XStream

Cette section fournit des informations détaillées pour configurer XStream Out et XStream In dans le Studio Talend.

Configurer XStream Out dans le Studio Talend

Afin de configurer XStream Out dans le Studio Talend, procédez comme suit :

  1. Dans le Repository, configurez une connexion à une base de données Oracle en utilisant le type de connexion OCI puis récupérez le schéma de la table source dans laquelle les modifications de données sont capturées. Dans cet exemple, la table source est PERSON. Pour plus d'informations concernant la configuration d'une connexion à une base de données et la récupération de schéma de tables, consultez Centraliser des métadonnées de base de données.

  2. Sous la connexion à la base de données Oracle que vous avez créée, cliquez-droit sur CDC Foundation et, dans le menu contextuel, cliquez sur Create CDC. La boîte de dialogue [Create Change Data Capture] s'ouvre.

  3. Sélectionnez XStream mode et cliquez sur Show sample initialization script. La boîte de dialogue [Sample Initialization Script] s'ouvre.

    Notez qu'il s'agit uniquement d'un script d'exemple pour configurer XStream pour un serveur Orcale 12c. Vous devez mettre à jour le nom d'utilisateur, le mot de passe et les informations relative au tablespace selon vos paramètres. Exécutez ensuite les requêtes et procédures dans Oracle. Pour plus d'informations, consultez Prérequis pour le mode XStream.

    Cliquez sur OK afin de fermer la boîte de dialogue [Sample Initialization Script].

    Cliquez Finish afin de créer CDC dans Oracle et fermer la boîte de dialogue [Create Change Data Capture].

  4. Cliquez-droit sur la table source et cliquez sur add CDC depuis le menu contextuel.

  5. Cliquez-droit sur la table source et cliquez sur Generate XStreamsOut Script dans le menu contextuel. La boîte de dialogue [XStreamsOut generation script] s'ouvre.

  6. Dans le champ XStreams server name, saisissez le nom du serveur de sortie. La nom doit être un nom unique.

    Identifiez la (les) table(s) source en cochant la(les) case(s) correspondante(s) dans la colonne Include in script.

    Cliquez sur Generate Script. La boîte de dialogue [XStreamsOut Script] s'ouvre.

  7. Cliquez sur Execute afin de créer le serveur de sortie XStream dans Oracle.

    Notez que si le script d'exécution échoue, vous ne pourrez pas vous connecter à la base de données Oracle en tant qu'administrateur XStream et exécuter le script dans Oracle.

  8. Connectez-vous à la base de données Oracle en tant qu'administrateur XStream et vérifiez le statut du serveur de sortie en exécutant la requête suivante :

    select apply_name, status from dba_apply;

    Si vous souhaitez supprimer le serveur de sortie, exécutez les requêtes suivantes :

    exec DBMS_XSTREAM_ADM.DROP_OUTBOUND('xout'); 
    exec DBMS_XSTREAM_ADM.REMOVE_XSTREAM_CONFIGURATION(container => 'ALL');
Configurer XStream In dans le Studio Talend

Pour configurer XStream In dans le Studio Talend, procédez comme suit :

  1. Dans le Repository, configurez une connexion à une base de données Oracle en utilisant le type de connexion OCI puis récupérez le schéma de la table cible dans laquelle les modifications de données sont copiées. Dans cet exemple, la table cible est PERSON_BAK. Pour plus d'informations concernant la configuration d'une connexion à une base de données et la récupération de schéma de tables, consultez Centraliser des métadonnées de base de données.

  2. Sous la connexion à la base de données Oracle que vous avez créée, cliquez-droit sur CDC Foundation et, dans le menu contextuel, cliquez sur Create CDC. La boîte de dialogue [Create Change Data Capture] s'ouvre.

  3. Sélectionnez XStream mode et cliquez sur Show sample initialization script. La boîte de dialogue [Sample Initialization Script] s'ouvre.

    Notez qu'il s'agit uniquement d'un script d'exemple pour configurer XStream pour un serveur Oracle 12c. Vous devez mettre à jour le nom d'utilisateur, le mot de passe et les informations relative au tablespace selon vos paramètres. Exécutez ensuite les requêtes et procédures dans Oracle. Pour plus d'informations, consultez Prérequis pour le mode XStream.

    Cliquez sur OK afin de fermer la boîte de dialogue [Sample Initialization Script].

    Cliquez Finish afin de créer CDC dans Oracle et fermer la boîte de dialogue [Create Change Data Capture].

  4. Cliquez-droit sur la table cible et cliquez sur add CDC depuis le menu contextuel.

  5. Cliquez-droit sur la table cible et cliquez sur Generate XStreamsIn Script dans le menu contextuel. La boîte de dialogue [XStreamsIn generation script] s'ouvre.

  6. Dans le champ XStreams server name, saisissez le nom du serveur d'entrée.

    Dans le champ Queue name, saisissez le nom de la queue du serveur d'entrée.

    Cliquez sur Generate Script. Le script XStream In est généré et affiché.

  7. Cliquez sur Execute afin de créer le serveur d'entrée XStream dans Oracle.

    Notez que si le script d'exécution échoue, vous ne pourrez pas vous connecter à la base de données Oracle en tant qu'administrateur XStream et exécuter le script dans Oracle.

  8. Connectez-vous à la base de données Oracle en tant qu'administrateur XStream et vérifiez le statut du serveur d'entrée en exécutant la requête suivante :

    select apply_name, status from dba_apply;

    Si le serveur d'entrée est désactivé, démarrez-le en exécutant la requête suivante :

    exec DBMS_APPLY_ADM.START_APPLY('xin');

    Si vous souhaitez supprimer le serveur d'entrée, exécutez la requête suivante :

    exec DBMS_XSTREAM_ADM.DROP_INBOUND('xin');
    exec DBMS_XSTREAM_ADM.REMOVE_QUEUE('xin_queue'); 
    exec DBMS_APPLY_ADM.DELETE_ALL_ERRORS(apply_name => 'xin');

Extraire et synchroniser des modifications de données en mode XStream

Après avoir configuré l'environnement CDC en utilisant le mode XStream, vous pouvez créer un Job dans le Studio Talend et utiliser le composant Oracle CDC tOracleCDC afin d'extraire des modifications de données depuis le système source et le tOracleCDCOutput afin de copier les modifications de données dans le système cible.

Pour un exemple d'utilisation des composant Oracle CDC et pour plus d'informations concernant les propriétés et les paramètres des composants Oracle CDC, consultez le Guide de référence des Composants Talend.