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 Data Pump (Oracle Instant Clientを含む)をダウンロードします。Oracle Instant Clientをダウンロードした後に必要なインストール・ステップについては、プラットフォーム・インストールのダウンロード・ページでインストールの手順を参照してください。

Oracle Data Pumpでは、ソース・ファイルがOracle Cloud Infrastructure Object Storageにある場合、Oracle Cloud InfrastructureのネイティブURI、Swift URIまたは事前認証済URIを使用することができます。これらのファイル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コレクションをエクスポートします。
  2. ステップ1のダンプ・ファイル・セットをCloud Object Storageにアップロードします。
  3. Autonomous Databaseで、必要なSODAコレクション・メタデータを使用してSODAのコレクションを作成します。

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

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

    • バージョン列では、SHA256メソッドを使用します。

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

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

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

    詳細は「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パラメータを指定する必要があります。credential値はNULLです。詳細は、「事前認証済リクエストの使用」を参照してください。
  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ワイルドカードを使用します。このワイルドカードは、ダンプファイルファイル名を100から2147483646までの3桁から10桁の可変幅増分整数に展開します。

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

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

    Oracle Data Pumpバージョン19.6以降では、credential引数により、ソース・ファイルに使用されているクラウド・オブジェクト・ストレージ・サービスに対して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数)に設定します。

    データ・ポンプ・インポートを実行するために接続するデータベース・サービス名の詳細は、「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がすでにUUIDに設定されている場合、このフィールドのREMAP_DATAは必要はありません。

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

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