Carica dati mediante Oracle Data Pump

Oracle Data Pump offre uno spostamento di dati e metadati in blocco molto rapido tra i database Oracle e l'infrastruttura Autonomous Database on Dedicated Exadata.

L'importazione di Data Pump consente di importare i dati dai file di Data Pump che risiedono in Oracle Cloud Infrastructure Object Storage e Oracle Cloud Infrastructure Object Storage Classic. È possibile salvare i dati nell'area di memorizzazione degli oggetti cloud e utilizzare Oracle Data Pump per caricare i dati in Autonomous Database.

Nota

Per un'alternativa "Prova" alla lettura dei seguenti argomenti, puoi consultare il Lab 9: Migrate with Data Pump nel workshop per gli amministratori della flotta di Oracle Autonomous Database Dedicated for Fleet.

Esporta dati da Oracle Database esistente

Utilizzare innanzitutto l'esportazione di Oracle Data Pump per esportare gli schemi Oracle Database esistenti. Quindi, utilizzare l'importazione di Oracle Data Pump per eseguirne la migrazione in Autonomous Database.

Oracle consiglia di utilizzare i seguenti parametri di esportazione di Data Pump per una migrazione più rapida e semplice ad Autonomous Database:

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

L'esportazione di Oracle Data Pump fornisce diverse modalità di esportazione. Oracle consiglia di utilizzare la modalità schema per la migrazione ad Autonomous Database. È possibile elencare gli schemi da esportare utilizzando il parametro schemi.

Per una migrazione più rapida, esporta gli schemi in più file di Data Pump e utilizza il parallelismo. È possibile specificare il formato del nome del file di dump da utilizzare con il parametro dumpfile. Impostare il parametro parallelo su almeno il numero di CPU presenti in Autonomous Database.

I parametri escludi e data_options garantiscono che i tipi di oggetto non disponibili in Autonomous Database non vengano esportati e che le partizioni di tabella vengano raggruppate in modo da poter essere importate più rapidamente in Autonomous Database.

Nota

Oracle consiglia di raccogliere le statistiche aggiornate prima di eseguire il comando expdp. Il pacchetto dbms_stats include più procedure per la raccolta delle statistiche più recenti. Le statistiche vengono aggiunte automaticamente al file di dump di esportazione e consentono di determinare le dimensioni degli oggetti e ottimizzare il parallelismo durante l'importazione. Per ulteriori informazioni, vedere DBMS_STATS Operational Notes in Oracle Database 19c PL/SQL Packages and Types Reference e Oracle Database 23ai PL/SQL Packages and Types References.

Nell'esempio riportato di seguito lo schema SH viene esportato da un Oracle Database di origine per la migrazione in un Autonomous Database con 16 CPU:

expdp sh/sh@orcl \
exclude=cluster, db_link \
parallel=16 \
schemas=sh \
dumpfile=export%l.dmp \
encryption_pwd_prompt=yes
Note per i parametri Data Pump:
  • Se durante l'esportazione con expdp si utilizza il parametro encryption_pwd_prompt=yes, utilizzare anche 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 durante 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.

    Utilizzare il carattere jolly precedente %U o %u per le esportazioni da Oracle Database prima della release 12.2. Se si utilizza questa opzione e sono necessari più di 99 file di dump, è necessario specificare più nomi di file di dump, ciascuno con il parametro %U o %u.

A seconda delle esigenze, è possibile utilizzare altri parametri di esportazione di Data Pump, ad esempio compression. Per ulteriori informazioni, vedere Esportazione di Oracle Data Pump in Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

Caricare i file di esportazione nello storage degli oggetti cloud

Prima di poter importare i dati esportati dall'Oracle Database di origine, è necessario caricare i file di esportazione nello storage degli oggetti cloud.

Puoi caricare i file di esportazione in un bucket di storage esistente in Oracle Cloud Infrastructure Object Storage o in un contenitore di storage esistente in Oracle Cloud Infrastructure Object Storage Classic. In alternativa, utilizzare la procedura riportata di seguito per creare un nuovo bucket di storage e caricarvi i file di esportazione.

  1. Accedi al tuo account Oracle Cloud all'indirizzo cloud.oracle.com.

  2. Nella lista di navigazione a sinistra di Oracle Cloud Infrastructure scegliere Object Storage, quindi scegliere Object Storage dalla lista secondaria.

  3. Selezionare un compartimento in cui creare il bucket di storage.

  4. Fare clic su Crea bucket.

  5. Nella finestra di dialogo Crea bucket, assegnare un nome al bucket, quindi fare clic su Crea bucket.

  6. Dopo aver creato il bucket, fare clic sul relativo nome nella lista dei bucket per visualizzare la relativa pagina Dettagli bucket.

  7. Nella casella Oggetti fare clic su Carica oggetti.

  8. Nella finestra di dialogo Carica oggetti, fare clic sul collegamento seleziona file nella casella Scegli file dal computer.

  9. Nell'esplorazione file, individuare e selezionare i file di esportazione. Quindi fare clic su Apri.

  10. Nella finestra di dialogo Carica oggetti, fare clic su Carica oggetti per iniziare a caricare i file selezionati.

  11. Al termine dei caricamenti, chiudere la finestra di dialogo Carica oggetti.

Importare i dati mediante Oracle Data Pump

Oracle consiglia di utilizzare la versione più recente di Oracle Data Pump per importare dati dai file di Data Pump nell'Autonomous Database in quanto contiene miglioramenti e correzioni per un'esperienza migliore.

Scarica la versione più recente del pacchetto Oracle Instant Client Basic Package and Tools Package (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.

In Oracle Data Pump versione 18.3 e successive l'argomento credential autentica Data Pump nel servizio di storage degli oggetti cloud in uso per i file di origine. L'argomento dumpfile è una lista separata da virgole di URL per i file Data Pump.

Le versioni di importazione di Data Pump 12.2.0.1 e precedenti non dispongono del parametro credential. Se si utilizza una versione precedente dell'importazione di Data Pump, è necessario definire una proprietà delle credenziali predefinita per Autonomous Database e utilizzare la parola chiave default_credential nel parametro dumpfile.

In Oracle Data Pump, se i file di origine risiedono in Oracle Cloud Infrastructure Object Storage, è possibile utilizzare gli URI nativi di Oracle Cloud Infrastructure o gli URI Swift. Per i dettagli su questi formati URI, vedere Formati URI di storage degli oggetti cloud.

  1. Memorizzare le credenziali dello storage degli oggetti cloud utilizzando la procedura DBMS_CLOUD.CREATE_CREDENTIAL.

    L'importazione di Data Pump supporta le credenziali basate su token di autenticazione di Oracle Cloud Infrastructure e le credenziali basate su chiave di firma di Oracle Cloud Infrastructure.

    Esempio 1: per creare le credenziali del token di autenticazione di Oracle Cloud Infrastructure:
    BEGIN
    DBMS_CLOUD.CREATE_CREDENTIAL(
      credential_name => 'DEF_CRED_NAME',
      username => 'adb_user@oracle.com',
      password => 'password'
      );
    END;
    /
    Esempio 2: per creare credenziali basate su chiave di firma di Oracle Cloud Infrastructure:
    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;
    /

    Per ulteriori informazioni sui tipi di credenziali per lo storage degli oggetti Oracle Cloud Infrastructure Cloud, vedere CREATE_CREDENTIAL Procedura.

  2. Se si utilizza Oracle Data Pump versione 12.2.0.1 o precedente, è necessario impostare la credenziale come credenziale predefinita per Autonomous Database come utente ADMIN. Ad esempio:
    alter database property set default_credential = 'ADMIN.DEF_CRED_NAME'
  3. Eseguire l'importazione di Data Pump con il parametro dumpfile impostato sulla lista di URL file nello storage degli oggetti cloud.
    • Oracle Data Pump versione 18.3 o successiva: impostare il parametro credential sul nome della credenziale creata nel passo 1. Ad esempio:

      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

      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-phoenix-1. (idthydc0kinr è lo spazio di nomi dello storage degli oggetti in cui risiede il bucket).

    • Oracle Data Pump versione 12.2.0.1 o precedente: avviare il valore del parametro dumpfile con la parola chiave default_credential e i due punti. Ad esempio:

      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
    Note per l'importazione di Data Pump
    • Se durante l'esportazione con expdp si è utilizzato il parametro encryption_pwd_prompt=yes, utilizzare encryption_pwd_prompt=yes e immettere la stessa password al prompt impdp specificato durante l'esportazione.

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

      Utilizzare il carattere jolly precedente %U o %u per le esportazioni da Oracle Database prima della release 12.2. Se si utilizza questa opzione e sono necessari più di 99 file di dump, è necessario specificare più nomi di file di dump, ciascuno con il parametro %U o %u.

    • Per ottenere le migliori prestazioni di importazione, utilizzare il servizio di database high per la connessione di importazione e impostare il parametro parallel sul numero di CPU presenti nel database.

    • 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 eseguire un'importazione completa o per importare oggetti di proprietà di altri utenti, è necessario disporre del ruolo DATAPUMP_CLOUD_IMP.

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

    Per informazioni dettagliate sui parametri di importazione, vedere Oracle Data Pump Import in Oracle Database 19c Utilities o Oracle Database 23ai Utilities.

Accedi ai file di log per l'importazione di Data Pump

I file di log per le operazioni di importazione di Data Pump vengono memorizzati nella directory specificata con il parametro impdp directory di Data Pump.

Per accedere al file di log, è necessario spostare il file di log nello storage degli oggetti cloud utilizzando la procedura DBMS_CLOUD.PUT_OBJECT. Ad esempio, il seguente blocco PL/SQL sposta il file import.log nello storage degli oggetti 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;
/

In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

Per ulteriori informazioni, vedere DBMS_CLOUD per oggetti e file.