Exporter des 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 Autonomous Database et les autres bases de données Oracle.

Oracle recommande d'utiliser la dernière version d'Oracle Data Pump pour exporter des données d'Autonomous Database vers d'autres bases de données Oracle, car elle comporte des améliorations et des correctifs pour une meilleure expérience. Téléchargez la dernière version d'Oracle Instant Client et le 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 et du package d'outils.

Pour déplacer des données d'une base de données autonome vers d'autres bases de données Oracle à l'aide d'Oracle Data Pump, utilisez l'une des options suivantes :
  • Option 1 : déplacement des données avec l'export Data Pump vers un répertoire Autonomous Database

    Utilisez Oracle Data Pump pour exporter les données vers un répertoire de votre base de données, puis déplacez les données du répertoire vers la banque d'objets cloud. Cette méthode peut être utile pour déplacer des données de votre base de données autonome vers plusieurs bases de données cible. Au lieu d'exporter les données vers plusieurs banques d'objets cloud, vous pouvez créer un unique ensemble de fichiers dump et l'utiliser pour plusieurs bases de données cible.

    Procédez comme suit pour déplacer des données à partir d'Autonomous Database en les exportant vers un répertoire de votre base de données :
    1. Exportez les données vers un répertoire sur Autonomous Database et déplacez l'ensemble de fichiers dump du répertoire vers la banque d'objets cloud. Reportez-vous à Export des données à l'aide d'un répertoire sur Autonomous Database.
    2. Téléchargez les fichiers dump à partir de la banque d'objets cloud, importez les données dans la base de données cible et nettoyez la banque d'objets cloud. Reportez-vous à Téléchargement des fichiers dump, exécution de l'import Data Pump et nettoyage de la banque d'objets.
  • Option 2 : déplacement des données avec l'export Data Pump vers la banque d'objets

    Avec cette méthode d'export, vous utilisez Oracle Data Pump pour exporter directement des données vers la banque d'objets. Cette méthode d'export est prise en charge avec Oracle Cloud Infrastructure Object Storage et Oracle Cloud Infrastructure Object Storage Classic. Elle permet d'éviter les tâches supplémentaires liées à la création d'un ensemble de fichiers dump dans un répertoire sur la base de données autonome, puis au déplacement de l'ensemble de fichiers dump vers la banque d'objets cloud. Si vous prévoyez de déplacer des données vers une base de données cible unique, cette méthode nécessite moins d'efforts et accélère le processus d'export.

    Procédez comme suit pour déplacer des données à partir d'Autonomous Database en les exportant directement vers la banque d'objets :
    1. Exportez directement des données d'Autonomous Database vers une banque d'objets cloud. Reportez-vous à Export direct de données d'Autonomous Database vers la banque d'objets.
    2. Téléchargez les fichiers dump à partir de la banque d'objets cloud, importez les données dans la base de données cible et nettoyez la banque d'objets cloud. Reportez-vous à Téléchargement des fichiers dump, exécution de l'import Data Pump et nettoyage de la banque d'objets.

Export des données à l'aide d'un répertoire sur Autonomous Database

Pour exporter des données à l'aide d'un répertoire sur Autonomous Database, vous devez d'abord créer un ensemble de fichiers dump avec les données exportées dans un répertoire de votre base de données, puis télécharger ces fichiers du répertoire de base de données vers la banque d'objets cloud.

Utilisation de Data Pump pour créer un ensemble de fichiers dump sur Autonomous Database

  1. Créez le répertoire dans lequel stocker les fichiers dump contenant les données exportées. Exemple :
    CREATE DIRECTORY data_export_dir as 'data_export';
  2. Exécutez l'utilitaire d'export Data Pump avec le paramètre de dumpfile défini, le paramètre de filesize défini sur une valeur inférieure à 50G, et le paramètre de directory défini. Par exemple, l'exemple suivant montre comment exporter un schéma nommé SALES dans une instance Autonomous Database nommée ATPC1 avec 64 ECPU :
    expdp sales/password@ATPC1_high 
    directory=data_export_dir 
    dumpfile=exp%L.dmp 
    parallel=16
    encryption_pwd_prompt=yes
    filesize=1G
    logfile=export.log
    Remarques relatives aux paramètres Data Pump :
    • Dans le cas des ECPU, parallel doit être défini sur 0,25 fois le nombre d'ECPU. Par conséquent, dans l'exemple ci-dessus avec 64 ECPU, parallel est défini sur 0,25 x 64, soit 16 avec expdp.

    • Dans le cas des OCPU, parallel doit être défini sur la même valeur que le nombre d'OCPU. Dans l'exemple ci-dessus avec 16 OCPU, parallel sera défini sur 16, avec expdp.

    • Si, pendant l'export avec expdp, vous utilisez le paramètre encryption_pwd_prompt=yes, vous devez 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 avec 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.

    Pour des performances d'exportation optimales, utilisez le service de base de données HIGH pour la connexion d'exportation et définissez le paramètre PARALLEL sur le nombre d'UC de la base de données. Pour plus d'informations sur le nom de service de base de données à connecter afin d'exécuter l'utilitaire d'export Data Pump, reportez-vous à Noms de service de base de données prédéfinis pour les bases de données autonomes.

    Une fois l'export terminé, vous pouvez visualiser les fichiers dump générés en exécutant une requête semblable à la suivante :
    SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');
    Par exemple, la sortie de cette requête affiche les fichiers dump générés et le fichier journal d'export :
    
    OBJECT_NAME                 BYTES  CHECKSUM                   CREATED          LAST_MODIFIED  
    ---------------------- ---------- ----–---- –------------------------–----- --------------------
    exp01.dmp                   12288               12-NOV-19 06.10.47.0 PM GMT       12-NOV-19...
    exp02.dmp                    8192               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    exp03.dmp                 1171456               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    exp04.dmp                  348160               12-NOV-19 06.10.48.0 PM GMT       12-NOV-19...
    export.log                   1663               12-NOV-19 06.10.50.0 PM GMT       12-NOV-19...
    

Remarques :

  • Pour effectuer un export complet ou exporter des objets appartenant à d'autres utilisateurs, vous devez disposer du rôle DATAPUMP_CLOUD_EXP.

  • L'API utilisée pour déplacer les fichiers dump vers Object Storage prend en charge des tailles de fichier allant jusqu'à 50 Go. Par conséquent, veillez à n'indiquer aucune taille supérieure dans l'argument filesize.

  • Pour plus d'informations, reportez-vous à Export Oracle Data Pump dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

Déplacement d'un ensemble de fichiers dump d'Autonomous Database vers votre banque d'objets cloud

  1. Connectez-vous à la base de données autonome.

  2. Stockez vos informations d'identification du stockage d'objet cloud à l'aide de la procédure DBMS_CREDENTIAL.CREATE_CREDENTIAL. Exemple :
    BEGIN
      DBMS_CREDENTIAL.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@oracle.com',
        password => 'password'
      );
    END;
    /
    Les valeurs fournies pour username et password dépendent du service Cloud Object Storage que vous utilisez :
    • Oracle Cloud Infrastructure Object Storage : username est votre nom utilisateur Oracle Cloud Infrastructure et password est votre jeton d'authentification Oracle Cloud Infrastructure. Reportez-vous à Utilisation des jetons d'authentification.

    • Oracle Cloud Infrastructure Object Storage Classic : username est votre nom utilisateur Oracle Cloud Infrastructure Classic et password est votre mot de passe Oracle Cloud Infrastructure Classic.

      Cette opération stocke les informations d'identification dans la base de données dans un format crypté. Vous pouvez utiliser n'importe quel nom d'informations d'identification. Cette étape est requise une seule fois, sauf si les informations d'identification de banque d'objets changent. Une fois les informations d'identification stockées, vous pouvez utiliser le même nom d'informations d'identification pour tous les chargements de données.

  3. Déplacez les fichiers dump d'Autonomous Database vers votre banque d'objets cloud en appelant DBMS_CLOUD.PUT_OBJECT.

    Exemple :
    BEGIN
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp01.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp01.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp02.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp02.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp03.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp03.dmp');
       DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME',
         object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp04.dmp',
         directory_name => 'DATA_EXPORT_DIR',
         file_name => 'exp04.dmp');
    END;
    /

    Pour plus d'informations sur PUT_OBJECT, reportez-vous à Procédure PUT_OBJECT.

Export direct de données d'Autonomous Database vers la banque d'objets

Indique comment utiliser Oracle Data Pump pour exporter directement des données d'Autonomous Database vers la banque d'objets cloud.

  1. Connectez-vous à la base de données autonome.
  2. Stockez vos informations d'identification du stockage d'objet cloud à l'aide de la procédure DBMS_CREDENTIAL.CREATE_CREDENTIAL. Par exemple :
    BEGIN
      DBMS_CREDENTIAL.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
               username => 'adb_user@oracle.com',
        password => 'password'
        );
    END;
    /
    Les valeurs fournies pour username et password dépendent du service Cloud Object Storage que vous utilisez :
    • Oracle Cloud Infrastructure Object Storage : username est votre nom utilisateur Oracle Cloud Infrastructure et password est votre jeton d'authentification Oracle Cloud Infrastructure. Reportez-vous à Utilisation des jetons d'authentification.
    • Oracle Cloud Infrastructure Object Storage Classic : username est votre nom utilisateur Oracle Cloud Infrastructure Classic et password est votre mot de passe Oracle Cloud Infrastructure Classic.

    Cette opération stocke les informations d'identification dans la base de données dans un format crypté. Vous pouvez utiliser n'importe quel nom d'informations d'identification. Cette étape est requise une seule fois, sauf si les informations d'identification de banque d'objets changent. Une fois les informations d'identification stockées, vous pouvez utiliser le même nom d'informations d'identification pour tous les chargements de données.

  3. En tant qu'utilisateur ADMIN, définissez les informations d'identification définies à l'étape ci-avant en tant qu'informations d'identification par défaut pour la base de données autonome.
    Exemple :
    ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
  4. Exécutez l'export Data Pump. Le paramètre dumpfile doit être défini sur l'URL d'un bucket existant dans le stockage d'objet cloud (fin avec un nom de fichier ou un nom de fichier avec une variable de substitution, comme exp%U.dmp).
    • Oracle Data Pump version 19.9 ou ultérieure ou version suivante :
      Définissez le paramètre credential sur le nom des informations d'identification créées à l'étape 2. Exemple :
      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      credential=DEF_CRED_NAME \
      dumpfile=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index
      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-ashburn-1. (adbdpreview1 est l'espace de noms du stockage d'objet dans lequel le bucket réside.)
    • Versions d'Oracle Data Pump antérieures à 19.9 :
      Commencez la valeur du paramètre dumpfile avec le mot-clé default_credential et le signe deux-points. Exemple :
      expdp admin/password@ADBD_high \
      SCHEMAS=SOE3 \
      filesize=5GB \
      dumpfile=DEF_CRED_NAME:https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \ 
      parallel=16 \
      encryption_pwd_prompt=yes \
      logfile=export.log \
      directory=data_pump_dir \
      EXCLUDE=statistics,index 
      Dans cet exemple, le mot-clé default_credential du paramètre dumpfile est requis.
    Remarques relatives aux paramètres Oracle Data Pump :
    • Par défaut, l'export Oracle Data Pump compresse uniquement les métadonnées avant d'écrire dans l'ensemble de fichiers dump. Vous pouvez définir le paramètre compression sur ALL pour compresser les métadonnées et les données avant d'écrire dans l'ensemble de fichiers dump. Pour plus d'informations, reportez-vous à COMPRESSION dans Utilitaires 19c Oracle Database ou Utilitaires Oracle Database 23ai.

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

      Pour plus d'informations, reportez-vous à Paramètres disponibles en mode de ligne de commande d'export Data Pump dans Utilitaires 19c de base de données Oracle ou Utilitaires 23ai de base de données Oracle.

    • Pour des performances d'export optimales, utilisez le service de base de données high pour votre connexion d'export et définissez le paramètre parallel sur 0,25 fois le nombre d'ECPU ou sur le nombre d'OCPU de la base de données Autonomous Database. Pour plus d'informations sur le nom de service de base de données à connecter afin d'exécuter l'utilitaire d'export Data Pump, reportez-vous à Noms de service de base de données prédéfinis pour les bases de données autonomes.

    • 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 plus d'informations sur les objets non autorisés dans Autonomous Database, reportez-vous à Limites relatives à l'utilisation des commandes SQL.

  5. Validez les résultats.
    Oracle Data Pump divise chaque partie de fichier dump en segments plus petits pour accélérer les téléchargements. La console Oracle Cloud Infrastructure Object Storage affiche plusieurs fichiers pour chaque partie de fichier dump que vous exportez. La taille affichée pour les fichiers dump réels est zéro (0) et celle affichée pour les segments de fichier associés 10 Mo ou moins. Exemple :
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa

    Remarques :

    Le téléchargement du fichier dump de zéro octet à partir de la console Oracle Cloud Infrastructure ou à l'aide de l'interface de ligne de commande Oracle Cloud Infrastructure ne vous fournit pas les fichiers dump complets. Pour télécharger les fichiers dump complets à partir de la banque d'objets, utilisez un outil prenant en charge Swift, tel que curl, et fournissez votre nom de connexion utilisateur et votre jeton d'authentification Swift. Exemple :
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/export01.dmp

Téléchargement des fichiers dump, exécution de l'import Data Pump et nettoyage de la banque d'objets

Si nécessaire, téléchargez les fichiers dump à partir de la banque d'objets cloud et utilisez l'utilitaire d'import Oracle Data Pump pour importer l'ensemble de fichiers dump vers la base de données cible. Effectuez ensuite le nettoyage requis.

  1. Téléchargez les fichiers dump à partir de la banque d'objets cloud.

    Remarques :

    Cette étape n'est pas nécessaire si vous importez les données vers une autre instance Autonomous Database.
    Si vous effectuez un export direct vers la banque d'objets à l'aide d'Oracle Data Pump, comme indiqué dans Export direct de données d'Autonomous Database vers la banque d'objets, les fichiers dump de la banque d'objets affichent la taille 0. Oracle Data Pump divise chaque partie de fichier dump en segments plus petits pour accélérer les téléchargements. La console Oracle Cloud Infrastructure Object Storage affiche plusieurs fichiers pour chaque partie de fichier dump que vous exportez. La taille affichée pour les fichiers dump réels est zéro (0) et celle affichée pour les segments de fichier associés 10 Mo ou moins. Exemple :
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    Le téléchargement du fichier dump de zéro octet à partir de la console Oracle Cloud Infrastructure ou à l'aide de l'interface de ligne de commande Oracle Cloud Infrastructure ne vous fournit pas les fichiers dump complets. Pour télécharger les fichiers dump complets à partir de la banque d'objets, utilisez un outil prenant en charge Swift, tel que curl, et fournissez votre nom de connexion utilisateur et votre jeton d'authentification Swift. Exemple :
    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp

    La commande cURL ne prend pas en charge les caractères génériques ou de substitution dans l'URL. Vous devez utiliser plusieurs commandes cURL pour télécharger l'ensemble de fichiers dump à partir de la banque d'objets. Vous pouvez également utiliser un script qui prend en charge les caractères de substitution pour télécharger tous les fichiers dump de la banque d'objets en une seule commande. Pour obtenir un exemple, reportez-vous à Procédure : téléchargement de l'ensemble des fichiers d'un travail d'export vers une banque d'objets dans Autonomous Database à l'aide de cURL.

  2. Exécutez l'utilitaire d'import Data Pump pour importer l'ensemble de fichiers dump vers la base de données cible.

    Remarques :

    Si vous importez les données vers une autre base de données autonome, reportez-vous à Chargement de données à l'aide d'Oracle Data Pump.

    Dans le cas de fichiers exportés directement vers la banque d'objets à l'aide d'Oracle Data Pump, comme indiqué dans Export direct de données d'Autonomous Database vers la banque d'objets, si vous importez un fichier avec les procédures DBMS_CLOUD qui prennent en charge le type de paramètre format avec la valeur 'datapump', vous devez uniquement indiquer le nom de fichier principal. Les procédures qui prennent en charge le type de format 'datapump' repèrent et téléchargent automatiquement les segments.

  3. Effectuez les tâches de nettoyage post-import. Si vous avez terminé l'import des fichiers dump vers les bases de données cible, supprimez le bucket contenant les données ou enlevez les fichiers dump du bucket de banque d'objets cloud, puis enlevez les fichiers dump de l'emplacement auquel vous avez téléchargé les fichiers dump pour exécuter l'utilitaire d'import Data Pump.

Pour plus d'informations, reportez-vous à Paramètres disponibles en mode de ligne de commande d'import Oracle Data Pump dans Utilitaires 19c Oracle Database ou Utilitaires Oracle Database 23ai.