Oracle Data PumpでのCREDENTIALパラメータを使用したオブジェクト・ストアへのデータのエクスポート(バージョン19.9以上)

Oracle Data Pumpを使用してデータベースからオブジェクト・ストレージにデータをエクスポートするステップを示します。

Autonomous Databaseから他のOracleデータベースにデータをエクスポートする場合は、最新のOracle Data Pumpバージョンを使用することをお薦めします。これには操作性向上のための拡張機能と修正が含まれています。「Oracle Instant Clientのダウンロード」から、使用しているプラットフォーム用の最新バージョンのOracle Instant Clientおよびツール・パッケージ(Oracle Data Pumpが含まれる)をダウンロードします。Oracle Instant Clientおよびツール・パッケージをダウンロードした後に必要なインストール・ステップについては、プラットフォーム・インストールのダウンロード・ページでインストールの手順を参照してください。

ノート

データベース・アクションには、Oracle Instant Clientへのリンクが用意されています。データベース・アクションからこのリンクにアクセスするには、「ダウンロード」で、「Oracle Instant Clientのダウンロード」をクリックします。

Oracle Data Pumpバージョン19.9以降を使用している場合は、次のステップに示すように、credentialパラメータを使用できます。Oracle Data Pumpバージョン19.8以前を使用する手順は、DEFAULT_CREDENTIALプロパティの設定によるOracle Data Pumpを使用したオブジェクト・ストアへのデータのエクスポートを参照してください。

  1. データベースに接続します。
  2. DBMS_CLOUD.CREATE_CREDENTIALを使用してクラウド・オブジェクト・ストレージ資格証明を格納します。たとえば:
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'user1@example.com',
        password => 'password'
      );
    END;
    /

    usernameおよびpasswordに指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります

    Oracle Cloud Infrastructure Object Storageにエクスポートする場合、Oracle Cloud InfrastructureのネイティブURIまたはSwift URIを使用できますが、資格証明は認証トークンである必要があります。詳細は、CREATE_CREDENTIALプロシージャを参照してください。

  3. dumpfileパラメータをクラウド・オブジェクト・ストレージの既存のバケットのURLに設定し、ファイル名またはexp%L.dmpなどの置換変数を含むファイル名で終了し、credentialパラメータを前述のステップで作成した資格証明の名前に設定して、Data Pump Exportを実行します。たとえば:
    expdp admin/password@db2022adb_high \
         filesize=5GB \
         credential=def_cred_name \
         dumpfile=https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/exp%L.dmp \
         parallel=16 \
         encryption_pwd_prompt=yes \
         logfile=export.log \
         directory=data_pump_dir
    

    Oracle Data Pumpパラメータに関するノート:

    • expdpによるエクスポートでencryption_pwd_prompt=yesパラメータを使用した場合は、encryption_pwd_prompt=yesを使用して、エクスポート時に指定したimpdpプロンプトで同じパスワードを入力します。

    • dumpfileパラメータでは、レガシーの%Uおよび%uワイルドカードに加えて、%Lおよび%lワイルドカードがサポートされています。たとえば、dumpfile=export%L.dmpです。Oracle Databaseリリース12.2以降からのエクスポートには、%Lまたは%lワイルドカードを使用します。このワイルドカードは、ダンプファイルファイル名を3桁から10桁の可変幅増分整数に拡張し、100から2147483646で終わります。

    • バケットとデータが商用(OC1)レルム(OCI専用エンドポイントがサポートされていない)に存在しない場合は、dumpfileに次のURI形式を使用します:

      https://objectstorage.region.oraclecloud.com/n/namespace-string/b/bucketname/o/filename
    dumpfileの場合、この例では、商用レルム(OC1)のOCI専用エンドポイントを使用して推奨されるURI形式を使用します。namespace-stringは、Oracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ専用エンドポイントリージョンおよび可用性ドメインおよびオブジェクト・ストレージ・ネームスペースの理解を参照してください。

    credentialパラメータは、OCIリソース・プリンシパル、Azureサービス・プリンシパル、Amazonリソース名(ARN)またはGoogleサービス・アカウントにはできません。リソース・プリンシパル・ベースの認証の詳細は、ポリシーおよびロールの構成によるクラウド・リソースへのアクセスを参照してください。

    最適なエクスポート・パフォーマンスを得るには、エクスポート接続にHIGHデータベース・サービスを使用し、parallelパラメータをECPU数(.25 x ECPU数)の4分の1に設定します。OCPUコンピュート・モデルを使用している場合は、パラレル・パラメータをOCPUの数(1 x OCPU数)に設定します。

    Data Pump Exportを実行するために接続するデータベース・サービス名の詳細は、Autonomous Databaseのデータベース・サービス名を参照してください。

    様々なクラウド・オブジェクト・ストレージ・サービスのダンプ・ファイルのURL形式については、DBMS_CLOUDのURI形式を参照してください。

    この例では、Autonomous Databaseからエクスポートするための推奨パラメータを示します。これらのexpdpパラメータについては、次に注意してください:

    • Oracle Cloud Infrastructure Object Storageエクスポートの場合、filesizeパラメータの最大値は10000MBです。

    • Oracle Cloud Infrastructure Object Storage Classicエクスポートの場合、最大filesizeパラメータ値は20GBです。

    • 指定したfilesizeが大きすぎる場合、エクスポートでは次のエラー・メッセージが表示されます:

      ORA-17500: ODM err:ODM HTTP Request Entity Too Large
    • directoryパラメータは、指定したログ・ファイルexport.logのディレクトリdata_pump_dirを指定します。詳細は、Data Pump Exportのログ・ファイルへのアクセスを参照してください。

    Oracle Data Pumpでは、各ダンプ・ファイルの部分を小さなチャンクに分割してアップロードを高速化します。Oracle Cloud Infrastructure Object Storageコンソールには、エクスポートするダンプ・ファイル・パートごとに複数のファイルが表示されます。実際のダンプファイルのサイズはゼロ(0)、関連するファイル・チャンクは10mb以下と表示されます。たとえば:

    exp100.dmp
    exp100.dmp_aaaaaa
    exp101.dmp
    exp101.dmp_aaaaaa

    Oracle Cloud InfrastructureコンソールまたはOracle Cloud Infrastructure CLIを使用してゼロ・バイト・ダンプ・ファイルをダウンロードしても、完全なダンプ・ファイルは得られません。オブジェクト・ストアから完全なダンプ・ファイルをダウンロードするには、curlなどのSwiftをサポートするツールを使用して、ユーザー・ログインおよびSwift認証トークンを指定します。たとえば:

    curl -O -v -X GET -u 'user1@example.com:auth_token' \
       https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/namespace-string/bucketname/exp100.dmp

    datapumpを持つformatパラメータtypeをサポートするDBMS_CLOUDプロシージャを使用してファイルをインポートする場合は、プライマリ・ファイル名のみを指定する必要があります。'datapump'形式タイプをサポートするプロシージャは、チャンクを自動的に検出およびダウンロードします。

    DBMS_CLOUD.DELETE_OBJECTを使用すると、プライマリ・ファイルが削除されたときにチャンクが自動的に検出および削除されます。

  4. Oracle Data Pumpインポートおよびクリーン・アップの使用に必要なステップを実行します。
ノート

完全エクスポートを実行する場合や、他のユーザーが所有するオブジェクトをエクスポートする場合は、DATAPUMP_CLOUD_EXPロールが必要です。

Oracle Data Pump Exportパラメータの詳細は、『Oracle Databaseユーティリティ』を参照してください。