Esportare i dati mediante Oracle Data Pump

Oracle Data Pump offre uno spostamento estremamente rapido di dati e metadati in blocco tra Autonomous AI Database e altri database Oracle.

Oracle consiglia di utilizzare la versione più recente di Oracle Data Pump per esportare i dati da Autonomous AI Database in altri database Oracle, in quanto contiene miglioramenti e correzioni per un'esperienza migliore. Scaricare la versione più recente di Oracle Instant Client e scaricare il pacchetto di strumenti, che include Oracle Data Pump, per la piattaforma da Download di Oracle Instant Client. Vedere le istruzioni di installazione nella pagina di download dell'installazione della piattaforma per i passi di installazione necessari dopo aver scaricato Oracle Instant Client e il package Strumenti.

Per spostare i dati da un Autonomous AI Database ad altri database Oracle utilizzando Oracle Data Pump, utilizzare una delle opzioni riportate di seguito.

Esportare i dati utilizzando una directory in Autonomous AI Database

Per esportare i dati utilizzando una directory in Autonomous AI Database, è innanzitutto necessario creare un set di file di dump con i dati esportati in una directory del database e quindi caricare tali file dalla directory del database nell'area di memorizzazione degli oggetti cloud.

Utilizzare Data Pump per creare un set di file di dump sul database AI Autonomous

  1. Creare una directory in cui memorizzare i file di dump contenenti i dati esportati. Ad esempio:

     CREATE DIRECTORY data_export_dir as 'data_export';
    
  2. Eseguire Data Pump Export con il parametro dumpfile impostato, il parametro filesize impostato su un valore inferiore a 50G e il set di parametri directory. Ad esempio, quanto segue mostra come esportare uno schema denominato SALES in un Autonomous AI Database denominato ATPC1 con 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
    

    Note per i parametri Data Pump:

    • Nel caso delle ECPU, parallel deve essere impostato su 0,25 volte il conteggio delle ECPU. Pertanto, nell'esempio precedente con 64 ECPU, parallel è impostato su 0,25 x 64, ovvero 16 con expdp.

    • In caso di OCPU, parallel deve essere impostato sullo stesso valore del conteggio di OCPU. Nell'esempio precedente con 16 OCPU, parallel verrà impostato su 16, con expdp.

    • Se durante l'esportazione con expdp si utilizza il parametro encryption_pwd_prompt=yes, è necessario utilizzare encryption_pwd_prompt=yes con l'importazione e immettere la stessa password al prompt impdp per decifrare i file di dump (ricordare la password fornita con l'esportazione). La lunghezza massima della password di cifratura è di 128 byte.

    • Il parametro dumpfile supporta i caratteri jolly %L e %l oltre ai caratteri jolly legacy %U e %u. Ad esempio, dumpfile=export%L.dmp.

      Utilizzare il carattere jolly %L o %l per le esportazioni da Oracle Database Release 12.2 e successive. Questo carattere jolly espande il nome del file di dump in un numero intero incrementale a 3 cifre a 10 cifre e a larghezza variabile, a partire da 100 e terminando a 2147483646.

    Per ottenere le migliori prestazioni di esportazione, utilizzare il servizio di database HIGH per la connessione di esportazione e impostare il parametro PARALLEL sul numero di CPU in un database. Per informazioni sul nome del servizio di database da connettere per eseguire l'esportazione di Data Pump, vedere Nomi dei servizi di database predefiniti per i database AI autonomi.

    Al termine dell'esportazione, è possibile visualizzare i file di dump generati eseguendo una query simile alla seguente:

     SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');
    

    Ad esempio, l'output di questa query mostra i file di dump generati e il file di log di esportazione:

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

Nota:

Sposta il set di file di dump da Autonomous AI Databaseto L'area di memorizzazione degli oggetti cloud

  1. Connettiti al tuo Autonomous AI Database.

  2. Memorizzare le credenziali dello storage degli oggetti cloud mediante la procedura DBMS_CREDENTIAL.CREATE_CREDENTIAL. Ad esempio:

     BEGIN
       DBMS_CREDENTIAL.CREATE_CREDENTIAL(
         credential_name => 'DEF_CRED_NAME',
         username => 'adb_user@oracle.com',
         password => 'password'
       );
     END;
     /
    

    I valori forniti per username e password dipendono dal servizio di storage degli oggetti cloud in uso:

    • Oracle Cloud Infrastructure Object Storage: username è il nome utente di Oracle Cloud Infrastructure e password è il token di autenticazione di Oracle Cloud Infrastructure. Vedere Utilizzo dei token di autenticazione.

    • Oracle Cloud Infrastructure Object Storage Classic: username è il tuo nome utente Oracle Cloud Infrastructure Classic e password è la tua password Oracle Cloud Infrastructure Classic.

      Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale. Tenere presente che questo passo è obbligatorio una sola volta a meno che le credenziali dell'area di memorizzazione degli oggetti non vengano modificate. Una volta memorizzate le credenziali, è possibile utilizzare lo stesso nome credenziale per tutti i caricamenti dati.

  3. Spostare i file di dump da Autonomous AI Database all'area di memorizzazione degli oggetti cloud chiamando DBMS_CLOUD.PUT_OBJECT.

    Ad esempio:

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

    Per informazioni su PUT_OBJECT, vedere Procedura PUT_OBJECT.

Esporta direttamente i dati da Autonomous AI Database all'area di memorizzazione degli oggetti

Mostra come utilizzare Oracle Data Pump per esportare direttamente i dati da Autonomous AI Database nell'area di memorizzazione degli oggetti cloud.

  1. Connettiti al tuo Autonomous AI Database.

  2. Memorizzare le credenziali dello storage degli oggetti cloud mediante la procedura DBMS_CREDENTIAL.CREATE_CREDENTIAL. Ad esempio:

     BEGIN
       DBMS_CREDENTIAL.CREATE_CREDENTIAL(
         credential_name => 'DEF_CRED_NAME',
                username => 'adb_user@oracle.com',
         password => 'password'
         );
     END;
     /
    

    I valori forniti per il nome utente e la password dipendono dal servizio di storage degli oggetti cloud in uso:

    • Oracle Cloud Infrastructure Object Storage: username è il nome utente di Oracle Cloud Infrastructure e password è il token di autenticazione di Oracle Cloud Infrastructure. Vedere Utilizzo dei token di autenticazione.

    • Oracle Cloud Infrastructure Object Storage Classic: username è il tuo nome utente Oracle Cloud Infrastructure Classic e password è la tua password Oracle Cloud Infrastructure Classic.

    Questa operazione memorizza le credenziali nel database in un formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale. Tenere presente che questo passo è obbligatorio una sola volta a meno che le credenziali dell'area di memorizzazione degli oggetti non vengano modificate. Una volta memorizzate le credenziali, è possibile utilizzare lo stesso nome credenziale per tutti i caricamenti dati.

  3. Come utente ADMIN, impostare la credenziale definita nel passo precedente come credenziale predefinita per Autonomous AI Database.

    Ad esempio:

     ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
    
  4. Eseguire l'esportazione di Data Pump con il parametro dumpfile impostato sull'URL per un bucket esistente nello storage degli oggetti cloud (che termina con un nome file o un nome file con una variabile di sostituzione, ad esempio exp%U.dmp).

    • Oracle Data Pump versione 19.9 o successiva:

      impostare il parametro credential sul nome della credenziale creata nel passo 2. Ad esempio:

      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
      

      In questo esempio, dumpfile è un URI Swift di Oracle Cloud Infrastructure che specifica tutti i file il cui nome corrisponde a export<number>.dmp nel bucket mybucket nell'area us-ashburn-1. (adbdpreview1 è lo spazio di nomi dello storage degli oggetti in cui risiede il bucket).

    • Versioni di Oracle Data Pump precedenti alla 19.9:

      iniziare il valore del parametro dumpfile con la parola chiave default_credential e i due punti. Ad esempio:

      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
      

      In questo esempio è richiesta la parola chiave default_credential nel parametro dumpfile.

    Note per i parametri di Oracle Data Pump:

    • Per impostazione predefinita, l'esportazione di Oracle Data Pump comprime solo i metadati prima di scrivere nel set di file di dump. È possibile impostare il parametro compression su ALL per comprimere metadati e dati prima di scrivere nel set di file di dump. Per ulteriori dettagli, consulta COMPRESSION in Oracle Database 19c Utilities o Oracle Database 26ai Utilities.

    • Il parametro dumpfile supporta i caratteri jolly %L e %l oltre ai caratteri jolly legacy %U e %u. Ad esempio, dumpfile=export%L.dmp.

      Utilizzare il carattere jolly %L o %l per le esportazioni da Oracle Database Release 12.2 e successive. Questo carattere jolly espande il nome del file di dump in un numero intero incrementale a 3 cifre a 10 cifre e a larghezza variabile, a partire da 100 e terminando a 2147483646.

      Per ulteriori informazioni, vedere Parametri disponibili in modalità riga di comando di esportazione Data Pump in Oracle Database 19c Utilities o Oracle Database 26ai Utilities.

    • Per ottenere le migliori prestazioni di esportazione, utilizzare il servizio di database high per la connessione di esportazione e impostare il parametro parallel su 0,25 volte il numero di ECPU o lo stesso numero di OCPU nell'Autonomous AI Database. Per informazioni sul nome del servizio di database da connettere per eseguire l'esportazione di Data Pump, vedere Nomi dei servizi di database predefiniti per i database AI autonomi.

    • Per il formato URL del file di dump per diversi servizi di storage degli oggetti cloud, vedere Formati URI di storage degli oggetti cloud.

    Per informazioni sugli oggetti non consentiti in Autonomous AI Database, vedere Limitazioni sull'uso dei comandi SQL.

  5. Consente di convalidare i risultati.

    Oracle Data Pump divide ogni parte del file di dump in chunk più piccoli per caricamenti più rapidi. La console di Oracle Cloud Infrastructure Object Storage mostra più file per ogni parte del file di dump esportata. La dimensione dei file di dump effettivi verrà visualizzata come zero (0) e i relativi chunk di file correlati come 10mb o meno. Ad esempio:

     exp01.dmp
     exp01.dmp_aaaaaa
     exp02.dmp
     exp02.dmp_aaaaaa
    

    Nota:

    Scaricando il file di dump a zero byte dalla console o utilizzando l'interfaccia CLI non si riceveranno i file di dump completi. Per scaricare i file di dump completi dall'area di memorizzazione degli oggetti, utilizzare uno strumento che supporti Swift, ad esempio curl, e fornire il login utente e il token di autenticazione Swift. Ad esempio:

       curl -O -v -X GET -u 'user1@example.com:auth_token' \
        https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/export01.dmp
    

Scarica file di dump, esegui importazione Data Pump ed esegui cleanup area di memorizzazione oggetti

Se necessario, scaricare i file di dump dall'area di memorizzazione degli oggetti cloud e utilizzare l'importazione di Oracle Data Pump per importare il file di dump impostato nel database di destinazione. Eseguire quindi il cleanup necessario.

  1. Scaricare i file di dump dall'area di memorizzazione degli oggetti cloud.

    Nota: questo passo non è necessario se si importano i dati in un altro Autonomous AI Database

    Se si esporta direttamente nell'area di memorizzazione degli oggetti utilizzando Oracle Data Pump, come mostrato in Esporta dati da Autonomous AI Database all'area di memorizzazione degli oggetti direttamente, i file di dump nell'area di memorizzazione degli oggetti mostrano la dimensione 0. Oracle Data Pump divide ogni parte del file di dump in chunk più piccoli per caricamenti più rapidi. La console di Oracle Cloud Infrastructure Object Storage mostra più file per ogni parte del file di dump esportata. La dimensione dei file di dump effettivi verrà visualizzata come zero (0) e i relativi chunk di file correlati come 10mb o meno. Ad esempio:

    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa
    

    Il download del file di dump a zero byte dalla console di Oracle Cloud Infrastructure o utilizzando l'interfaccia CLI di Oracle Cloud Infrastructure non fornirà i file di dump completi. Per scaricare i file di dump completi dall'area di memorizzazione degli oggetti, utilizzare uno strumento che supporti Swift, ad esempio curl, e fornire il login utente e il token di autenticazione Swift. Ad esempio:

    curl -O -v -X GET -u 'user1@example.com:auth_token' \
    https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp01.dmp
    

    Il comando cURL non supporta caratteri jolly o caratteri di sostituzione nell'URL. Per scaricare il file di dump impostato dall'area di memorizzazione degli oggetti, è necessario utilizzare più comandi cURL. In alternativa, è possibile utilizzare uno script che supporta i caratteri di sostituzione per scaricare tutti i file di dump dall'area di memorizzazione degli oggetti in un unico comando.

  2. Eseguire Importazione Data Pump per importare il file di dump impostato nel database di destinazione.

    Nota: se si stanno importando i dati in un altro Autonomous AI Database, vedere Caricare i dati utilizzando Oracle Data Pump.

    Nel caso di file esportati direttamente nell'area di memorizzazione degli oggetti mediante Oracle Data Pump, come mostrato in Esporta dati da Autonomous AI Database all'area di memorizzazione degli oggetti direttamente, se si importa un file con le procedure DBMS_CLOUD che supportano il parametro format type con il valore 'datapump', è necessario solo fornire il nome del file primario. Le procedure che supportano il tipo di formato 'datapump' rilevano e scaricano automaticamente i chunk.

  3. Eseguire i task di cleanup successivi all'importazione. Al termine dell'importazione dei file di dump nei database di destinazione, eliminare il bucket contenente i dati o rimuovere i file di dump dal bucket dell'area di memorizzazione degli oggetti cloud e rimuovere i file di dump dalla posizione in cui sono stati scaricati i file di dump per eseguire l'importazione di Data Pump.

Per informazioni dettagliate, vedere Parametri disponibili in modalità riga di comando di importazione di Oracle Data Pump in Oracle Database 19c Utilities o Oracle Database 26ai Utilities.