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

È possibile esportare i dati nei 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 un'interrogazione 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 relativa all'uso del principal delle risorse per accedere alle risorse di Oracle Cloud Infrastructure.

    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.

    Vedere CREATE_CREDENTIAL Procedura per informazioni sui parametri username e password per diversi servizi di storage degli oggetti.

  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.

    • credential_name: è 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 nel file 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 nel file 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 Procedura.

  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 ed eseguire il cleanup dell'area di memorizzazione degli oggetti.

Note per l'esportazione di 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 i file indicati di seguito.

    • In un 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 in locale, è 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 all'esecuzione della procedura. Il numero di file di dump generati dipende dal numero di nomi di file forniti nel parametro file_uri_list, nonché dal numero di ECPU disponibili per l'istanza, dal livello di servizio e dalla dimensione dei dati.

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

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