Oracle Data Pumpを使用して、DEFAULT_CREDENTIALプロパティを設定しているオブジェクト・ストアへのデータのエクスポート

Oracle Data Pump Exportを使用してAutonomous Databaseからクラウド・オブジェクト・ストレージにデータをエクスポートし、DEFAULT_CREDENTIALプロパティを設定するステップを示します。

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

ノート

データベース・アクションには、Oracle Instant Clientのリンクが用意されています。データベース・アクションからこのリンクにアクセスするには、「ダウンロード」で、「Oracle Instant Clientのダウンロード」をクリックします。
  1. Autonomous Databaseに接続します。
  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. ADMINユーザーとして、ステップ2で定義した資格証明をデータベースのデフォルトの資格証明として設定します。たとえば:
    ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'ADMIN.DEF_CRED_NAME'

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

  4. dumpfileパラメータをクラウド・オブジェクト・ストレージ上の既存のバケットのURLに設定して(ファイル名またはexp%L.dmpなどの置換変数を含むファイル名で終了)、Data Pump Exportを実行します。たとえば:
    expdp admin/password@db2022adb_high \
         filesize=5GB \
         dumpfile=default_credential: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
    

    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ワイルドカードを使用します。このワイルドカードは、ダンプファイルファイル名を100から2147483646までの3桁から10桁の可変幅増分整数に展開します。

    • バケットとデータが商用(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はバケット名です。詳細は、オブジェクト・ストレージ専用エンドポイントリージョンおよび可用性ドメインおよびオブジェクト・ストレージ・ネームスペースの理解を参照してください。

    dumpfileパラメータのdefault_credentialキーワードは必須です。

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

    データ・ポンプ・エクスポートを実行するために接続するデータベース・サービス名の詳細は、「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を指定します。詳細は、「データ・ポンプ・エクスポートのアクセス・ログ・ファイル」を参照してください。

    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を使用する場合、プロシージャは、プライマリ・ファイルを削除したときにチャンクを自動的に検出して削除します。

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

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

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