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

Oracle Data Pumpを使用してSODAコレクションをAutonomous AI Databaseにインポートするステップを示します。

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

Oracle Instant Client Downloadsから、ご使用のプラットフォーム向けの最新バージョンの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コレクションをエクスポートします。

    詳細は、「Autonomous AI Databaseにインポートするための既存Oracle AI Databaseのエクスポート」を参照してください。

  2. ステップ1のダンプ・ファイル・セットをCloud Object Storageにアップロードします。

  3. Autonomous AI Databaseで、必要なSODAコレクション・メタデータを使用してSODAのコレクションを作成します。

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

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

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

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

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

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

    詳細は、「Autonomous AI 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では、Oracle Cloud Infrastructure Object Storageのdumpfileパラメータに対する事前認証済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 AI 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数)に設定します。

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

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

    ノート

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

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

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

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

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

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