Chargement de données à l'aide d'Oracle Data Pump

Oracle Data Pump permet des déplacements très rapides de données et de métadonnées en masse entre les bases de données Oracle et Autonomous Database on Dedicated Exadata Infrastructure.

L'utilitaire d'import Data Pump permet d'importer des données à partir de fichiers Data Pump résidant sur Oracle Cloud Infrastructure Object Storage et Oracle Cloud Infrastructure Object Storage Classic. Vous pouvez enregistrer les données dans votre banque d'objets cloud et utiliser Oracle Data Pump pour charger les données vers Autonomous Database.

Remarques :

Afin d'essayer d'abord de lire les rubriques suivantes, vous pouvez suivre l'exercice 9 sur la migration avec Data Pump dans l'atelier Oracle Autonomous Database Dedicated pour les administrateurs de parc.

Export des données de votre base de données Oracle existante

Commencez par utiliser l'utilitaire d'export Oracle Data Pump pour exporter les schémas Oracle Database existants. Ensuite, utilisez Oracle Data Pump Import pour les migrer vers Autonomous Database.

Oracle recommande d'utiliser les paramètres d'export Data Pump suivants pour une migration plus rapide et plus facile vers Autonomous Database :

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

L'utilitaire d'export Oracle Data Pump fournit plusieurs modes d'export. Oracle recommande d'utiliser le mode de schéma pour la migration vers Autonomous Database. Vous pouvez répertorier les schémas à exporter à l'aide du paramètre schemas.

Pour accélérer la migration, exportez les schémas dans plusieurs fichiers Data Pump et utilisez le parallélisme. Vous pouvez spécifier le format de nom de fichier dump à utiliser avec le paramètre dumpfile. Définissez le paramètre parallel sur au moins le nombre d'UC que vous avez dans votre instance Autonomous Database.

Les paramètres exclude 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 d'être importées plus rapidement vers Autonomous Database.

Remarques :

Oracle recommande de collecter les statistiques à jour avant d'exécuter la commande expdp. Le package dbms_stats fournit plusieurs procédures pour collecter les dernières statistiques. Les statistiques sont automatiquement ajoutées au fichier dump d'export, et aident à déterminer la taille des objets et à optimiser le parallélisme lors de l'import. Pour plus d'informations, reportez-vous à DBMS_STATS Operational Notes dans le manuel Oracle Database 19c PL/SQL Packages and Types Reference et Oracle Database 23ai PL/SQL Packages and Types References.

L'exemple suivant permet d'exporter le schéma SH à partir d'une base de données Oracle source en vue d'une 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
Remarques relatives aux paramètres Data Pump :
  • Si, pendant l'export avec expdp, vous utilisez le paramètre encryption_pwd_prompt=yes, vous devez également utiliser encryption_pwd_prompt=yes avec l'import et saisir le même mot de passe à l'invite impdp pour décrypter les fichiers dump (n'oubliez pas le mot de passe que vous fournissez pendant l'export). La longueur maximale du mot de passe de cryptage 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 hérités. 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 supérieure. Ce caractère générique étend le nom du fichier dump en un entier incrémentant de 3 chiffres à 10 chiffres, de largeur variable, commençant à 100 et se terminant à 2147483646.

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

Vous pouvez utiliser d'autres paramètres d'export Data Pump, tels que compression, en fonction de vos besoins. Pour plus d'informations, reportez-vous à Export Oracle Data Pump dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

Téléchargement des fichiers d'export vers le stockage d'objet cloud

Pour pouvoir importer les données exportées à partir de la base de données Oracle source, vous devez télécharger les fichiers d'export vers le stockage d'objet cloud.

Vous pouvez télécharger les fichiers d'export vers un bucket de stockage existant dans Oracle Cloud Infrastructure Object Storage ou un conteneur de stockage existant dans Oracle Cloud Infrastructure Object Storage Classic. Vous pouvez également suivre la procédure ci-dessous pour créer un bucket de stockage et y télécharger les fichiers d'export.

  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 Object Storage, puis Object Storage dans la sous-liste.

  3. Choisissez le compartiment dans lequel créer le bucket de stockage.

  4. Cliquez sur Créer un bucket.

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

  6. Une fois le bucket créé, cliquez sur son nom dans la liste des buckets pour afficher la page Détails du bucket correspondante.

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

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

  9. Dans l'explorateur de fichiers, accédez aux fichiers d'export et sélectionnez-les. Ensuite, cliquez sur Ouvrir.

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

  11. Une fois les téléchargements terminés, fermez la boîte de dialogue Télécharger les objets.

Import 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 à partir de fichiers Data Pump vers votre base de données autonome, car elle comporte des améliorations et des correctifs pour une meilleure expérience.

Téléchargez la dernière version du package Oracle Instant Client Basic et du package d'outils, qui inclut Oracle Data Pump, pour votre plate-forme à partir de la page Téléchargements Oracle Instant Client. Reportez-vous aux instructions d'installation de la page de téléchargement pour installation sur votre plate-forme afin de connaître les étapes d'installation requises après le téléchargement d'Oracle Instant Client.

Dans Oracle Data Pump versions 18.3 et ultérieures, l'argument credential authentifie Data Pump auprès du service Cloud Object Storage que vous utilisez pour vos fichiers source. L'argument dumpfile est une liste d'URL séparées par une virgule pour vos fichiers Data Pump.

Data Pump versions 12.2.0.1 et antérieures ne dispose pas du paramètre credential. Si vous utilisez une ancienne version de l'utilitaire d'import Data Pump, vous devez définir une propriété d'informations d'identification par défaut pour Autonomous Database et utiliser le mot-clé default_credential dans le paramètre dumpfile.

Dans Oracle Data Pump, si vos fichiers source résident dans Oracle Cloud Infrastructure Object Storage, vous pouvez utiliser des URI natifs Oracle Cloud Infrastructure ou des URI Swift. Pour plus de détails sur ces formats d'URI, reportez-vous à Formats d'URI de stockage d'objet cloud.

  1. Stockez vos informations d'identification du stockage d'objet cloud à l'aide de la procédure DBMS_CLOUD.CREATE_CREDENTIAL.

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

    Exemple 1 : pour créer des informations d'identification de jeton d'authentification Oracle Cloud Infrastructure, procédez comme suit :
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'DEF_CRED_NAME',
      username => 'adb_user@oracle.com',
      password => 'password'
      );
    END;
    /
    Exemple 2 : pour créer des informations d'identification basées sur la clé de signature Oracle Cloud Infrastructure, procédez comme suit :
    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 d'informations d'identification pour Oracle Cloud Infrastructure Cloud Object Storage, reportez-vous à Procédure CREATE_CREDENTIAL.

  2. Si vous utilisez Oracle Data Pump version 12.2.0.1 ou antérieure, vous devez définir les informations d'identification en tant qu'informations d'identification par défaut pour votre instance Autonomous Database, en tant qu'utilisateur ADMIN. Par exemple :
    alter database property set default_credential = 'ADMIN.DEF_CRED_NAME'
  3. Exécutez l'utilitaire d'import Data Pump avec le paramètre dumpfile défini sur la liste des URL de fichier dans le stockage d'objet cloud.
    • Oracle Data Pump version 18.3 ou ultérieure : définissez le paramètre credential sur le nom des informations d'identification que vous avez créées à l'étape 1. 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 Oracle Cloud Infrastructure qui indique tous les fichiers dont le nom correspond à export<numéro>.dmp dans le bucket mybucket de la région us-phoenix-1. (idthydc0kinr est l'espace de noms du stockage d'objet dans lequel le bucket réside.)

    • Oracle Data Pump version 12.2.0.1 ou antérieure : démarrez la valeur du paramètre dumpfile avec le mot-clé default_credential et un point-virgule. 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
    Remarques relatives à l'import Data Pump
    • Si, pendant l'export avec expdp, vous avez utilisé le paramètre encryption_pwd_prompt=yes, utilisez encryption_pwd_prompt=yes et saisissez le même mot de passe que celui que vous avez indiqué lors de l'export à l'invite impdp.

    • 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 hérités. 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 supérieure. Ce caractère générique étend le nom du fichier dump en un entier incrémentant de 3 chiffres à 10 chiffres, de largeur variable, commençant à 100 et se terminant à 2147483646.

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

    • Pour des performances d'import optimales, utilisez le service de base de données high pour la connexion d'import et définissez le paramètre parallel sur le nombre d'UC de la base de données.

    • Pour le format d'URL de fichier dump des différents services Cloud Object Storage, reportez-vous à Formats d'URI de stockage d'objet cloud.

    • Pour effectuer un import complet ou 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 Autonomous Database, reportez-vous à Limites relatives à l'utilisation des commandes SQL.

    Pour obtenir des informations détaillées sur les paramètres d'import, reportez-vous à Import Oracle Data Pump dans Utilitaires 19c Oracle Database ou Utilitaires Oracle Database 23ai.

Accès aux fichiers journaux pour l'import Data Pump

Les fichiers journaux pour les opérations d'import Data Pump sont stockés dans le répertoire indiqué avec le paramètre directory de Data Pump impdp.

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

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 de stockage d'objet Oracle Cloud Infrastructure et bucketname est le nom du bucket. Pour plus d'informations, reportez-vous à Présentation des espaces de noms Object Storage.

Pour plus d'informations, reportez-vous à DBMS_CLOUD pour les objets et les fichiers.