Configurer une base de données Oracle enfichable

Datastream est compatible avec l'architecture multitenancy d'Oracle, dans laquelle une seule base de données de conteneurs (CDB) contient une ou plusieurs bases de données connectables (PDB). Chaque base de données enfichable est une base de données autonome avec un ID et un nom uniques, et peut être gérée indépendamment.

Vous pouvez configurer votre base de données Oracle enfichable pour l'utiliser avec les méthodes CDC suivantes:

Pour en savoir plus sur le lecteur de journaux binaires et l'API LogMiner, consultez la page Utiliser les fichiers journaux de rétablissement de base de données Oracle.

Pour obtenir des instructions détaillées sur la configuration de votre base de données Oracle source pour chacune de ces méthodes, consultez les sections suivantes.

Configurer votre base de données Oracle enfichable pour le lecteur de journaux binaires

Pour configurer votre base de données Oracle enfichable pour l'utiliser avec la méthode CDC du lecteur de journaux binaires, procédez comme suit:

  1. Sélectionnez l'une des méthodes suivantes pour accéder à vos fichiers journaux:

    • Gestion automatique de l'espace de stockage (ASM): si vous sélectionnez cette option, vous devez créer une connexion ASM dédiée et fournir ses informations lorsque vous créez votre profil de connexion.
    • Répertoires de base de données: si vous sélectionnez cette option, vous devez créer des objets de répertoire de base de données qui pointent vers les fichiers journaux de relecture et les fichiers journaux archivés, et accorder à votre utilisateur de base de données un accès READ aux répertoires:
    CREATE DIRECTORY DIRECTORY_NAME_1 as 'ONLINE_REDO_LOGS_PATH';
    CREATE DIRECTORY DIRECTORY_NAME_2 as 'ARCHIVED_REDO_LOGS_PATH';
    GRANT READ ON DIRECTORY DIRECTORY_NAME_1 to USER_NAME;
    GRANT READ ON DIRECTORY DIRECTORY_NAME_2 to USER_NAME;

    Remplacez les éléments suivants :

    • DIRECTORY_NAME_1: nom du répertoire des fichiers de journal de relecture en ligne.
    • DIRECTORY_NAME_2: nom du répertoire des fichiers de journal de relecture archivés.
    • ONLINE_REDO_LOGS_PATH: chemin d'accès au répertoire où les fichiers de journal de redo en ligne doivent être stockés.
    • ARCHIVED_REDO_LOGS_PATH: chemin d'accès au répertoire dans lequel les fichiers journaux archivés doivent être stockés.
    • USER_NAME: nom de l'utilisateur de la base de données auquel vous souhaitez accorder l'accès READ.

    Si vous sélectionnez la méthode de lecteur de journaux binaires et que vous utilisez des répertoires de base de données, vous devez fournir le nom du journal de relecture et du répertoire de journaux archivés lorsque vous créez votre flux.

  2. Vérifiez que votre base de données s'exécute en mode ARCHIVELOG.

    Pour ce faire, connectez-vous à votre base de données Oracle et exécutez la commande suivante à l'invite SQL:

    SELECT LOG_MODE FROM V$DATABASE;

    1. Si le résultat est ARCHIVELOG, passez à l'étape suivante.
    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;
    4. Les fichiers journaux archivés consomment de l'espace disque. Vous devez donc configurer le paramètre DB_RECOVERY_FILE_DEST_SIZE pour votre base de données. Utilisez ce paramètre pour spécifier (en octets) la limite stricte de l'espace total à utiliser pour les fichiers de récupération de base de données cibles. En définissant ce paramètre, vous gérez le compromis entre la protection de la base de données contre l'épuisement de l'espace disque et l'échec du flux en raison de la perte de la position du journal.

  3. 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 :

    TARGET /
    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).

  4. 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.

  5. Activez les données de journal supplémentaires. Pour cela, commencez par activer la journalisation complémentaire minimale au niveau de 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;

    Remplacez les éléments suivants :

    • SCHEMA: nom du schéma contenant la table.
    • TABLE: nom de la table pour laquelle vous souhaitez consigner les modifications.

    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;
  6. Créez un utilisateur commun. Un utilisateur commun a la même identité dans le conteneur CDB$ROOT et dans les bases de données enfichables. Un utilisateur standard peut se connecter au conteneur CDB$ROOT et y effectuer des opérations, ainsi que dans n'importe quelle base de données connectable pour laquelle il dispose de droits. Le nom d'utilisateur commun doit commencer par C## ou c##.

  7. 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 CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USER_NAME;
    GRANT SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    GRANT SELECT ANY DICTIONARY TO USER_NAME;
    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;
    GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;

    Remplacez USER_NAME par le nom du compte utilisateur que vous prévoyez d'utiliser pour vous connecter à votre base de données.

Configurer votre base de données Oracle enfichable pour LogMiner

Pour configurer une base de données plug-in Oracle auto-hébergée afin de pouvoir l'utiliser avec l'API LogMiner, procédez comme suit:

  1. Vérifiez que votre base de données s'exécute en mode ARCHIVELOG. Pour ce faire, exécutez la commande suivante à partir du conteneur CDB$ROOT:

    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;
      
    4. Les fichiers journaux archivés consomment de l'espace disque. Vous devez donc configurer le paramètre DB_RECOVERY_FILE_DEST_SIZE pour votre base de données. Utilisez ce paramètre pour spécifier (en octets) la limite stricte de l'espace total à utiliser pour les fichiers de récupération de base de données cibles. En définissant ce paramètre, vous gérez le compromis entre la protection de la base de données contre l'épuisement de l'espace disque et l'échec du flux en raison de la perte de la position du journal.

  2. Définissez une règle de conservation des données pour votre base de données en exécutant la commande Oracle Recovery Manager (RMAN) suivante à partir du conteneur CDB$ROOT:

    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
    

    La commande définit la règle de conservation des données pour toutes les bases de données enfichables de votre base de données de conteneur.

    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 au niveau du conteneur CDB$ROOT 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 enfichable.

    Pour n'enregistrer les modifications que dans des tables spécifiques, connectez-vous au conteneur de base de données enfichable et exécutez la commande suivante pour chaque table que vous souhaitez répliquer:

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

    Remplacez les éléments suivants :

    • SCHEMA: nom du schéma contenant la table.
    • TABLE: nom de la table pour laquelle vous souhaitez consigner les modifications.

    Pour répliquer plusieurs tables ou l'intégralité de votre base de données, envisagez d'activer la journalisation pour l'ensemble 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. Créez un utilisateur commun. Un utilisateur commun a la même identité dans le conteneur CDB$ROOT et dans les bases de données enfichables. Un utilisateur standard peut se connecter au conteneur CDB$ROOT et y effectuer des opérations, ainsi que dans n'importe quelle base de données connectable pour laquelle il dispose de droits. Le nom d'utilisateur commun doit commencer par C## ou c##.

  6. Accordez les droits appropriés à l'utilisateur commun qui servira à établir la connexion à votre base de données. Différentes autorisations sont requises au niveau du conteneur CDB$ROOT et de la base de données enfichable.

    • Connectez-vous au conteneur CDB$ROOT et exécutez les commandes suivantes:
    GRANT CREATE SESSION TO USER_NAME;
    GRANT SET CONTAINER TO USER_NAME;
    GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
    GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME;
    GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME;
    GRANT LOGMINING TO USER_NAME;
    GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
    
    • Connectez-vous à la base de données enfichable et exécutez les commandes suivantes:
    GRANT CREATE SESSION TO USER_NAME;
    GRANT SET CONTAINER TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME;
    GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME;
    GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;
    
  7. Accordez à l'utilisateur commun SELECT l'accès à la vue DBA_EXTENTS de votre base de données. Ce droit vous permet d'utiliser le remplissage basé sur ROWID pour votre source Oracle:

    GRANT SELECT ON DBA_EXTENTS TO USER_NAME;

Étape suivante