EXPORT_DATAを使用したOracle Data Pumpファイルとしてのオブジェクト・ストアへのデータの移動

問合せを指定して、データをOracle Data Pumpダンプ・ファイルにエクスポートできます。

このエクスポート方法では、DBMS_CLOUD.EXPORT_DATAプロシージャを使用して、次のように、エクスポートするデータを選択する問合せを指定します:

  1. データベースに接続します。
  2. DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用してオブジェクト・ストア資格証明を格納します

    たとえば:

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

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

    この操作では、資格証明が暗号化された形式でデータベースに格納されます。資格証明名には任意の名前を使用できます。このステップは、オブジェクト・ストアの資格証明が変更されないかぎり、1回のみ必要です。資格証明を格納したら、同じ資格証明名を使用できます。

    様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  3. formatパラメータtypeを値datapumpに設定して、DBMS_CLOUD.EXPORT_DATAをコールして、Autonomous Databaseからクラウド・オブジェクト・ストアへのデータをOracle Data Pumpダンプ・ファイルとしてエクスポートしますたとえば:
    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;
    /
    

    パラメータは次のとおりです。

    • credential_name: 前のステップで作成された資格証明の名前です。

    • file_uri_list: エクスポート・ファイルのカンマ区切りリストです。file_uri_listでは、ワイルドカードおよび置換文字の使用はサポートされていません。

    • format: 値datapumpで必須のtypeパラメータを指定し、オプションで、ORACLE_DATAPUMPアクセス・ドライバでエクスポートに指定できるオプションを定義します。

    • query: 必要なデータのみがエクスポートされるようにSELECT文を指定します。問合せによってダンプ・ファイルの内容が決定されます。

    この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    ノート

    DBMS_CLOUD.EXPORT_DATAプロシージャは、file_uri_listで指定するダンプ・ファイルを作成します。ファイルは上書きしません。file_uri_listにダンプ・ファイルが存在する場合、DBMS_CLOUD.EXPORT_DATAはエラーを報告します。DBMS_CLOUD.EXPORT_DATAはバケットを作成しません。

    パラメータの詳細は、「EXPORT_DATAプロシージャ」を参照してください。

  4. Oracle Data Pumpのインポートおよびクリーン・アップの使用に必要なステップを実行します。詳細は、「ダンプ・ファイルのダウンロード、データ・ポンプ・インポートの実行およびオブジェクト・ストアのクリーン・アップ」を参照してください。

DBMS_CLOUD.EXPORT_DATAを使用したデータのエクスポートに関するノート:

  • DBMS_CLOUD.EXPORT_DATAを使用して作成したダンプ・ファイルは、Oracle Data Pump impdpを使用してインポートすることはできません。データベースに応じて、次のようにファイルを使用できます:

    • Autonomous Databaseでは、値datapumpを持つformatパラメータtypeをサポートするDBMS_CLOUDプロシージャでダンプ・ファイルを使用できます。DBMS_CLOUD.COPY_DATAを使用してダンプ・ファイルをインポートすることも、DBMS_CLOUD.CREATE_EXTERNAL_TABLEをコールして外部表を作成することも可能です。

    • Oracle Database 19cオンプレミスなどの他のOracle Databaseでは、ORACLE_DATAPUMPアクセス・ドライバを使用すると、プロシージャDBMS_CLOUD.EXPORT_DATAで作成されたダンプ・ファイルをインポートできます。詳細は、「ORACLE_DATAPUMPアクセス・ドライバを使用したデータのアンロードおよびロード」を参照してください。

  • DBMS_CLOUD.EXPORT_DATAによって生成されるダンプ・ファイルの数は、プロシージャの実行時に決まります。生成されるダンプ・ファイルの数は、file_uri_listパラメータで指定するファイル名の数、およびインスタンスで使用可能なECPUの数、サービス・レベル、データのサイズによって異なります。

    たとえば、2つのECPU Autonomous Databaseインスタンスまたはlowサービスを使用した場合、複数のファイル名を指定した場合でも、単一のダンプ・ファイルが並列度なしでエクスポートされます。8 ECPUのAutonomous Databaseインスタンスをmediumまたはhighサービスとともに使用すると、複数ファイル名を指定した場合、ジョブをパラレルに実行でき、複数ダンプ・ファイルがエクスポートされます。

  • 指定するqueryパラメータ値は、必要に応じて、結合や副問合せを含む問合せなどの拡張問合せにすることができます。