5 Data Pumpの使用

データ・ポンプを使用してデータとメタデータをインポートおよびエクスポートできます。データ・ポンプは、PL/SQLパッケージDBMS_DATAPUMPの使用によってSQLclで使用できるようになります。

次の操作を実行できます。

  • 1つ以上のスキーマをエクスポートする。

  • remap schemaオプションを使用して1つ以上のスキーマをインポートする。

  • Oracle Database用およびOracle Autonomous Database Cloud Services用にDATAPUMPエクスポートおよびインポートを使用する。

  • データベース・ディレクトリまたはOracle Object Storeをダンプ・ファイルに使用する(オプションで暗号化可能)。

  • ダンプ・ファイルの並列処理を実行する。

  • オブジェクト・タイプまたは名前でオブジェクトをフィルタする。

  • SET DATAPUMPコマンドを使用してデフォルトを設定し、STOREコマンドを使用してそれらを保存する。

  • クラウド・ストレージ機能を使用してデータベース・ディレクトリへの配置やデータベース・ディレクトリからの取得を実行する。

5.1 スタート・ガイド

次の項では、SQLclでDATAPUMPコマンドの使用を開始するために必要な情報を示します。

5.1.1 前提条件

SQLclでDATAPUMPを使用するには、次の知識が必要です。

  • ログイン・ユーザーであり、エクスポートまたはインポートしている場合:

    • その表領域での適切なシステム権限または十分なユーザー領域リソースが必要です。

    • DBAまたはPDB_DBAロールを付与されていない場合、独自のスキーマをインポートまたはエクスポートするにはOracleディレクトリへのアクセス権が必要です。

      たとえば:
      grant read, write on directory DATA_PUMP_DIR to dpumpnotdba;
  • 他のスキーマを使用する場合:

    • データ・ポンプのインポート操作とエクスポート操作に必要なロールの詳細は、「必要なロール」を参照してください。

    • インポートする表領域に対する権限が必要です。

  • データ・ポンプを使用できない場合は、かわりに、「ファイルのロード」で示す方法を使用してファイルをロードできます。

  • Autonomous Databaseに接続するには:

  • Oracle Databaseからオブジェクト・ストレージを使用するには:

    • Oracle Cloud Infrastructureのドキュメントの、クラウド・ストレージ・コマンドのオプションについておよび設定と前提条件を参照してください。

    • OCIプロファイル構成ファイルをインストールする必要があります。

    • OCIプロファイルは、OCI PROFILE <name>またはCS OCI <profile>を使用して設定する必要があります。

    • データ・ポンプ・エクスポートで-copycloudオプションを使用して、エクスポートの最後の手順として、オブジェクト・ストレージにダンプ・ファイルをコピーできます。

    • データ・ポンプ・インポートで-copycloudオプションを使用して、インポートの最初の手順として、オブジェクト・ストレージからダンプ・ファイルをコピーできます。

    • クラウド・ストレージ・コマンド(putおよびget)を使用して、クラウド・ストレージとOracleディレクトリの間でダンプ・ファイルをコピーできます。

  • Autonomous Databaseからオブジェクト・ストレージを使用するには:

    • 認証でのDBMS_CLOUDの使用を参照してください。

    • クラウド・ストレージ、SET DATAPUMPまたはDATAPUMPコマンドを使用して、オブジェクト・ストレージ用の資格証明を設定する必要があります。

    • データベース・ディレクトリを使用せずに、オブジェクト・ストレージにダンプ・ファイルを直接エクスポートできます。

    • データベース・ディレクトリを使用せずに、オブジェクト・ストレージからダンプ・ファイルを直接インポートできます。

    • ログ・ファイルをオブジェクト・ストレージに直接書き込むことはできませんが、クラウド・ストレージ・コマンドを使用してそれらをクラウド・ストレージにコピーできます。

  • エクスポート中にタイムゾーン・ファイルのバージョンが表示されます。ダンプ・ファイルは、タイム・ゾーン・ファイルのバージョンが同一(またはそれ以降)であるデータベースにのみインポートできます。

  • 透過的暗号化モードおよびデュアル暗号化モードには、透過的データ暗号化(TDE)が必要です。TDEを使用できない場合は、パスワード暗号化のみを使用できます。

5.1.2 使用方法

DATAPUMPコマンドは、DBMS_DATAPUMPパッケージを使用してデータ・ポンプ・ジョブを作成および送信します。

  • Autonomousへのインポートについては、クラウド移行アドバイザ・ツール(CPAT)を参照してください。

  • ソース・データベースとターゲット・データベースで、ハードウェア、オペレーティング・システム、文字セット、タイムゾーンおよびバージョンが異なっていてもかまいません。

  • Oracle Databaseリリース11g以降のバージョンに存在するすべてのオブジェクト・タイプとデータ・タイプがサポートされています。

  • データとメタデータを転送およびフィルタできます。

  • インポート時に、スキーマ名、表領域名およびメタデータを変換できます。

  • データをOracle独自の形式でアンロードおよびロードできます。

  • ダンプ・ファイルを暗号化して、データがセキュアであることを確実にできます。暗号化モードとして、透過的暗号化を使用するか(データベースで使用可能な場合)またはパスワードを使用できます。

  • インポートまたはエクスポート・プロセスをフィルタして、含まれるオブジェクト・タイプとオブジェクトを制限できます。

エクスポート

データ・ポンプ・エクスポートは、メタデータおよびデータをダンプ・ファイルにアンロードするために使用します。ダンプ・ファイルは、Oracleディレクトリまたはオブジェクト・ストレージに格納できます。

  • スキーマ、またはスキーマのリストが指定されていない場合は、現在のスキーマがエクスポートされます。

  • ディレクトリまたはオブジェクト・ストレージ、および資格証明が指定されていない場合、ダンプ・ファイルはDATA_PUMP_DIRに格納されます。

  • ジョブ名は、指定されていない場合は、ESQL_<n>として作成されます。

  • ダンプ・ファイル名が指定されていない場合、ダンプ・ファイルは<jobname>.DMPとして格納されます。

  • ログ・ファイル名が指定されていない場合、ログ・ファイルは<jobname>.LOGとして格納されます。

インポート

データ・ポンプ・インポートは、Oracleディレクトリまたはオブジェクト・ストレージに格納されている、以前にエクスポートされたダンプ・ファイルからメタデータおよびデータをロードするために使用します。

  • スキーマ、またはスキーマのリストが指定されていない場合は、ダンプ・ファイル内のすべてのオブジェクトがインポートされます(デフォルトではFULLインポート)。フィルタを使用して、インポートされるオブジェクトの数を制限できます。

  • データベース・ディレクトリまたはオブジェクト・ストレージと、資格証明が指定されていない場合、ダンプ・ファイルはDATA_PUMP_DIRに格納されます。

  • ジョブ名は、指定されていない場合は、ISQL_<n>として作成されます。

  • ダンプ・ファイル名が指定されていない場合、ダンプ・ファイルは<jobname>.DMPとして格納されます。

  • ログ・ファイル名が指定されていない場合、ログ・ファイルは<jobname>.LOGとして格納されます。

5.2 データ・ポンプ・コマンドの構文と引数

データ・ポンプ・コマンドは、dpまたはdatapumpを使用して呼び出すことができます。

構文

dp help [examples|syntax] | export [<optional-argument>,...] | import [<optional-argument>,...] |

SQLclのデータ・ポンプについてヘルプ情報を表示するには、次のように入力します。

dp help

構文をすばやく表示し、その他の詳細を除外するには、次のように入力します。:

dp help syntax

ヘルプ内の例のみを表示するには、次のように入力します。

dp help examples

<optional argument>: 次の表に、使用可能なオプションの引数とそれぞれのデフォルト値を示します。

表5-1 オプションの引数

ファイル引数 説明 デフォルト
-credential, -c Oracle Object Storeでのダンプ・ファイル・アクセスの資格証明。 クラウド・ストレージ・コマンドで使用されたとおり
-directory,-d ダンプ・ファイルとログ・ファイルの読取りと書込みのための、デフォルトのデータベース・ディレクトリ。 DATA_PUMP_DIR
-dumpdirectory,-dd ダンプ・ファイル用のデータベース・ディレクトリ。 -directory (指定されている場合)またはDATA_PUMP_DIR
-dumpfile,-f <file-name>[,…]

データベース・ディレクトリを使用する場合のダンプ・ファイル名。

並列処理が有効かどうかに関係なく、複数のファイルを指定できます。指定するファイルの数は、並列度以上である必要があります。

<jobname><n>.DMP
-dumpuri,-u

[<uri>[,...] | <qualified-name>[,...]]

<uri>: クラウド・ストレージ・コマンドでデフォルトが設定されていない場合は、Oracle Object Storeファイルの完全なURI。

<qualifier>: オブジェクトの名前。オプションで、ネームスペースおよびバケットで修飾します。クラウド・ストレージ・コマンドで指定されたURIにこの修飾名を連結することで、オブジェクトのURIが完全に特定される必要があります。

Autonomous DatabaseからOracle Object Storeに直接読取り/書込みアクセスするには、資格証明を設定する必要があります。データベース・ディレクトリとOracle Object Storeの間の-copycloudの場合、OCI PROFILEを設定する必要があります。

並列処理が有効かどうかに関係なく、複数のURIを指定できます。指定するファイルの数は、並列度以上である必要があります。

デフォルトのオブジェクト名は<jobname>.DMPです
-logdirectory,-ld ログ・ファイル用のデータベース・ディレクトリ。 -directory (指定されている場合)またはDATA_PUMP_DIR
-logfile,-lf データベース・ディレクトリ内のログ・ファイル名。 <jobname><n>.LOG

表5-2 コマンド引数

コマンド引数 説明 デフォルト
-noexec,-ne

[TRUE | FALSE]

TRUE: PL/SQLを検証し生成しますが、実行はしません。

FALSE
-verbose,-ve

[TRUE | FALSE]

TRUE: 追加の診断出力を表示します。

FALSE

表5-3 共通引数

共通引数 説明 デフォルト
-copycloud,-cc

[TRUE | FALSE]

TRUE: データベース・ディレクトリとOracle Object Storeの間でダンプ・ファイルをコピーします。

エクスポートの場合は、データ・ポンプ・ジョブの完了後に、データベース・ディレクトリからOracle Object Storeにダンプ・ファイルをコピーします。

インポートの場合は、データ・ポンプ・ジョブが開始される前に、Oracle Object Storeからデータベース・ディレクトリにダンプ・ファイルをコピーします。

OCIコマンドまたはCLOUDSTORAGEコマンドを使用して、OCI PROFILEを設定します。CLOUDSTORAGEコマンド、SET DATAPUMPコマンドまたはDATAPUMPコマンドを使用して、クラウド・ストレージURIを設定します。

FALSE

-encryptionpassword,-enp

<password>

パスワードが指定されていない場合は、パスワードの入力を求められます。

エクスポートの場合、ダンプ・ファイルはパスワードを使用して暗号化されます。インポートの場合、エクスポートに使用したパスワードと同じパスワードを指定します。

なし

-excludeexpr,-ex

<object_type_expression>

ジョブから除外するオブジェクト・タイプまたはオブジェクト・タイプのセットを識別する式を指定します。例: -excludeexpr "IN ('GRANT','INDEX','TRIGGER')"

なし

-excludelist,-el

<object-type>[,...]

ジョブから除外するオブジェクト・タイプのカンマ区切り値リストを指定します。

例: -excludelist GRANT,INDEX,TRIGGER

なし

-includeexpr,-ix

<object_type_expression>

ジョブに含めるオブジェクト・タイプまたはオブジェクト・タイプのセットを識別する式を指定します。一致するオブジェクト・タイプとそれに依存するもののみがジョブに含められます。依存オブジェクトを除外するには、-excludelistまたは-excludeexprを使用します。例: -includeexpr "IN ('TABLE','VIEW')"

なし

-includelist,-il

<object_type>[,...]

ジョブに含めるオブジェクト・タイプのカンマ区切り値リストを指定します。一致するオブジェクト・タイプとそれに依存するもののみがジョブに含められます。依存オブジェクトを除外するには、-excludelistまたは-excludeexprを使用します。例: -includelist TABLE,VIEW

なし

-includemetadata,-im

[TRUE | FALSE]

TRUE: ジョブにメタデータを含めます。

TRUE
-includerows,-ir

[TRUE | FALSE]

TRUE: ジョブにデータを含めます。

TRUE
-jobname,-j

データ・ポンプ・ジョブの名前。

ジョブ名には、データ・ポンプで生成された番号が付加されます(ジョブ名の末尾が数字である場合を除く)。jobname<n>は、データ・ポンプ・ジョブの発行時に使用され、ダンプ・ファイル名およびログ・ファイル名、またはオブジェクト名のデフォルトとして使用されます。

ESQL_<n> | ISQL_<n> ここでのnはデータ・ポンプで生成された番号です。

-nameexpr,-nx

{<object-type>=<name-expression>}[;...]

指定したオブジェクト・タイプについて、ジョブに含めるオブジェクト名のセットを識別する式を指定します。例: -nameexpr TABLE="IN ('EMPLOYEES', 'DEPARTMENTS')";PROCEDURE="IN ('ADD_JOB_HISTORY','SECURE_DML')"

なし

-namelist,nl

{<object-type>=<name>[,...]}[;...]

指定したオブジェクト・タイプについて、ジョブに含めるオブジェクトのカンマ区切り値リストを指定します。例: -namelist TABLE=employees,departments;PROCEDURE=add_job_history,secure_dml

なし

-parallel,-p

<degree_integer>

複数のプロセスを同時に許可するジョブ内の並列度を調整します。並列度と同じ数のファイルを指定します。そうしないと、一部のプロセスがアイドル状態のままになる可能性があります。

1

-schemas,-s

<schema>[,...] - 処理するスキーマまたはスキーマ・リスト。

たとえば:
-schemas schema1,schema2
エクスポートの場合は、現在の接続のスキーマ。インポートの場合、デフォルトはFULLであり、ダンプ・ファイル内のすべてのオブジェクトがインポートされます。

-version,-v

{<nn.n> | COMPATIBLE | LATEST}

<nn.n>: 特定のデータベース・バージョン。たとえば、11.0.0。

Oracle Database 11gリリース2 (11.2.0.3)以降からOracle Database 12 cリリース1 (12.1)にエクスポートする場合は、値12を指定して、既存のすべてのデータベース機能、コンポーネントおよびオプションをエクスポートできるようにします。これは、マルチテナント・コンテナ・データベース(CDB)または非CDBに適用されます。

COMPATIBLE: データベース互換性レベルおよび機能の互換性リリース・レベルからのメタデータ・バージョンを使用します。

LATEST: メタデータのバージョンはデータベースのバージョンに対応します。

COMPATIBLE

-wait,-w

[TRUE | FALSE]

TRUE: データ・ポンプ・ジョブが終了するまで待機し、サマリー結果を表示します。

FALSE: 待機も結果表示もなしでデータ・ポンプ・ジョブを発行します。

TRUE

表5-4 エクスポート専用の引数

エクスポート専用の引数 説明 デフォルト
-compression,-cm

{ALL | DATA_ONLY | METADATA_ONLY | NONE}

ユーザー・データおよびメタデータに圧縮が必要かどうかを示します。

ALL: ユーザー・データとメタデータを圧縮します。

DATA_ONLY: ユーザー・データのみを圧縮します。

METADATA_ONLY: メタデータのみを圧縮します。

NONE: ユーザー・データもメタデータも圧縮しません。

METADATA_ONLY

-estimate,-e

{BLOCKS | STATISTICS}

表のサイズの見積り方法を指定します。これは、ジョブを開始する前に実行する必要があります。

BLOCKS: 見積りは、ユーザー表に割り当てられたブロックの数を使用して計算されます。

STATISTICS: 見積りは、各表の統計を使用して計算されます。表に使用可能な統計がない場合は、BLOCKSが使用されます。

 

-encryption,-en

{ALL | DATA_ONLY | ENCRYPTED_COLUMNS_ONLY | METADATA_ONLY | NONE}

-encryption NONEを指定していない場合、暗号化オプションを指定すると暗号化がオンになります。

NONE、または他の暗号化オプションが指定されている場合はALL。

-encryptionalgorithm,-ena

{AES128 | AES192 | AES256}

使用する暗号化アルゴリズムを識別します。

AES128

-encryptionmode,-enm

{DUAL | PASSWORD | TRANSPARENT}

暗号化および復号化で使用するセキュリティ・タイプを指定します。

PASSWORDは、指定されたパスワードを使用してダンプ・ファイルを暗号化します。

TRANSPARENTは、Oracle Encryption Walletが使用可能な場合に暗号化を有効にします。

DUALは、Oracle Encryption Walletまたはパスワードを使用したインポートを有効にします。DUALを使用する場合、-encryptionpasswordを指定する必要があります。

TRANSPARENT、または-encryptionpasswordが指定されている場合はPASSWORD。

-filesize,-fs

{<n>{B | KB | MB | GB | TB}}

ファイルのサイズを制限します。

500 MB

-flashbackscn,-fb

[TRUE | FALSE]

TRUE: 実行の開始時のシステム変更番号(SCN)に基づいて一貫性のあるデータベース・コンテンツを使用します。

FALSE

-reusefile,-r

[TRUE | FALSE]

TRUE: 既存のダンプ・ファイルを新しいファイルで置き換えます。

TRUE

表5-5 インポート専用の引数

インポート専用の引数 説明 デフォルト

-columnencryption,-ce

[TRUE | FALSE]

TRUE: 表メタデータに列暗号化句を含めます。

FALSE 列暗号化句を省略します。

データベースでサポートされている場合はTRUE

-objectid,-oid

[TRUE | FALSE]

TRUE: エクスポートされたOIDを割り当てます。

FALSE: 新しいOIDを割り当てます

TRUE

-remapschemas,-rs

{<oldSchema>=<newSchema>[,…]}

ジョブ内の<oldSchema>オブジェクトは<newSchema>に移動されます。例: oldschema1=newschema1,oldschema2=newschema2。

該当なし

-remaptablespaces,-rt

{<oldTablespace>=<newTablespace>[,…]}

ジョブ内の<oldTablespace>記憶域セグメントは<newTablespace>に再配置されます。例: oldtablespace1=newtablespace1、oldtablespace2=newtablespace2

該当なし

-segmentattributes,-sa

[TRUE | FALSE]

TRUE: セグメント属性句(物理属性、記憶域属性、表領域、ロギング)を含めます。

TRUE

-skipunusableindexes,-sui

[TRUE | FALSE]

TRUE: 行は、使用できない索引を持つ表に挿入されます。

TRUE

-storage,-st

[TRUE | FALSE]

TRUE: 記憶域句を含めます。

TRUE

-tableexists,-te

{APPEND | REPLACE | SKIP | TRUNCATE}

インポート中に表が存在する場合に実行する処理です。

APPEND: 新しい行は、表内の既存の行に追加されます。

REPLACE: 新しい表が作成される前に、古い表が削除されます。

SKIP: 既存の表が変更されることはありません。

TRUNCATE: 行が既存の表から削除された後に、インポートによる行が挿入されます。

-includemetadata trueの場合はSKIP。それ以外の場合は、インポート中に表が存在すればAPPENDアクションが実行されます。

-tablecompression,-tc

[TRUE | FALSE]

TRUE: 表圧縮句がサポートされている場合はそれが含まれます。

FALSE: 表には、表領域のデフォルトの圧縮が適用されます。

TRUE

5.3 ユースケース

次のユースケースでは、DATAPUMPコマンドを使用してデータをインポートおよびエクスポートする方法を示します。

ユースケース1

現在のスキーマの表、ビューおよび関数をデータベースからデータベースにコピーします。

  1. 現在のスキーマをDATA_PUMP_DIRにエクスポートします。
  2. DATA_PUMP_DIRからスキーマをインポートします。
-- Export the current schema into DATA_PUMP_DIR
SQL> connect <db-connect1-string>
SQL> dp export -dumpfile my_dump.dmp -includelist table,view,function

-- Import from DATA_PUMP_DIR
SQL> connect <db-connect2-string>
SQL> dp import -dumpfile my_dump.dmp

ユースケース2

現在のスキーマをデータベースからAutonomous Databaseにコピーします。暗号化は、パスワードのプロンプトを使用して行われます。

  1. OCIプロファイルを使用してOracle Object StoreへのOracleアクセスを設定します。
  2. 現在のスキーマをDATA_PUMP_DIRの暗号化ダンプ・ファイルにエクスポートし、プロファイルを使用してCSバケットにコピーします。
  3. 資格証明を使用してOracle Object Storeから暗号化ファイルをインポートします。
-- Set up for Oracle access to Oracle Object Store using an OCI profile
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/

-- Export current schema into an encrypted dump file in DATA_PUMP_DIR and copy it to the CS bucket using profile
SQL> connect <db-connect-string>
SQL> dp export -copycloud -dumpfile my_dump.dmp -encryptionpassword

-- Import encrypted file from Oracle Object Store using credential
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string>
SQL> dp import -dumpuri /o/my_dump.dmp -encryptionpassword -c SWIFTCRED

ユースケース3

スキーマの再マップを使用して、データベースからAutonomous Databaseに複数のスキーマをコピーします。

  1. OCIプロファイルを使用してOracle Object StoreへのOracleアクセスを設定します。
  2. スキーマをデータベース・ディレクトリにエクスポートし、クラウドにコピーします。
  3. 資格証明を使用してOracle Object Storeからインポートします。スキーマを再マップします。
-- Set up for Oracle access to Oracle Object Store using an OCI profile
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/

-- Export schemas into database directory and copy to cloud
SQL> connect <db-connect-string>
SQL> dp export -schemas dpumptest1,dpumptest11 -dumpfile DPUMPTEST1_11.DMP -cc

-- Import from Oracle Object Store using credential. Remap the schemas
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string>
SQL> dp import -dumpuri /o/DPUMPTEST1_11.DMP -c SWIFTCRED -rs dpumptest1=dpumptest2,dpumptest11=dpumptest21

ユースケース4

OCIプロファイルのみを使用して、表領域の再マップでデータベースからAutonomous Databaseに複数のスキーマをコピーします。

  1. OCIプロファイルを使用してOracle Object StoreへのOracleアクセスを設定します。
  2. 現在のスキーマをDATA_PUMP_DIRにエクスポートし、プロファイルを使用してCSバケットにコピーします。
  3. Oracle Object Storeからディレクトリにコピーし、ディレクトリからインポートします。表領域を再マップします。
-- Set up for Oracle access to Oracle Object Store using an OCI profile
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/

-- Export the current schema into DATA_PUMP_DIR and copy it to the CS bucket using profile
SQL> connect <db-connect-string>
SQL> dp export -copycloud

-- Copy from Oracle Object Store into directory and import from directory. Remap the tablespace.
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string>
SQL> dp import -copycloud -dumpuri /o/ESQL_<n>.DMP -rt DATA=USERS

ユースケース5

並列プロセッサを使用して、現在のスキーマをデータベースからAutonomous Databaseにコピーします。

  1. OCIプロファイルを使用してOracle Object StoreへのOracleアクセスを設定します。
  2. 現在のスキーマをDATA_PUMP_DIRにエクスポートし、プロファイルを使用してすべてのファイルをCSバケットにコピーします。
  3. 資格証明を使用してOracle Object Storeからインポートします。
-- Set up for Oracle access to Oracle Object Store using an OCI profile
SQL> oci profile my-profile
SQL> cs https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/abc123/testing-bucket/

-- Export the current schema into DATA_PUMP_DIR and copy all files to the CS bucket using profile
SQL> connect <db-connect-string>
SQL> dp export -copycloud -parallel 3 -dumpfile my_dump1.dmp,my_dump2.dmp,my_dump3.dmp

-- Import from Oracle Object Store using credential
SQL> set cloudconfig <wallet>
SQL> connect <cloud-connect-string>
SQL> dp import -dumpuri /o/my_dump1.dmp,/o/my_dump2.dmp,/o/my_dump3.dmp -c SWIFTCRED

5.4 ヒントとトラブルシューティング

DATAPUMPコマンドは、DBMS_DATAPUMPパッケージを使用してエクスポートおよびインポートを実行する、PL/SQLを作成します。

  • PL/SQLとパラメータのプレビュー

    • -noexecオプションを使用してエクスポートまたはインポートを検証します。このオプションでは、生成されたPL/SQLとパラメータが表示されますが、実行のためにジョブが発行されることはありません。

  • コマンド処理に関する追加情報の取得

    • 追加の診断情報を表示するには、-verboseオプションを使用します。

    • また、このオプションでは、ログの最終行および完了した割合を表示するための、コピーできる問合せが提供されます。

  • ジョブ・ログの表示

    • -waitオプションを使用すると、ログがコンソールに書き込まれます。

    • -wait falseを使用すると、ディレクトリ内のファイルを表示できない場合に、ログをオブジェクト・ストレージにコピーできます。

    • Oracle Databaseリリース12.2以降のバージョンでは、-wait falseを使用すると、次のコード・ブロックでログ・ファイルを表示できます。

      var c clob;
      set long 32000
      begin select to_clob(BFILENAME('DATA_PUMP_DIR','ESQL_<n>.LOG')) into :c from dual; end;
      /
      print c
      
  • ログイン・ユーザーとしてインポートまたはエクスポートする場合は、SYSロールを使用しないことをお薦めします。

  • 表に行を挿入すると、表領域に対する割当て容量があることが確認されます。割当て容量がない場合、DATAPUMPコマンドの実行後に次のエラーが表示されます。ORA-31626: ジョブが存在しません

    この問題を示すコード・スニペットを次に示します。

    *** Error with DataPump command 
    
    grant connect, resource, create session to user1 identified by user1;
    grant read on directory DATA_PUMP_DIR to user1;
    grant write on directory DATA_PUMP_DIR to user1;
    
    SQL> connect <db-connect-string>
    Connected
    
    SQL> datapump export -schemas user1
    
    Datapump Command Start ** at 2022.03.10-15.51.28
    Initiating DATA PUMP
    DATABASE TIME ZONE: VERSION:32 CON_ID:0
    Log
    Location: DATA_PUMP_DIR:ESQL_1614.LOG
    ORA-31626: job does not exist
    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
    ORA-06512: at "SYS.DBMS_DATAPUMP", line 1849
    ORA-06512: at "SYS.DBMS_DATAPUMP", line 6869
    ORA-06512: at line 25
     
    ** Datapump Command End ** at 2022.03.10-15.51.30
    SQL> exit
    
    ***Resolve Error by Granting Tablespace Quota to User
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
     
    SQL> alter user user1 quota 128M on users;
    Grant succeeded.
     
    SQL> connect <db-connect-string>
    Connected.
    
    SQL> datapump export -schemas user1
    
    ** Datapump Command Start ** at 2022.03.10-15.54.15
    Initiating DATA PUMP
    DATABASE TIME ZONE: VERSION:32 CON_ID:0
    Log Location: DATA_PUMP_DIR:ESQL_1616.LOG
    Starting "USER1"."ESQL_1616":
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
    Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    Processing object type SCHEMA_EXPORT/TABLE/COMMENT
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
    Master table "USER1"."ESQL_1616" successfully loaded/unloaded
    ******************************************************************************
    Dump file set for USER1.ESQL_1616 is:
      /opt/oracle/admin/DB193C/dpdump/D9C3824B6E651CA4E053020014C3358C/ESQL_1616.DMP
    Job "USER1"."ESQL_1616" successfully completed at Thu Mar 10 15:54:52 2022 elapsed 0 00:00:33
    DataPump Operation Status 'COMPLETED'
    Jobname = ESQL_1616
    ** Datapump Command End ** at 2022.03.10-15.54.56