Configurer une base de données Oracle autogérée

  1. Vérifiez que votre base de données s'exécute en mode ARCHIVELOG.
  2. Pour ce faire, connectez-vous à votre base de données Oracle et exécutez la commande suivante dans l'invite SQL:

    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 utilisent 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 gérer le 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.

  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 ce faire, 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 enregistrer 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. 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_NAME;
    GRANT CONNECT TO USER_NAME;
    GRANT CREATE SESSION TO USERNAME;
    GRANT SELECT ON SYS.V$DATABASE TO USERNAME;
    GRANT SELECT ON SYS.V$ARCHIVED_LOG TO USERNAME;
    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 SELECT ANY TRANSACTION TO USER_NAME;
    GRANT SELECT ANY TABLE TO USER_NAME;
    

    Si votre organisation n'autorise pas l'octroi de l'autorisation GRANT SELECT ANY TABLE, utilisez la solution décrite dans la section Capture de données modifiées (CDC) Oracle de la page des questions fréquentes sur Datastream.

    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_NAME;