Exporter des données en utilisant Oracle Data Pump

Oracle Data Pump permet de déplacer très rapidement des données et des métadonnées en bloc entre Autonomous AI Database et les autres bases de données d'Oracle.

Oracle recommande d'utiliser la dernière version d'"Oracle Data Pump" pour exporter les données d'Autonomous AI Database vers d'autres bases de données d'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 Autonomous AI vers d'autres bases de données Oracle à l'aide d'Oracle Data Pump, utilisez l'une des options suivantes :

Export des données à l'aide d'un répertoire sur la base de données Autonomous AI

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

Utilisation de Data Pump pour créer un ensemble de fichiers dump sur une base de données AI autonome

  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 à 50 Go, et le paramètre de directory défini. Par exemple, l'exemple suivant montre comment exporter un schéma nommé SALES dans une base de données Autonomous AI 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 concernant les 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 entrer 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 et supérieure. Ce caractère générique étend le nom du fichier dump en un entier incrémentant de 3 à 10 chiffres, de largeur variable, commençant à 100 et se terminant à 2147483646.

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

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

Remarque :

Déplacer l'ensemble de fichiers dump à partir de la base de données Autonomous AI vers la banque d'objets cloud

  1. Connectez-vous à votre base de données Autonomous AI.

  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 de la base de données Autonomous AI vers la 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.

Exporter directement des données d'une base de données Autonomous AI vers la banque d'objets

Indique comment utiliser Oracle Data Pump pour exporter directement les données de la base de données Autonomous AI vers la banque d'objets cloud.

  1. Connectez-vous à votre base de données Autonomous AI.

  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. En tant qu'utilisateur ADMIN, définissez les informations d'identification que vous avez définies à l'étape ci-dessus en tant qu'informations d'identification par défaut pour votre base de données Autonomous AI.

    Exemple :

     ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
    
  4. Exécutez l'export Data Pump avec le paramètre dumpfile défini sur l'URL d'un bucket existant dans votre stockage d'objet cloud (terminée par un nom d'un fichier ou un nom d'un fichier avec une variable de substitution, comme exp%U.dmp).

    • Oracle Data Pump version 19.9 ou ultérieure :

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

    • Oracle Data Pump versions antérieures à la version 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 concernant les 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 de détails, reportez-vous à COMPRESSION dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 26ai.

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

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

    • 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 AI. Pour obtenir des informations sur le nom de service de base de donnée à connecter afin d'exécuter l'utilitaire d'export Data Pump, reportez-vous à la section Noms de service de base de donnée prédéfinis pour les bases de Données autonomes AI.

    • 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 obtenir des informations sur les objets non autorisés dans Autonomous AI Database, reportez-vous à la section Limites concernant 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
    

    Remarque :

    Le téléchargement du fichier dump de zéro octet à partir de la console ou à l'aide de la CLI ne vous donnera 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.

    Remarque : cette étape n'est pas nécessaire si vous importez les données vers une autre base de données Autonomous AI

    Si vous effectuez une exportation directe vers l'objet Store à l'aide d'Oracle Data Pump, comme indiqué dans Export direct des données d'une base de données Autonomous AI vers l'objet Store, les fichiers dump de la banque d'objets affichent une 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.

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

    Remarque : si vous importez les données vers une autre base de données Autonomous AI, reportez-vous à Chargement de données à l'aide d'Oracle Data Pump.

    Dans le cas de fichiers exportés directement vers l'aide d'Oracle Data Pump, comme indiqué dans Export direct des données d'une base de données Autonomous AI vers l'objet de la banque, si vous importez un fichier avec les procédures DBMS_CLOUD qui prennent en charge le paramètre format type avec la valeur 'datapump', vous devez uniquement indiquer le nom du 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 ligne de commande d'import Oracle Data Pump dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 26ai.