Esporta dati mediante Oracle Data Pump

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

Oracle consiglia di utilizzare la versione più recente di Oracle Data Pump per esportare i dati da Autonomous Database ad altri database Oracle, poiché contiene miglioramenti e correzioni per un'esperienza migliore. Scarica l'ultima versione di Oracle Instant Client e scarica il pacchetto Tools, che include Oracle Data Pump, per la tua 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 richiesti dopo aver scaricato Oracle Instant Client e il pacchetto Tools.

Per spostare i dati da un Autonomous Database ad altri database Oracle utilizzando Oracle Data Pump, utilizzare una delle seguenti opzioni:
  • Opzione 1: spostare i dati con l'esportazione di Data Pump in una directory di Autonomous Database

    Utilizzare Oracle Data Pump per esportare i dati in una directory del database, quindi spostare i dati dalla directory all'area di memorizzazione degli oggetti cloud. Questo metodo può risultare utile quando si desidera spostare i dati da Autonomous Database a più database di destinazione. Anziché esportare i dati in più aree di memorizzazione degli oggetti cloud, è possibile creare un set di file di dump una sola volta e utilizzarlo per più database di destinazione.

    Eseguire i passi riportati di seguito per spostare i dati da Autonomous Database esportandoli in una directory del database.
    1. Esportare i dati in una directory in Autonomous Database e spostare il set di file di dump dalla directory all'area di memorizzazione degli oggetti cloud. Vedere Esporta dati mediante una directory in Autonomous Database.
    2. Scaricare i file di dump dall'area di memorizzazione degli oggetti cloud, importare i dati nel database di destinazione ed eseguire il cleanup dell'area di memorizzazione degli oggetti cloud. Vedere Scaricare i file di dump, eseguire l'importazione di Data Pump ed eseguire il cleanup dell'area di memorizzazione degli oggetti.
  • Opzione 2: Sposta dati con esportazione Data Pump nell'area di memorizzazione degli oggetti

    Utilizzando questo metodo di esportazione si utilizza Oracle Data Pump per esportare direttamente i dati nell'area di memorizzazione degli oggetti. Questo metodo di esportazione è supportato con lo storage degli oggetti Oracle Cloud Infrastructure e Oracle Cloud Infrastructure Object Storage Classic. In questo modo si evita il sovraccarico derivante dalla creazione di un set di file di dump in una directory in Autonomous Database, quindi si sposta il set di file di dump nell'area di memorizzazione degli oggetti cloud. Quando si prevede di spostare i dati in un singolo database di destinazione, questo metodo consente di risparmiare tempo e velocizzare il processo di esportazione.

    Eseguire i passi riportati di seguito per spostare i dati da Autonomous Database esportandoli direttamente nell'area di memorizzazione degli oggetti.
    1. Esporta direttamente i dati da Autonomous Database in un'area di memorizzazione degli oggetti cloud. Consulta la sezione relativa all'esportazione diretta dei dati da Autonomous Database nell'area di memorizzazione degli oggetti.
    2. Scaricare i file di dump dall'area di memorizzazione degli oggetti cloud, importare i dati nel database di destinazione ed eseguire il cleanup dell'area di memorizzazione degli oggetti cloud. Vedere Scaricare i file di dump, eseguire l'importazione di Data Pump ed eseguire il cleanup dell'area di memorizzazione degli oggetti.

Esporta dati mediante una directory in Autonomous Database

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

Utilizzare Data Pump per creare un set di file di dump in Autonomous Database

  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 l'esportazione di Data Pump con il parametro dumpfile impostato, il parametro filesize impostato su un valore inferiore a 50G e il set di parametri directory. Ad esempio, come esportare uno schema denominato SALES in un Autonomous 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 %U e %u precedenti. 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 di 3 cifre a 10 cifre e larghezza variabile, a partire da 100 e terminando con 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 predefiniti del servizio di database per i database 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...
    

Note

  • Per eseguire un'esportazione completa o per esportare oggetti di proprietà di altri utenti, è necessario disporre del ruolo DATAPUMP_CLOUD_EXP.

  • L'interfaccia API utilizzata per spostare i file di dump nello storage degli oggetti supporta dimensioni di file fino a 50 GB, pertanto assicurarsi di non specificare dimensioni superiori a quelle specificate nell'argomento filesize.

  • Per ulteriori informazioni, vedere Oracle Data Pump Export in Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

Sposta il set di file di dump da Autonomous Database nell'area di memorizzazione degli oggetti cloud

  1. Connettersi all'istanza di Autonomous Database in uso in uso.

  2. Memorizzare le credenziali dello storage degli oggetti cloud utilizzando 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 che si sta utilizzando:
    • 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 formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale. Tenere presente che questo passo è necessario una sola volta a meno che le credenziali dell'area di memorizzazione degli oggetti non vengano modificate. Dopo aver memorizzato le credenziali, è possibile utilizzare lo stesso nome di credenziale per tutti i caricamenti dati.

  3. Spostare i file di dump da Autonomous Database nell'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 PUT_OBJECT Procedure.

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

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

  1. Connettersi all'Autonomous Database in uso.
  2. Memorizzare le credenziali dello storage degli oggetti cloud utilizzando 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 formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale. Tenere presente che questo passo è necessario una sola volta a meno che le credenziali dell'area di memorizzazione degli oggetti non vengano modificate. Dopo aver memorizzato le credenziali, è possibile utilizzare lo stesso nome di credenziale per tutti i caricamenti dati.

  3. In qualità di utente ADMIN, impostare la credenziale definita nel passo precedente come credenziale predefinita per Autonomous Database.
    Ad esempio:
    ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME';
  4. Esegui esportazione Data Pump con il parametro dumpfile impostato sull'URL di 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:
      avviare 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, la parola chiave default_credential nel parametro dumpfile è obbligatoria.
    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 i metadati e i dati prima di scrivere nel set di file di dump. Per ulteriori dettagli, vedere COMPRESSION in Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

    • Il parametro dumpfile supporta i caratteri jolly %L e %l oltre ai caratteri jolly %U e %u precedenti. 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 di 3 cifre a 10 cifre e larghezza variabile, a partire da 100 e terminando con 2147483646.

      Per ulteriori informazioni, vedere Parametri disponibili nella modalità riga di comando di esportazione di Data Pump in Oracle Data Base 19c Utilities o Oracle Data Base 23ai 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 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 autonomi.

    • Per il formato dell'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 Database, vedere Limitazioni sull'uso dei comandi SQL.

  5. Convalidare i risultati.
    Oracle Data Pump divide ogni parte del file di dump in chunk più piccoli per caricamenti più veloci. La console dello storage degli oggetti di Oracle Cloud Infrastructure 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 blocchi di file correlati come 10 MB o meno. Ad esempio:
    exp01.dmp
    exp01.dmp_aaaaaa
    exp02.dmp
    exp02.dmp_aaaaaa

    Nota

    Il download del file di dump a zero byte dalla console di Oracle Cloud Infrastructure o l'utilizzo dell'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 come 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

Scaricare i file di dump, eseguire l'importazione di Data Pump ed eseguire il cleanup dell'area di memorizzazione degli 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 set di file di dump nel database di destinazione. Eseguire quindi l'eventuale pulizia necessaria.

  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 Database.
    Se si esporta direttamente nell'area di memorizzazione degli oggetti utilizzando Oracle Data Pump, come mostrato in Esporta dati da Autonomous Database nell'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ù veloci. La console dello storage degli oggetti di Oracle Cloud Infrastructure 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 blocchi di file correlati come 10 MB 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 l'utilizzo dell'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 come 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 di sostituzione nel relativo URL. È necessario utilizzare più comandi cURL per scaricare il set di file di dump dall'area di memorizzazione degli oggetti. In alternativa, è possibile utilizzare uno script che supporti i caratteri di sostituzione per scaricare tutti i file di dump dall'area di memorizzazione degli oggetti con un unico comando. Per un esempio, vedere How To: Download all files from an export to object store job in Autonomous Database using cURL.

  2. Eseguire l'importazione di Data Pump per importare il set di file di dump nel database di destinazione.

    Nota

    Se si stanno importando i dati in un altro Autonomous Database, vedere Carica dati mediante Oracle Data Pump.

    Nel caso di file esportati direttamente nell'area di memorizzazione degli oggetti mediante Oracle Data Pump, come mostrato in Esporta dati direttamente nell'area di memorizzazione degli oggetti da Autonomous Database, 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 file primario. Le procedure che supportano il tipo di formato 'datapump' individuano e scaricano automaticamente i blocchi.

  3. Eseguire i task di cleanup successivi all'importazione. Se l'importazione dei file di dump nei database di destinazione è terminata, 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 Oracle Data Pump Import Command-Line Mode in Oracle Database 19c Utilities o Oracle Database 23ai Utilities.