Spostare i dati nell'area di memorizzazione degli oggetti come file di Oracle Data Pump utilizzando EXPORT_DATA

È possibile esportare i dati in file di dump di Oracle Data Pump specificando una query.

Con questo metodo di esportazione si utilizza la procedura DBMS_CLOUD.EXPORT_DATA per specificare una query per selezionare i dati da esportare, come indicato di seguito.

  1. Connettersi al database.
  2. Memorizzare le credenziali dell'area di memorizzazione degli oggetti utilizzando la procedura DBMS_CLOUD.CREATE_CREDENTIAL.

    Ad esempio:

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

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione Usa principal risorsa per accedere alle risorse di Oracle Cloud Infrastructure.

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

    Per informazioni sui parametri username e password per i diversi servizi di storage degli oggetti, vedere CREATE_CREDENTIAL Procedure.

  3. Esportare i dati da Autonomous Database nell'area di memorizzazione degli oggetti cloud come file di dump di Oracle Data Pump richiamando DBMS_CLOUD.EXPORT_DATA con il parametro format type impostato sul valore datapump. Ad esempio:
    BEGIN
     DBMS_CLOUD.EXPORT_DATA(
        credential_name =>'DEF_CRED_NAME',
        file_uri_list =>'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/exp01.dmp',
        format => json_object('type' value 'datapump'),
        query => 'SELECT warehouse_id, quantity FROM inventories'
     );
    END;
    /
    

    Di seguito sono riportati i parametri disponibili.

    • credential_name: indica il nome della credenziale creata nel passo precedente.

    • file_uri_list: è una lista delimitata da virgole dei file di esportazione. L'uso dei caratteri jolly e di sostituzione non è supportato in file_uri_list.

    • format: specifica il parametro type richiesto con il valore datapump e, facoltativamente, definisce le opzioni che è possibile specificare per l'esportazione con il driver di accesso ORACLE_DATAPUMP.

    • query: specifica un'istruzione SELECT in modo che vengano esportati solo i dati richiesti. La query determina il contenuto dei file di dump.

    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.

    Nota

    La procedura DBMS_CLOUD.EXPORT_DATA crea i file di dump specificati in file_uri_list. La procedura non sovrascrive i file. Se esiste un file di dump in file_uri_list, DBMS_CLOUD.EXPORT_DATA segnala un errore. DBMS_CLOUD.EXPORT_DATA non crea bucket.

    Per informazioni dettagliate sui parametri, vedere EXPORT_DATA Procedure.

  4. Eseguire i passi necessari per utilizzare l'importazione e il cleanup di Oracle Data Pump. Per ulteriori dettagli, vedere Scaricare i file di dump, eseguire l'importazione di Data Pump e pulire l'area di memorizzazione degli oggetti.

Note per l'esportazione dei dati con DBMS_CLOUD.EXPORT_DATA:

  • I file di dump creati con DBMS_CLOUD.EXPORT_DATA non possono essere importati utilizzando Oracle Data Pump impdp. A seconda del database, è possibile utilizzare questi file come indicato di seguito.

    • In un'istanza di Autonomous Database è possibile utilizzare i file di dump con le procedure DBMS_CLOUD che supportano il parametro format type con il valore 'datapump'. È possibile importare i file di dump utilizzando DBMS_CLOUD.COPY_DATA oppure chiamare DBMS_CLOUD.CREATE_EXTERNAL_TABLE per creare una tabella esterna.

    • In qualsiasi altro Oracle Database, ad esempio Oracle Database 19c on-premise, è possibile importare i file di dump creati con la procedura DBMS_CLOUD.EXPORT_DATA utilizzando il driver di accesso ORACLE_DATAPUMP. Per ulteriori informazioni, vedere Scaricamento e caricamento dei dati con il driver di accesso ORACLE_DATAPUMP.

  • Il numero di file di dump generati da DBMS_CLOUD.EXPORT_DATA viene determinato durante l'esecuzione della procedura. Il numero di file di dump generati dipende dal numero di nomi file forniti nel parametro file_uri_list, nonché dal numero di ECPU disponibili per l'istanza, il livello di servizio e la dimensione dei dati.

    Ad esempio, se si utilizza un'istanza di Autonomous Database ECPU da 2 ECPU o il servizio low, viene esportato un singolo file di dump senza parallelismo, anche se si forniscono più nomi file. Se si utilizza un'istanza di Autonomous Database con 8 ECPU con il servizio medium o high, i job possono essere eseguiti in parallelo e vengono esportati più file di dump se si forniscono più nomi file.

  • Il valore del parametro query fornito può essere una query avanzata, se necessario, ad esempio una query che include join o subquery.