Configurer une base de données Oracle connectable

Datastream est compatible avec l'architecture mutualisée Oracle, où une seule base de données de conteneurs (CDB) contient une ou plusieurs bases de données connectables (PDB). Chaque base de données connectable est une base de données autonome avec un identifiant et un nom uniques, et qui peut être gérée indépendamment.

Pour configurer une base de données connectable Oracle auto-hébergée afin de pouvoir l'utiliser avec Datastream, 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 pouvez trouver un compromis entre la protection de la base de données contre le manque d'espace disque et l'échec du flux en raison d'une perte de position dans le 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 les règles de conservation des données pour toutes les bases de données connectables de votre base de données de conteneurs.

    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 ce faire, 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;
    

    Choisissez ensuite d'activer la journalisation pour des tables spécifiques ou pour l'ensemble de la base de données connectable.

    Pour consigner les modifications apportées uniquement à des tables spécifiques, connectez-vous au conteneur de base de données connectable 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 de votre base de données ou la totalité d'entre elles, 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 possède la même identité dans le conteneur CDB$ROOT et dans les bases de données connectables. Un utilisateur commun peut se connecter au conteneur CDB$ROOT et effectuer des opérations dans n'importe quelle base de données connectable dans laquelle il dispose de droits. Le nom d'utilisateur commun doit commencer par C## ou c##.

  6. Accordez les droits appropriés à l'utilisateur standard qui sera utilisé pour se connecter à votre base de données. Des autorisations différentes sont requises au niveau du conteneur CDB$ROOT et de la base de données connectable.

    • 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 connectable 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 l'accès SELECT à 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;