Charger des données à l'aide d'Oracle Data Pump

Oracle Data Pump permet un déplacement très rapide des données et des métadonnées en masse entre les bases de données Oracle et l'infrastructure Autonomous Database sur une infrastructure Exadata dédiée.

La fonction d'importation d'Oracle Data Pump permet d'importer des données à partir de fichiers Data Pump résidant dans le service de stockage d'objets pour Oracle Cloud Infrastructure et dans le service de stockage d'objets pour Oracle Cloud Infrastructure version classique. Vous pouvez enregistrer vos données dans le magasin d'objets en nuage et utiliser Oracle Data Pump pour charger les données dans la base de données autonome.

Note :

Pour une alternative à la lecture des rubriques suivantes, vous pouvez suivre le Laboratoire 9 : Migrer avec l'extraction de données dans l'atelier Oracle Autonomous Database dédié aux administrateurs de parc.

Exporter les données de votre base de données Oracle existante

Tout d'abord, vous utilisez la fonction d'exportation d'Oracle Data Pump pour exporter vos schémas Oracle Database existants. Ensuite, vous utilisez la fonction d'importation d'Oracle Data Pump pour les migrer vers une base de données autonome.

Oracle recommande d'utiliser les paramètres d'exportation suivants pour une migration plus rapide et plus facile vers la base de données autonome :

exclude=cluster, db_link
parallel=n
schemas=schema name
dumpfile=export%l.dmp

La fonction d'exportation d'Oracle Data Pump fournit plusieurs modes d'exportation. Oracle recommande d'utiliser le mode schéma pour la migration vers la base de données autonome. Vous pouvez lister les schémas à exporter à l'aide du paramètre schemas.

Pour une migration plus rapide, exportez vos schémas dans plusieurs fichiers Oracle Data Pump et utilisez le parallélisme. Vous pouvez spécifier le format du nom du fichier de vidage à utiliser avec le paramètre dumpfile. Réglez le paramètre parallèle à au moins le nombre d'UC que vous avez dans Autonomous Database.

Les paramètres Exclure et data_options garantissent que les types d'objet non disponibles dans Autonomous Database ne sont pas exportés et que les partitions de table sont regroupées afin de pouvoir être importées plus rapidement dans Autonomous Database.

Note :

Oracle recommande de collecter les statistiques à jour avant d'exécuter la commande expdp. L'ensemble dbms_stats fournit plusieurs procédures pour collecter les statistiques les plus récentes. Les statistiques sont automatiquement ajoutées au fichier de vidage de l'exportation. Elles permettent de déterminer la taille des objets et d'optimiser le parallélisme pendant l'importation. Pour plus d'informations, consultez Notes opérationnellesDBMS_STATS dans Informations de référence sur les ensembles et les types PL/SQL pour Oracle Database 19c et Références sur les ensembles et les types PL/SQL pour Oracle Database 23ai.

L'exemple suivant exporte le schéma SH à partir d'une base de données Oracle source pour la migration vers une base de données autonome avec 16 UC :

expdp sh/sh@orcl \
exclude=cluster, db_link \
parallel=16 \
schemas=sh \
dumpfile=export%l.dmp \
encryption_pwd_prompt=yes
Notes sur les paramètres Data Pump :
  • Si, lors de l'exportation avec expdp, vous utilisez le paramètre encryption_pwd_prompt=yes, utilisez également encryption_pwd_prompt=yes lors de l'importation et entrez le même mot de passe à l'invite impdp pour déchiffrer les fichiers de vidage (n'oubliez pas le mot de passe fourni lors de l'exportation). La longueur maximale du mot de passe de chiffrement est de 128 octets.

  • Le paramètre dumpfile prend en charge les caractères génériques %L et %l en plus des caractères génériques %U et %u existants. Par exemple, dumpfile=export%L.dmp.

    Utilisez le caractère générique %L ou %l pour les exportations à partir d'Oracle Database version 12.2 ou ultérieure. Ce caractère générique étend le nom du fichier dump en un entier incrémenté de 3 chiffres à 10 chiffres et de largeur variable, commençant à 100 et se terminant à 2147483646.

    Utilisez le caractère générique %U ou %u existant pour les exportations à partir d'Oracle Database avant la version 12.2. Si vous utilisez cette option et que plus de 99 fichiers de vidage sont nécessaires, vous devez spécifier plusieurs noms de fichier de vidage, chacun avec le paramètre %U ou %u.

Vous pouvez utiliser d'autres paramètres d'exportation d'Oracle Data Pump, tels que compression, selon vos besoins. Pour plus d'informations, voir Exportation Oracle Data Pump dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

Charger les fichiers d'exportation vers le stockage d'objets en nuage

Avant de pouvoir importer les données que vous avez exportées à partir de la base de données Oracle source, vous devez charger les fichiers d'exportation dans le stockage d'objets en nuage.

Vous pouvez charger les fichiers d'exportation dans un seau de stockage existant dans le service de stockage d'objets pour Oracle Cloud Infrastructure ou dans un conteneur de stockage existant dans le service de stockage d'objets pour Oracle Cloud Infrastructure version classique. Vous pouvez également utiliser la procédure ci-dessous pour créer un nouveau seau de stockage et y charger les fichiers d'exportation.

  1. Connectez-vous à votre compte Oracle Cloud à l'adresse cloud.oracle.com.

  2. Dans la liste de navigation de gauche d'Oracle Cloud Infrastructure, sélectionnez Stockage d'objets, puis Stockage d'objets dans la sous-liste.

  3. Sélectionnez un compartiment dans lequel créer le seau de stockage.

  4. Cliquez sur Créer un seau.

  5. Dans la boîte de dialogue Créer un compartiment, donnez un nom au compartiment, puis cliquez sur Créer un compartiment.

  6. Une fois le seau créé, cliquez sur son nom dans la liste de seaux pour afficher la page de détails associée.

  7. Dans la zone Objets, cliquez sur Télécharger les objets.

  8. Dans la boîte de dialogue Charger les objets, cliquez sur le lien Sélectionner des fichiers dans la boîte Sélectionner des fichiers sur votre ordinateur.

  9. Dans le navigateur de fichiers, accédez aux fichiers d'exportation et sélectionnez-les. Cliquez ensuite sur Ouvrir.

  10. Dans la boîte de dialogue Charger les objets, cliquez sur Charger les objets pour lancer le chargement des fichiers sélectionnés.

  11. Une fois les chargements terminés, fermez la boîte de dialogue Charger les objets.

Importer des données à l'aide d'Oracle Data Pump

Oracle recommande d'utiliser la dernière version d'Oracle Data Pump pour importer des données de fichiers Oracle Data Pump vers votre base de données autonome, car elle contient des améliorations et des correctifs pour une meilleure expérience.

Téléchargez la dernière version de l'ensemble Oracle Instant Client Basic et l'ensemble d'outils (qui inclut Oracle Data Pump) pour votre plate-forme à partir des téléchargements Oracle Instant Client. Consultez les instructions d'installation sur la page de téléchargement pour connaître les étapes d'installation requises après le téléchargement d'Oracle Instant Client.

Dans Oracle Data Pump version 18.3 et ultérieures, l'argument credential authentifie Oracle Data Pump auprès du service de stockage d'objets en nuage que vous utilisez pour vos fichiers sources. L'argument dumpfile est une liste d'URL de fichiers Oracle Data Pump séparées par des virgules.

Le paramètre credential n'existe pas dans les versions 12.2.0.1 et antérieures de la fonction d'importation d'Oracle Data Pump. Si vous utilisez une ancienne version de la fonction d'importation d'Oracle Data Pump, vous devez définir une propriété de données d'identification par défaut pour la base de données autonome et utiliser le mot clé default_credential dans le paramètre dumpfile.

Dans Oracle Data Pump, si vos fichiers sources résident dans le service Oracle Cloud Infrastructure Object Storage, vous pouvez utiliser les URI natifs d'Oracle Cloud Infrastructure ou les URI Swift. Voir Formats d'URI du service de stockage d'objets en nuage pour plus de détails sur ces formats d'URI.

  1. Stockez vos données d'identification du service de stockage d'objets en nuage à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL.

    L'importation Data Pump prend en charge les données d'identification basées sur un jeton d'authentification Oracle Cloud Infrastructure et les données d'identification basées sur une clé de signature Oracle Cloud Infrastructure.

    Exemple 1 : Pour créer des données d'identification de jeton d'authentification pour Oracle Cloud Infrastructure :
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'DEF_CRED_NAME',
      username => 'adb_user@oracle.com',
      password => 'password'
      );
    END;
    /
    Exemple 2 : Pour créer des données d'identification basées sur une clé de signature Oracle Cloud Infrastructure :
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL (
        credential_name => 'DEF_CRED_NAME',
        user_ocid       => ‘ocid1.user.oc1..unique_ID’,
        tenancy_ocid    => ‘ocid1.tenancy.oc1..unique_ID’,
        private_key     => ‘MIIEogIBAAKCAQEAtUnxbmre.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
        fingerprint     => ‘fingerprint value’
      );
    END;
    /

    Pour plus d'informations sur les types de données d'identification pour le service de stockage d'objets en nuage pour Oracle Cloud Infrastructure, voir Procédure CREATE_CREDENTIAL.

  2. Si vous utilisez la version 12.2.0.1 ou une version antérieure d'Oracle Data Pump, vous devez définir les données d'identification comme données d'identification par défaut pour Autonomous Database, en tant qu'utilisateur ADMIN. Par exemple :
    alter database property set default_credential = 'ADMIN.DEF_CRED_NAME'
  3. Exécutez la fonction d'importation d'Oracle Data Pump avec le paramètre dumpfile réglé à la liste des URL de fichier dans le service de stockage d'objets en nuage.
    • Oracle Data Pump version 18.3 ou ultérieure : Réglez le paramètre credential au nom des données d'identification que vous avez créées à l'étape 1. Par exemple :

      impdp admin/password@ATPC1_high \
        credential=def_cred_name \
        dumpfile= https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/export%l.dmp \ 
        parallel=16 \
        transform=segment_attributes:n \
        exclude=cluster, db_link

      Dans cet exemple, dumpfile est un URI Swift d'Oracle Cloud Infrastructure qui spécifie tous les fichiers dont le nom correspond à export<number>.dmp dans le seau mybucket de la région us-phoenix-1. (idthydc0kinr est l'espace de noms du stockage d'objets dans lequel réside le seau.)

    • Oracle Data Pump version 12.2.0.1 ou antérieure : Indiquez le mot clé default_credential et un deux-points au début du paramètre dumpfile. Par exemple :

      impdp admin/password@ATPC1_high \
        dumpfile=default_credential:https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/export%l.dmp \
        parallel=16 \      
        transform=segment_attributes:n \      
        exclude=cluster, db_link
    Notes sur l'importation pour l'extraction de données
    • Si, lors de l'exportation avec expdp, vous avez utilisé le paramètre encryption_pwd_prompt=yes, utilisez encryption_pwd_prompt=yes et entrez le même mot de passe à l'invite impdp que celui que vous avez spécifié lors de l'exportation.

    • Le paramètre dumpfile prend en charge les caractères génériques %L et %l en plus des caractères génériques %U et %u existants. Par exemple, dumpfile=export%L.dmp.

      Utilisez le caractère générique %L ou %l pour les exportations à partir d'Oracle Database version 12.2 ou ultérieure. Ce caractère générique étend le nom du fichier dump en un entier incrémenté de 3 chiffres à 10 chiffres et de largeur variable, commençant à 100 et se terminant à 2147483646.

      Utilisez le caractère générique %U ou %u existant pour les exportations à partir d'Oracle Database avant la version 12.2. Si vous utilisez cette option et que plus de 99 fichiers de vidage sont nécessaires, vous devez spécifier plusieurs noms de fichier de vidage, chacun avec le paramètre %U ou %u.

    • Pour une meilleure performance d'importation, utilisez le service de base de données high pour votre connexion d'importation et réglez le paramètre parallel au nombre d'UC de votre base de données.

    • Pour connaître le format d'URL du fichier de vidage pour les différents services de stockage d'objets en nuage, voir Formats d'URI du service de stockage d'objets en nuage.

    • Pour effectuer une importation complète ou pour importer des objets appartenant à d'autres utilisateurs, vous devez disposer du rôle DATAPUMP_CLOUD_IMP.

    Pour plus d'informations sur les objets non autorisés dans les bases de données autonomes, voir Limitations liées à l'utilisation des commandes SQL.

    Pour des informations détaillées sur les paramètres d'importation, voir Importation d'Oracle Data Pump dans Utilitaires d'Oracle Database 19c ou Utilitaires d'Oracle Database 23ai.

Accéder aux fichiers journaux pour l'importation de l'extraction de données

Les fichiers journaux des opérations d'importation de l'extraction de données sont stockés dans le répertoire que vous spécifiez avec le paramètre de répertoire de l'extraction de données impdp.

Pour accéder au fichier journal, vous devez déplacer ce fichier vers le stockage d'objets en nuage à l'aide de la procédure DBMS_CLOUD.PUT_OBJECT. Par exemple, le bloc PL/SQL suivant déplace le fichier import.log vers votre stockage d'objets en nuage :

BEGIN
  DBMS_CLOUD.PUT_OBJECT(
    credential_name => 'DEF_CRED_NAME',
    object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/import.log',
    directory_name  => 'DATA_PUMP_DIR',
    file_name => 'import.log');
END;
/

Dans cet exemple, namespace-string est l'espace de noms du stockage d'objets pour Oracle Cloud Infrastructure et bucketname est le nom du seau. Pour plus d'informations, voir Présentation des espaces de noms du stockage d'objets.

Pour plus de renseignements, consultez la page DBMS_CLOUD pour les objets et les fichiers.