Oracle Data Pumpバージョン19.6以上を使用したSODAコレクション・データのインポート

Oracle Data Pumpを使用したSODAコレクションのAutonomous Databaseへのインポート・ステップを示します。

SODAコレクションは、バージョン19.6以降のOracle Data Pumpユーティリティを使用してエクスポートおよびインポートできます。Oracleでは、Data Pumpファイルからデータベースにデータをインポートするために、最新のOracle Data Pumpバージョンを使用することをお薦めします。

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

In Oracle Data Pump, if your source files reside on Oracle Cloud Infrastructure Object Storage you can use Oracle Cloud Infrastructure native URIs, Swift URIs, or pre-authenticated URIs.これらのファイルのURI形式の詳細は、DBMS_CLOUDパッケージ・ファイルのURI形式に関する項を参照してください。

Oracle Cloud Infrastructureの認証前URIを使用している場合も、credentialパラメータを指定する必要があります。ただし、事前認証済URLの資格証明は無視されます(したがって、指定される資格証明は有効である必要はありません)。Oracle Cloud Infrastructureの事前認証済URIの詳細は、DBMS_CLOUDパッケージ・ファイルのURI形式を参照してください。

この例では、SODAコレクション・メタデータを作成し、Data Pumpを使用してSODAコレクションをインポートする方法を示します。

  1. ソース・データベースで、Oracle Data Pumpのexpdpコマンドを使用してSODAコレクションをエクスポートします。

    詳細については、Export Your Existing Oracle Database to Import to Autonomous Databaseを参照してください。

  2. ステップ1のダンプ・ファイル・セットをクラウド・オブジェクト・ストレージにアップロードします。
  3. Autonomous Databaseで、必要なSODAコレクション・メタデータを使用してSODAコレクションを作成します。

    たとえば、次のメタデータを使用して、MyCollectionNameという名前のコレクションをソース・データベースからエクスポートする場合:

    • コンテンツ列はBLOBタイプです。

    • バージョン列ではSHA256メソッドが使用されます。

    コレクションをインポートするAutonomous Databaseで、新しいコレクションを作成します:

    • Autonomous Databaseの新しいコレクションのデフォルトでは、コンテンツ列は、OSONとして指定されたjsonFormatを持つBLOBに設定されます。

    • 新しいコレクション用のAutonomous Databaseのデフォルトでは、versionColumn.methodUUIDに設定されます。

    詳細は、「Autonomous DatabaseでのSODAのデフォルトのコレクション・メタデータ」を参照してください。

    たとえば:

    
    DECLARE
       collection_create SODA_COLLECTION_T;
    BEGIN
       collection_create := DBMS_SODA.CREATE_COLLECTION('MyCollectionName');
    END;
    /
    COMMIT;

    PL/SQLファンクションDBMS_SODA.LIST_COLLECTION_NAMESを使用すると、既存のコレクションを検出できます。詳細は、LIST_COLLECTION_NAMESファンクションに関する項を参照してください。

    SODAコレクションのメタデータを表示するには、ビューUSER_SODA_COLLECTIONSを問い合せます。詳細は、USER_SODA_COLLECTIONSを参照してください。

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

    たとえば、Oracle Cloud Infrastructure認証トークン資格証明を作成するには:

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

    Oracle Cloud Infrastructure認証トークン認証の詳細は、CREATE_CREDENTIALプロシージャを参照してください。

    たとえば、Oracle Cloud Infrastructure署名キー・ベースの資格証明を作成するには:

    BEGIN
       DBMS_CLOUD.CREATE_CREDENTIAL (
           credential_name => 'DEF_CRED_NAME',
           user_ocid       => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
           tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
           private_key     => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
           fingerprint     => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
    END;
    /

    Oracle Cloud Infrastructure署名キー・ベースの資格証明の詳細は、CREATE_CREDENTIALプロシージャを参照してください。

    サポートされている資格証明タイプ:

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

      Oracle Cloud Infrastructure署名キー・ベースの資格証明の詳細は、CREATE_CREDENTIALプロシージャを参照してください。

    • Data Pumpでは、dumpfileパラメータに対するOracle Cloud Infrastructure Object Storageの事前認証済URLの使用がサポートされています。事前認証済URLを使用する場合、credentialパラメータを指定する必要があり、impdpではcredentialパラメータは無視されます。dumpfileに事前認証済URLを使用する場合は、次のステップでcredentialNULL値を使用できます。詳細は、事前認証済リクエストの使用を参照してください。
  5. dumpfileパラメータにクラウドのオブジェクト・ストレージのファイルURLのリストを設定し、credentialパラメータに前述のステップで作成した資格証明の名前を設定して、Data Pump Importを実行します。
    ノート

    オプションCONTENT=DATA_ONLYを使用してコレクション・データをインポートします。

    INCLUDEパラメータを使用してインポートするコレクションを指定します。これは、データ・ファイル・セットにスキーマ全体が含まれ、インポートする必要があるSODAコレクションがダンプ・ファイル・セットに含まれている場合に便利です。

    インポート中に列を変更するには、REMAP_DATAを使用します。この例では、REMAP_DATAを使用して、バージョン列メソッドをSHA256からUUIDに変更しています。

    impdp admin/password@db2022adb_high \       
         directory=data_pump_dir \       
         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 \
         
         encryption_pwd_prompt=yes \
         SCHEMA=my_schema \
         INCLUDE=TABLE:\"= \'MyCollectionName\'\"  \
         CONTENT=DATA_ONLY \
         REMAP_DATA=my_schema.'\"MyCollectionName\"'.VERSION:SYS.DBMS_SODA.TO_UUID 
          
    

    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で終わります。

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

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

    Oracle Data Pumpバージョン19.6以降では、資格引数により、ソース・ファイルに使用しているクラウド・オブジェクト・ストレージ・サービスに対してOracle Data Pumpが認証されます。credentialパラメータは、Azureサービス・プリンシパル、Amazonリソース名(ARN)またはGoogleサービス・アカウントにはできません。リソース・プリンシパル・ベースの認証の詳細は、ポリシーおよびロールの構成によるクラウド・リソースへのアクセスを参照してください。

    dumpfile引数は、Data PumpファイルのURLをカンマで区切ったリストです。

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

    Data Pump Importを実行するために接続するデータベース・サービス名の詳細は、Autonomous Databaseでの同時実行性および優先度の管理を参照してください。

    様々なCloud Object Storageサービスのダンプ・ファイルのURL形式については、DBMS_CLOUDパッケージ・ファイルのURI形式を参照してください。

    ノート

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

    Autonomous Databaseで使用できないオブジェクトの詳細は、SQLコマンドを参照してください。

    このインポート例では、REMAP_DATAパラメータの指定でDBMS_SODA.TO_UUIDファンクションを使用してUUID値を生成します。デフォルトでは、オンプレミス・データベースの場合、SODAコレクションのバージョン列は、ドキュメントのコンテンツのSHA-256ハッシュを使用して計算されます。Autonomous Databaseでは、バージョン列には、UUIDで生成された値が使用されますが、この値はドキュメントのコンテンツとは独立しています。

    この例では、REMAP_DATAパラメータでDBMS_SODA.TO_UUIDファンクションを使用して、ソース・コレクションのバージョン・タイプをUUIDバージョニングに置き換えます。インポートするエクスポート・ダンプ・ファイル・セットでversionColumn.methodがすでにUUIDに設定されている場合、このフィールドにREMAP_DATAは必要ありません。

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

Data Pump Import操作のログ・ファイルは、Data Pump ImportのDIRECTORYパラメータで指定したディレクトリに格納されます。詳細は、データ・ポンプ・インポートのログ・ファイルへのアクセスに関する項を参照してください。