Oracle Data Pumpを使用したデータ・ロード

Oracle Data Pumpは、Oracleデータベースと専用Exadataインフラストラクチャ上のAutonomous AI Databaseとの間で、非常に高速なバルク・データとメタデータの移動を提供します。

Data Pump Importを使用すると、Oracle Cloud Infrastructure Object StorageおよびOracle Cloud Infrastructure Object Storage ClassicにあるData Pumpファイルからデータをインポートできます。データをクラウド・オブジェクト・ストアに保存し、Oracle Data Pumpを使用してデータをAutonomous AI Databaseにロードできます。

ノート:次のトピックを読んでまずに試してみる場合は、フリート管理者専用Oracle Autonomous AI Databaseワークショップラボ9: Data Pumpを使用した移行を参照してください。

既存のOracle Databaseからのデータのエクスポート

まず、Oracle Data Pump Exportを使用して既存のOracle Databaseスキーマをエクスポートします。次に、Oracle Data Pump Importを使用してAutonomous AIデータベースに移行します。

Oracleでは、Autonomous AI Databaseへの移行を迅速かつ容易にするために、次のData Pump Exportパラメータを使用することをお薦めします。

exclude=cluster, db_link
parallel=n
schemas=schema name
dumpfile=export%l.dmp

Oracle Data Pumpエクスポートにはいくつかのエクスポート・モードがあり、OracleではAutonomous AI Databaseへの移行にスキーマ・モードを使用することをお薦めします。エクスポートするスキーマは、schemasパラメータを使用してリストできます。

移行を高速化するには、スキーマを複数のData Pumpファイルにエクスポートして、並列処理を使用します。使用するダンプ・ファイル名のフォーマットを、dumpfileパラメータで指定できます。parallelパラメータをAutonomous AI DatabaseのCPUの数以上に設定します。

excludeパラメータおよびdata_optionsパラメータを使用することにより、Autonomous AI Databaseで使用できないオブジェクト・タイプはエクスポートされず、表パーティションは、Autonomous AI Databaseに高速にインポートできるようにグループ化されます。

ノート: Oracleでは、expdpコマンドを実行する前に最新の統計を収集することをお薦めします。dbms_statsパッケージには、最新の統計を収集するための複数のプロシージャが用意されています。統計はエクスポート・ダンプ・ファイルに自動的に追加され、インポート中のオブジェクトのサイズの判別および並列度の最適化に役立ちます。詳細は、『Oracle Database 19c PL/SQLパッケージおよびタイプ・リファレンス』DBMS_STATSの操作上のノートに関する項および『Oracle Database 26ai PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

次の例では、16個のCPUを持つAutonomous AI Databaseに移行するために、ソースOracle DatabaseからSHスキーマをエクスポートしています:

expdp sh/sh@orcl \
exclude=cluster, db_link \
parallel=16 \
schemas=sh \
dumpfile=export%l.dmp \
encryption_pwd_prompt=yes

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

要件に応じて、compressionなどの他のData Pump Exportパラメータを使用できます。詳細は、Oracle Database 19cユーティリティOracle Data PumpエクスポートまたはOracle Database 26aiユーティリティを参照してください。

クラウド・オブジェクト・ストレージへのエクスポート・ファイルのアップロード

ソースOracle Databaseからエクスポートしたデータをインポートする前に、エクスポート・ファイルをクラウド・オブジェクト・ストレージにアップロードする必要があります。

エクスポート・ファイルは、Oracle Cloud Infrastructure Object Storageの既存のストレージ・バケットまたはOracle Cloud Infrastructure Object Storage Classicの既存のストレージ・コンテナにアップロードできます。または、次の手順を使用して、新しいストレージ・バケットを作成し、そこにエクスポート・ファイルをアップロードします。

  1. cloud.oracle.comでOracle Cloudアカウントにサインインします。

  2. Oracle Cloud Infrastructureの左側のナビゲーション・リストから「オブジェクト・ストレージ」を選択し、サブリストから「オブジェクト・ストレージ」を選択します。

  3. ストレージ・バケットを作成するコンパートメントを選択します。

  4. 「バケットの作成」をクリックします。

  5. 「バケットの作成」ダイアログで、バケットに名前を付けて、「バケットの作成」をクリックします。

  6. バケットが作成されたら、バケットのリストでその名前をクリックして、その「バケット詳細」ページを表示します。

  7. 「オブジェクト」ボックスで、「オブジェクトのアップロード」をクリックします。

  8. 「オブジェクトのアップロード」ダイアログで、「コンピュータからのファイルの選択」ボックスの「ファイルの選択」リンクをクリックします。

  9. ファイル・ブラウザで、エクスポート・ファイルに移動して選択します。次に、「開く」をクリックします。

  10. 「オブジェクトのアップロード」ダイアログで、「オブジェクトのアップロード」をクリックして、選択したファイルのアップロードを開始します。

  11. アップロードが完了したら、「オブジェクトのアップロード」ダイアログを閉じます。

Oracle Data Pumpを使用したデータのインポート

Oracleでは、Data PumpファイルからAutonomous AI Databaseにデータをインポートするために最新のOracle Data Pumpバージョンを使用することをお薦めします。このバージョンには、より優れたエクスペリエンスを実現するための拡張機能と修正が含まれているためです。

「Oracle Instant Clientのダウンロード」から、使用しているプラットフォーム用の最新バージョンのOracle Instant Client Basicパッケージおよびツール・パッケージ(Oracle Data Pumpが含まれる)をダウンロードします。Oracle Instant Clientをダウンロードした後に必要なインストール・ステップについては、プラットフォーム・インストールのダウンロード・ページでインストールの手順を参照してください。

Oracle Data Pumpバージョン18.3以降では、credential引数により、ソース・ファイルに使用しているクラウド・オブジェクト・ストレージ・サービスに対してData Pumpが認証されます。dumpfile引数は、Data PumpファイルのURLをカンマで区切ったリストです。

Data Pump Importバージョン12.2.0.1以前には、credentialパラメータがありません。古いバージョンのData Pump Importを使用している場合は、Autonomous AI Databaseにデフォルトの資格証明プロパティを定義し、dumpfileパラメータでdefault_credentialキーワードを使用する必要があります。

Oracle Data Pumpで、ソース・ファイルがOracle Cloud Infrastructure Object Storageに存在する場合は、Oracle Cloud InfrastructureのネイティブURIまたはSwift URIを使用できます。これらのURIフォーマットの詳細は、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。

  1. DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用して、クラウド・オブジェクト・ストレージ資格証明を格納します。

    Data Pump Importは、Oracle Cloud Infrastructure認証トークン・ベースの資格情報およびOracle Cloud Infrastructure署名キー・ベースの資格情報をサポートしています。

    例1: Oracle Cloud Infrastructure認証トークン資格証明を作成するには:

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

    例2: Oracle Cloud Infrastructure署名キー・ベースの資格情報を作成するには:

     BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL (
         credential_name => 'DEF_CRED_NAME',
         user_ocid       => 'ocid1.user.oc1..unique_ID',
         tenancy_ocid    => 'ocid1.tenancy.oc1..unique_ID',
         private_key     => 'MIIEogIBAAKCAQEAtUnxbmre.....wtnNpESQQQ0QLGPD8NM//JEBg=',
         fingerprint     => 'fingerprint value'
       );
     END;
     /
    

    Oracle Cloud Infrastructure Cloud Object Storageの資格証明タイプの詳細は、CREATE_CREDENTIALプロシージャを参照してください。

  2. Oracle Data Pump バージョン12.2.0.1以前を使用している場合は、ADMINユーザーとしてAutonomous AI Databaseのデフォルトの資格証明として資格証明を設定する必要があります。たとえば:

     alter database property set default_credential = 'ADMIN.DEF_CRED_NAME'
    
  3. dumpfileパラメータをクラウド・オブジェクト・ストレージのファイルURLのリストに設定して、Data Pump Importを実行します。

    • Oracle Data Pumpバージョン18.3以降: credentialパラメータを、ステップ1で作成した資格証明の名前に設定します。たとえば:

      impdp admin/password@ATPC1_high \
        credential=def_cred_name \
        dumpfile= https://namespace-string.objectstorage.us-ashburn-1.oci.customer-oci.com/n/namespace-string/b/bucketname/o/export%l.dmp \ 
        parallel=16 \
        transform=segment_attributes:n \
        exclude=cluster, db_link
      

      この例では、dumpfileは、Oracle Cloud InfrastructureのSwift URIで、us-phoenix-1リージョンのmybucketバケット内のexport<number>.dmpと名前が一致するすべてのファイルを指定します。(idthydc0kinrは、バケットが存在するオブジェクト・ストレージ・ネームスペース)

    • Oracle Data Pumpバージョン12.2.0.1以前: dumpfileパラメータの値はdefault_credentialキーワードとコロンで開始します。たとえば:

      impdp admin/password@ATPC1_high \
        dumpfile=default_credential:https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/export%l.dmp \
        parallel=16 \      
        transform=segment_attributes:n \      
        exclude=cluster, db_link
      

    Data Pump Importに関するノート

    • 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桁の可変幅増分整数に拡張します。

      リリース12.2より前のOracle Databaseからのエクスポートには、レガシーの%Uまたは%uワイルドカードを使用します。このオプションを使用し、99を超えるダンプ・ファイルが必要な場合は、それぞれに%Uまたは%uパラメータを指定して、複数のダンプ・ファイル名を指定する必要があります。

    • インポートで最適なパフォーマンスを実現するには、インポート接続にhighデータベース・サービスを使用し、parallelパラメータをデータベース内のCPUの数に設定します。

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

    • 全体インポートを実行したり、他のユーザーが所有するオブジェクトをインポートするには、DATAPUMP_CLOUD_IMPロールが必要です。

    Autonomous AI Databaseで使用できないオブジェクトの詳細は、SQLコマンドの使用に関する制限事項に関する項を参照してください。

    インポート・パラメータの詳細は、『Oracle Database 19cユーティリティ』Oracle Data Pumpインポートまたは『Oracle Database 26aiユーティリティ』を参照してください。

Data Pump Importのログ・ファイルへのアクセス

Data Pump Import操作のログ・ファイルは、データ・ポンプのimpdp directoryパラメータで指定したディレクトリに格納されます。

ログ・ファイルにアクセスするには、プロシージャDBMS_CLOUD.PUT_OBJECTを使用してログ・ファイルをクラウド・オブジェクト・ストレージに移動する必要があります。たとえば、次のPL/SQLブロックでは、ファイルimport.logをCloud Object Storageに移動します。

BEGIN
  DBMS_CLOUD.PUT_OBJECT(
    credential_name => 'DEF_CRED_NAME',
    object_uri => 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/*namespace-string*/b/*bucketname*/o/import.log',
    directory_name  => 'DATA_PUMP_DIR',
    file_name => 'import.log');
END;
/

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

詳細は、オブジェクトおよびファイル用のDBMS_CLOUDを参照してください。

関連コンテンツ