Configurer votre base de données Oracle source

Présentation

Cette section explique comment configurer votre base de données Oracle source afin que Datastream puisse en extraire des données.

Configurer votre base de données Oracle source

Avant de pouvoir utiliser Datastream pour extraire des données de votre base de données Oracle source, vous devez configurer votre base de données de différentes manières :

  • Configurer la journalisation des archives pour suivre les modifications apportées à votre base de données, telles que les opérations insert, update, delete et rename.
  • Octroyer des droits appropriés au compte utilisateur qui servira à établir la connexion à votre base de données.
  • Définir une règle de conservation des données pour votre base de données afin de déterminer les données à archiver, leur durée de conservation, si elles doivent archivées ou détruites à la fin de la durée de conservation, etc…

Pour en savoir plus sur la configuration de chacun de ces types de base de données Oracle, consultez les sections suivantes.

Datastream fonctionne actuellement avec les types de bases de données Oracle suivants :

Configurer une base de données Amazon RDS pour Oracle

  1. Vérifiez que votre base de données s'exécute en mode ARCHIVELOG. Pour ce faire, exécutez la commande suivante :

    SELECT LOG_MODE FROM V$DATABASE;

    1. Si le résultat est ARCHIVELOG, passez à l'étape C.

    2. Si le résultat est NOARCHIVELOG, vous devez activer le mode ARCHIVELOG pour votre base de données.

    3. Définissez une règle de conservation des données pour votre base de données en exécutant la commande suivante :

      exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',96);
      

      Nous vous recommandons de conserver les sauvegardes et les journaux d'archive pendant au moins quatre jours (durée recommandée de sept jours).

    4. Configurez la règle de rotation des fichiers journaux Oracle. Nous vous recommandons de définir une taille de fichier journal maximale de 512 Mo.

  2. Activez les données de journal supplémentaires. Pour cela, commencez par activer la journalisation complémentaire sur la base de données en exécutant la commande suivante :

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
    

    Ensuite, indiquez si vous souhaitez activer la journalisation pour des tables spécifiques ou pour l'ensemble de la base de données.

    Pour n'enregistrer les modifications que dans des tables spécifiques, exécutez la commande suivante pour chaque table que vous souhaitez répliquer :

    ALTER TABLE [SCHEMA].[TABLE] ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
    

    Pour répliquer la plupart ou la totalité des tables de votre base de données, envisagez d'activer la journalisation pour l'intégralité de la base de données.

    Lorsque l'invite SQL s'affiche, exécutez la commande suivante pour activer les données de journalisation complémentaire pour l'intégralité de la base de données :

    exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','ALL');
  3. Accordez les droits requis au compte utilisateur qui servira à établir la connexion à votre base de données. Pour cela, exécutez la commande suivante :

    GRANT EXECUTE_CATALOG_ROLE TO [user];
    GRANT CONNECT TO [user];
    GRANT CREATE SESSION TO [user];
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$DATABASE','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$ARCHIVED_LOG','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_LOGS','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('V_$LOGMNR_CONTENTS','[USER]','SELECT');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR','[USER]','EXECUTE');
    exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOGMNR_D','[USER]','EXECUTE');
    GRANT SELECT ANY TRANSACTION TO [user];
    GRANT SELECT ANY TABLE TO [user];
    

    Si votre base de données source est Oracle en version 12c ou ultérieure, accordez le droit supplémentaire suivant :

    GRANT LOGMINING TO [user];

Configurer une base de données Oracle auto-hébergée

  1. Vérifiez que votre base de données s'exécute en mode ARCHIVELOG. Pour ce faire, exécutez la commande suivante :

    SELECT LOG_MODE FROM V$DATABASE;

    1. Si le résultat est ARCHIVELOG, passez à l'étape 2.

    2. Si le résultat est NOARCHIVELOG, vous devez activer le mode ARCHIVELOG pour votre base de données.

    3. Exécutez les commandes suivantes en tant que SYSDBA :

      SHUTDOWN IMMEDIATE;
      STARTUP MOUNT;
      ALTER DATABASE ARCHIVELOG;
      ALTER DATABASE OPEN;
      
  2. Définissez une règle de conservation des données pour votre base de données en exécutant les commandes RMAN (Oracle Recovery Manager) suivantes :

        RMAN > TARGET /
        RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
      

    Nous vous recommandons de conserver les sauvegardes et les journaux d'archive pendant au moins quatre jours (durée recommandée de sept jours).

  3. Revenez à l'invite SQL de l'outil de base de données que vous utilisez pour configurer la règle de rotation des fichiers journaux Oracle. Nous vous recommandons de définir une taille de fichier journal maximale de 512 Mo.

  4. Activez les données de journal supplémentaires. Pour cela, commencez par activer la journalisation complémentaire sur la base de données en exécutant la commande suivante :

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    

    Ensuite, indiquez si vous souhaitez activer la journalisation pour des tables spécifiques ou pour l'ensemble de la base de données.

    Pour n'enregistrer les modifications que dans des tables spécifiques, exécutez la commande suivante pour chaque table que vous souhaitez répliquer :

    ALTER TABLE [SCHEMA].[TABLE] ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
    

    Pour répliquer la plupart ou la totalité des tables de votre base de données, envisagez d'activer la journalisation pour l'intégralité de la base de données.

    Exécutez la commande suivante pour activer les données de la journalisation complémentaire pour l'intégralité de la base de données :

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (all) COLUMNS;
  5. Accordez les droits requis au compte utilisateur qui servira à établir la connexion à votre base de données. Pour cela, exécutez la commande suivante :

    GRANT EXECUTE_CATALOG_ROLE TO [user];
    GRANT CONNECT TO [user];
    GRANT CREATE SESSION TO [user];
    GRANT SELECT ON SYS.V_$DATABASE TO [user];
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO [user];
    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO [user];
    GRANT SELECT ON SYS.V_$LOGMNR_LOGS TO [user];
    GRANT EXECUTE ON DBMS_LOGMNR TO [user];
    GRANT EXECUTE ON DBMS_LOGMNR_D TO [user];
    GRANT SELECT ANY TRANSACTION TO [user];
    GRANT SELECT ANY TABLE TO [user];
    

    Si votre base de données source est Oracle en version 12c ou ultérieure, accordez le droit supplémentaire suivant :

    GRANT LOGMINING TO [user];