Oracle Data Pumpを使用したデータのエクスポート
Oracle Data Pumpは、Autonomous AI Databaseと他のOracleデータベースの間で、データおよびメタデータの非常に高速な一括移動を提供します。
Oracleでは、Autonomous AI Databaseから他のOracleデータベースにデータをエクスポートするために、最新のOracle Data Pumpバージョンを使用することをお薦めします。これは、より優れたエクスペリエンスを実現するための拡張機能と修正が含まれているためです。「Oracle Instant Clientのダウンロード」から、使用しているプラットフォーム用の最新バージョンのOracle Instant Clientおよびツール・パッケージ(Oracle Data Pumpが含まれる)をダウンロードします。Oracle Instant Clientおよびツール・パッケージをダウンロードした後に必要なインストール・ステップについては、プラットフォーム・インストールのダウンロード・ページでインストールの手順を参照してください。
Oracle Data Pumpを使用してAutonomous AI Databaseから他のOracleデータベースへデータを移動するには、次のいずれかのオプションを使用します:
-
オプション1: Data Pump Exportを使用したAutonomous AI Databaseディレクトリへの移動
Oracle Data Pumpを使用して、データベースのディレクトリにデータをエクスポートし、ディレクトリからクラウド・オブジェクト・ストアにデータを移動します。この方法は、Autonomous AI Databaseから複数のターゲット・データベースへデータを移動する場合に役立ちます。データを複数のクラウド・オブジェクト・ストアにエクスポートするかわりに、ダンプ・ファイル・セットを1回作成して複数のターゲット・データベースに使用できます。
次のステップを実行して、データをデータベースのディレクトリにエクスポートしてAutonomous AI Databaseからデータを移動します:
-
データをAutonomous AI Databaseのディレクトリにエクスポートし、ダンプ・ファイル・セットをディレクトリからクラウド・オブジェクト・ストアに移動します。Autonomous AI Databaseでのディレクトリを使用したデータのエクスポートを参照してください。
-
クラウド・オブジェクト・ストアからダンプ・ファイルをダウンロードし、データをターゲット・データベースにインポートして、クラウド・オブジェクト・ストアをクリーン・アップします。ダンプ・ファイルのダウンロード、Data Pump Importの実行、およびオブジェクト・ストアのクリーン・アップを参照してください。
-
-
オプション2: Data Pump Exportを使用したデータのオブジェクト・ストアへの移動
このエクスポート方法を使用する場合、Oracle Data Pumpを使用して、オブジェクト・ストアにデータを直接エクスポートします。このエクスポート方法は、Oracle Cloud Infrastructure Object StorageおよびOracle Cloud Infrastructure Object Storage Classicでサポートされています。これにより、Autonomous AI Databaseのディレクトリにダンプ・ファイル・セットを作成してから、ダンプ・ファイル・セットをクラウド・オブジェクト・ストアに移動することによるオーバーヘッドを避けることができます。データを単一のターゲット・データベースに移動する予定の場合、この方法により作業が節約され、エクスポート・プロセスが高速化されます。
次のステップを実行して、データをオブジェクト・ストアに直接エクスポートしてAutonomous AI Databaseから移動します:
- Autonomous AI Databaseからクラウド・オブジェクト・ストアにデータを直接エクスポートします。Autonomous AI Databaseからオブジェクト・ストアへのデータの直接エクスポートを参照してください。
- クラウド・オブジェクト・ストアからダンプ・ファイルをダウンロードし、データをターゲット・データベースにインポートして、クラウド・オブジェクト・ストアをクリーン・アップします。ダンプ・ファイルのダウンロード、Data Pump Importの実行、およびオブジェクト・ストアのクリーン・アップを参照してください。
Autonomous AI Databaseでのディレクトリを使用したデータのエクスポート
Autonomous AI Databaseのディレクトリを使用してデータをエクスポートするには、まずデータベースのディレクトリのエクスポート対象のデータを含むダンプ・ファイル・セットを作成し、次にデータベース・ディレクトリからクラウド・オブジェクト・ストアにこれらのファイルをアップロードする必要があります。
Data Pumpを使用したAutonomous AI Databaseでのダンプ・ファイル・セットの作成
-
エクスポート済のデータを含むダンプ・ファイルを格納するディレクトリを作成します。たとえば:
CREATE DIRECTORY data_export_dir as 'data_export'; -
dumpfileパラメータを設定し、filesizeパラメータを50G未満に設定し、directoryパラメータを設定して、Data Pump Exportを実行します。たとえば、次の例では、
ATPC1という名前のAutonomous AI Database内のSALESという名前のスキーマを、64個のECPUでエクスポートする方法を示しています:expdp sales/password@ATPC1_high directory=data_export_dir dumpfile=exp%L.dmp parallel=16 encryption_pwd_prompt=yes filesize=1G logfile=export.logData Pumpパラメータに関するノート:
-
ECPUの場合、
parallelはECPU数の0.25倍に設定する必要があります。したがって、前述の64 ECPUの例では、parallelは0.25 x 64、つまりexpdpで16に設定されます。 -
OCPUの場合、
parallelはOCPU数と同じ値に設定する必要があります。16 OCPUを持つ前述の例では、parallelはexpdpを使用して16に設定されます。 -
expdpでのエクスポート中にencryption_pwd_prompt=yesパラメータを使用する場合、インポートでencryption_pwd_prompt=yesを使用し、impdpのプロンプトで同じパスワードを入力してダンプ・ファイルを復号化する必要があります(エクスポートで指定したパスワードを覚えておいてください)。暗号化パスワードの最大長は128バイトです。 -
dumpfileパラメータでは、従来の%Uおよび%uワイルドカードに加えて、%Lおよび%lワイルドカードがサポートされます。たとえば、dumpfile=export%L.dmpです。Oracle Databaseリリース12.2以上からのエクスポートには、
%Lまたは%lワイルドカードを使用します。このワイルドカードは、ダンプファイルファイル名を100から2147483646までの3桁から10桁の可変幅増分整数に拡張します。
最適なエクスポート・パフォーマンスを得るために、エクスポート接続に
HIGHデータベース・サービスを使用して、PARALLELパラメータをデータベース内のCPUの数に設定します。Data Pump Exportを実行するために接続するデータベース・サービス名の詳細は、Autonomous AIデータベースの事前定義済データベース・サービス名を参照してください。エクスポートが完了したら、次のような問合せを実行して、生成されたダンプ・ファイルを確認できます:
SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_EXPORT_DIR');たとえば、この問合せの結果の出力には、生成されたダンプ・ファイルとエクスポート・ログ・ファイルが表示されます:
OBJECT_NAME BYTES CHECKSUM CREATED LAST_MODIFIED ---------------------- ---------- --------- ------------------------------- -------------------- exp01.dmp 12288 12-NOV-19 06.10.47.0 PM GMT 12-NOV-19... exp02.dmp 8192 12-NOV-19 06.10.48.0 PM GMT 12-NOV-19... exp03.dmp 1171456 12-NOV-19 06.10.48.0 PM GMT 12-NOV-19... exp04.dmp 348160 12-NOV-19 06.10.48.0 PM GMT 12-NOV-19... export.log 1663 12-NOV-19 06.10.50.0 PM GMT 12-NOV-19... -
ノート:
- 完全エクスポートを実行する場合や、他のユーザーが所有するオブジェクトをエクスポートする場合は、
DATAPUMP_CLOUD_EXPロールが必要です。 - ダンプ・ファイルをオブジェクト・ストレージに移動するために使用するAPIでサポートされるファイル・のサイズは最大50GBであるため、filesize引数でそれより大きいサイズを指定しないでください。
- 詳細は、Oracle Database 19cユーティリティのOracle Data PumpエクスポートまたはOracle Database 26aiユーティリティを参照してください。
Autonomous AI Databasetoからのダンプ・ファイル・セットのクラウド・オブジェクト・ストアへの移動
-
Autonomous AI Databaseに接続します。
-
DBMS_CREDENTIAL.CREATE_CREDENTIALプロシージャを使用して、クラウド・オブジェクト・ストレージ資格証明を格納します。たとえば:BEGIN DBMS_CREDENTIAL.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'adb_user@oracle.com', password => 'password' ); END; /usernameおよびpasswordに指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります:-
Oracle Cloud Infrastructure Object Storage:
usernameはOracle Cloud Infrastructureのユーザー名で、passwordはOracle Cloud Infrastructure認証トークンです。認証トークンの作業を参照してください。 -
Oracle Cloud Infrastructure Object Storage Classic:
usernameはOracle Cloud Infrastructure Classicのユーザー名で、passwordはOracle Cloud Infrastructure Classicのパスワードです。この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。オブジェクト・ストアの資格証明を変更しないかぎり、このステップが必要なのは1回のみです。資格証明を格納した後は、すべてのデータ・ロードで同じ資格証明名を使用できます。
-
-
DBMS_CLOUD.PUT_OBJECTをコールして、ダンプ・ファイルをAutonomous AI Databaseからクラウド・オブジェクト・ストアに移動します。たとえば:
BEGIN DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp01.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp01.dmp'); DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp02.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp02.dmp'); DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp03.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp03.dmp'); DBMS_CLOUD.PUT_OBJECT(credential_name => 'DEF_CRED_NAME', object_uri => 'https://swiftobjectstorage.us-phoenix-1.oraclecloud.com/v1/idthydc0kinr/mybucket/exp04.dmp', directory_name => 'DATA_EXPORT_DIR', file_name => 'exp04.dmp'); END; /PUT_OBJECTの詳細は、PUT_OBJECTプロシージャを参照してください。
Autonomous AI Databaseからオブジェクト・ストアへのデータの直接エクスポート
Oracle Data Pumpを使用してAutonomous AI Databaseからクラウド・オブジェクト・ストアにデータを直接エクスポートする方法を示します。
-
Autonomous AI Databaseに接続します。
-
DBMS_CREDENTIAL.CREATE_CREDENTIALプロシージャを使用して、クラウド・オブジェクト・ストレージ資格証明を格納します。たとえば:BEGIN DBMS_CREDENTIAL.CREATE_CREDENTIAL( credential_name => 'DEF_CRED_NAME', username => 'adb_user@oracle.com', password => 'password' ); END; /usernameおよびpasswordに指定する値は、使用しているクラウド・オブジェクト・ストレージ・サービスによって異なります:
-
Oracle Cloud Infrastructure Object Storage:
usernameはOracle Cloud Infrastructureのユーザー名で、passwordはOracle Cloud Infrastructure認証トークンです。認証トークンの作業を参照してください。 -
Oracle Cloud Infrastructure Object Storage Classic:
usernameはOracle Cloud Infrastructure Classicのユーザー名で、passwordはOracle Cloud Infrastructure Classicのパスワードです。
この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。オブジェクト・ストアの資格証明を変更しないかぎり、このステップが必要なのは1回のみです。資格証明を格納した後は、すべてのデータ・ロードで同じ資格証明名を使用できます。
-
-
ADMINユーザーとして、前述のステップで定義した資格証明をAutonomous AIデータベースのデフォルト資格証明として設定します。たとえば:
ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'DEF_CRED_NAME'; -
dumpfileパラメータをクラウド・オブジェクト・ストレージ上の既存のバケットのURLに設定して(ファイル名または
exp%U.dmpなどの置換変数を含むファイル名で終了)、Data Pump Exportを実行します。-
Oracle Data Pumpバージョン19.9以降:
credentialパラメータを、ステップ2で作成した資格証明の名前に設定します。たとえば:expdp admin/password@ADBD_high \ SCHEMAS=SOE3 \ filesize=5GB \ credential=DEF_CRED_NAME \ dumpfile=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \ parallel=16 \ encryption_pwd_prompt=yes \ logfile=export.log \ directory=data_pump_dir \ EXCLUDE=statistics,indexこの例では、
dumpfileは、Oracle Cloud InfrastructureのSwift URIであり、us-ashburn-1リージョンにあるmybucketバケット内のexport<number>.dmpに名前が一致するすべてのファイルを示します。(adbdpreview1は、バケットが存在するオブジェクト・ストレージ・ネームスペース) -
19.9 より前のOracle Data Pumpバージョン:
dumpfileパラメータの値をdefault_credentialキーワードとコロンで開始します。たとえば:expdp admin/password@ADBD_high \ SCHEMAS=SOE3 \ filesize=5GB \ dumpfile=DEF_CRED_NAME:https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/adbdpreview1/mybucket/export%L.dmp \ parallel=16 \ encryption_pwd_prompt=yes \ logfile=export.log \ directory=data_pump_dir \ EXCLUDE=statistics,indexこの例では、
dumpfileパラメータのdefault_credentialキーワードは必須です。
Oracle Data Pumpパラメータに関するノート:
-
デフォルトでは、Oracle Data Pump Exportはダンプ・ファイル・セットに書き込む前にメタデータのみを圧縮します。
compressionパラメータをALLに設定して、ダンプ・ファイル・セットに書き込む前にメタデータとデータを圧縮できます。詳細は、Oracle Database 19cユーティリティのCOMPRESSIONまたはOracle Database 26aiユーティリティを参照してください。 -
dumpfileパラメータでは、従来の%Uおよび%uワイルドカードに加えて、%Lおよび%lワイルドカードがサポートされます。たとえば、dumpfile=export%L.dmpです。Oracle Databaseリリース12.2以上からのエクスポートには、
%Lまたは%lワイルドカードを使用します。このワイルドカードは、ダンプファイルファイル名を100から2147483646までの3桁から10桁の可変幅増分整数に拡張します。詳細は、Oracle Database 19cユーティリティまたはOracle Database 26aiユーティリティのData Pump Exportコマンドライン・モードで使用可能なパラメータを参照してください。
-
最適なエクスポート・パフォーマンスを得るために、エクスポート接続に
highデータベース・サービスを使用し、parallelパラメータをECPU数の0.25倍、またはAutonomous AI DatabaseのOCPU数の0.25倍に設定します。Data Pump Exportを実行するために接続するデータベース・サービス名の詳細は、Autonomous AIデータベースの事前定義済データベース・サービス名を参照してください。 -
様々なクラウド・オブジェクト・ストレージ・サービスのダンプ・ファイルのURLフォーマットについては、クラウド・オブジェクト・ストレージのURIフォーマットを参照してください。
Autonomous AI Databaseで使用できないオブジェクトの詳細は、SQLコマンドの使用に関する制限事項に関する項を参照してください。
-
-
結果を検証します。
Oracle Data Pumpでは、各ダンプ・ファイルの部分を小さなチャンクに分割してアップロードを高速化します。Oracle Cloud Infrastructure Object Storageコンソールには、エクスポートするダンプ・ファイル・パートごとに複数のファイルが表示されます。実際のダンプファイルのサイズはゼロ(0)、関連するファイル・チャンクは10mb以下と表示されます。たとえば:
exp01.dmp exp01.dmp_aaaaaa exp02.dmp exp02.dmp_aaaaaaノート:
コンソールまたは 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/export01.dmp
ダンプ・ファイルのダウンロード、Data Pump Importの実行、およびオブジェクト・ストアのクリーン・アップ
必要に応じて、クラウド・オブジェクト・ストアからダンプ・ファイルをダウンロードし、Oracle Data Pump Importを使用してダンプ・ファイル・セットをターゲット・データベースにインポートします。次に、必要なクリーン・アップを実行します。
-
クラウド・オブジェクト・ストアからダンプ・ファイルをダウンロードします。
ノート:データを別のAutonomous AIデータベースにインポートする場合、このステップは不要です
Autonomous AI Databaseからオブジェクト・ストアへのDataの直接エクスポートに示すように、Oracle Data Pumpを使用してオブジェクト・ストアに直接輸出する場合、オブジェクト・ストア上のダンプ・ファイルにはサイズ0が表示されます。Oracle Data Pumpでは、各ダンプ・ファイルの部分を小さなチャンクに分割してアップロードを高速化します。Oracle Cloud Infrastructure Object Storageコンソールには、エクスポートするダンプ・ファイル・パートごとに複数のファイルが表示されます。実際のダンプファイルのサイズはゼロ(0)、関連するファイル・チャンクは10mb以下と表示されます。たとえば:
exp01.dmp exp01.dmp_aaaaaa exp02.dmp exp02.dmp_aaaaaaOracle 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/exp01.dmpcURLコマンドでは、URLでワイルドカードや置換文字をサポートしていません。オブジェクト・ストアからダンプ・ファイル・セットをダウンロードするには、複数のcURLコマンドを使用する必要があります。または、置換文字をサポートするスクリプトを使用して、オブジェクト・ストアから単一のコマンドですべてのダンプ・ファイルをダウンロードできます。
-
Data Pump Importを実行して、ダンプ・ファイル・セットをターゲット・データベースにインポートします。
ノート:データを別のAutonomous AIデータベースにインポートする場合は、Oracle Data Pumpを使用したデータ・ロードを参照してください。
Autonomous AI Databaseからオブジェクト・ストアへのファイルの直接エクスポートに示すように、Oracle Data Pumpを使用してオブジェクト・ストアに直接エクスポートされるファイルの場合は、
formatパラメータのtypeと値'datapump'をサポートするDBMS_CLOUDプロシージャを使用してファイルをインポートする場合、プライマリ・ファイル名のみを指定する必要があります。'datapump'形式タイプをサポートするプロシージャでは、チャンクが自動的に検出およびダウンロードされます。 -
インポート後のクリーン・アップ・タスクを実行します。ダンプ・ファイルをターゲット・データベースにインポートしたら、データを含むバケットを削除するか、クラウド・オブジェクト・ストア・バケットからダンプ・ファイルを削除し、Data Pump Importを実行するためにダンプ・ファイルをダウンロードした場所からダンプ・ファイルを削除します。
詳細は、Oracle Database 19cユーティリティまたはOracle Database 26aiユーティリティのOracle Data Pumpインポート・コマンドライン・モードで使用可能なパラメータを参照してください。