3.4 Oracle Data Pump Importコマンドライン・モードで使用可能なパラメータ
データ・インポートを管理するには、インポート(impdp)用のOracle Data Pumpパラメータを使用します。
- インポート・コマンドライン・モードについて
大/小文字の区別、引用符、エスケープ文字、例の使用方法に関する情報など、コマンドライン・モードでOracle Data Pump Importパラメータを使用する方法について学習します。 - ABORT_STEP
Oracle Data Pumpインポートのコマンドライン・モードのABORT_STEPパラメータでは、ジョブの初期化後に、そのジョブを停止します。ジョブを停止すると、データがインポートされる前にデータ・ポンプ制御ジョブ表を問い合せることができます。 - ACCESS_METHOD
Oracle Data Pump Importのコマンドライン・モードのACCESS_METHODパラメータでは、インポートでデータのロードに特定の方法を使用することを指定します - ATTACH
Oracle Data Pumpインポート・コマンドライン・モードのATTACHパラメータは、ワーカー・セッションを既存のデータ・ポンプ制御インポート・ジョブに接続し、自動的に対話方式コマンド・モードにします。 - CLUSTER
Oracle Data Pump Importのコマンドライン・モードのCLUSTERパラメータでは、データ・ポンプでOracle Real Application Clusters (Oracle RAC)リソースを使用できるかどうかと、ワーカーを他のOracle RACインスタンス上で開始できるかどうかを指定します。 - CONTENT
Oracle Data Pump Importのコマンドライン・モードのCONTENTパラメータを使用すると、インポート操作中にロード対象をフィルタ処理できます。 - CREDENTIAL
Oracle Data Pumpインポートのコマンドライン・モードのCREDENTIALパラメータでは、データベース・ユーザーが所有する資格証明オブジェクトの名前を指定します。インポート・ユーティリティは、このオブジェクト名を使用してクラウド・ストレージにインポートされるダンプ・ファイルセットのファイルを処理します。 - DATA_OPTIONS
Oracle Data Pump Importのコマンドライン・モードのDATA_OPTIONSパラメータでは、インポート操作中に特定のタイプのデータをどのように処理するかを指定します。 - DIRECTORY
Oracle Data Pump Importのコマンドライン・モードのDIRECTORYパラメータでは、インポート・ジョブでのダンプ・ファイル・セットの検索先およびログ・ファイルとSQLファイルの作成先となるデフォルトの場所を指定します。 - DUMPFILE
Oracle Data Pump Importのコマンドライン・モードのDUMPFILEパラメータでは、エクスポート・ユーティリティによって作成されたダンプ・ファイル・セットの名前を指定し、オプションで、これらのディレクトリ・オブジェクトを指定します。 - ENABLE_SECURE_ROLES
Oracle Data Pumpインポートのコマンドライン・ユーティリティのENABLE_SECURE_ROLESパラメータは、エクスポート時に保護されたロールを誤って使用しないようにします。 - ENCRYPTION_PASSWORD
Oracle Data Pump Importのコマンドライン・モードのENCRYPTION_PASSWORDパラメータでは、ダンプ・ファイル・セット内の暗号化列のデータにアクセスするためのパスワードを指定します。 - ENCRYPTION_PWD_PROMPT
Oracle Data Pumpインポートのコマンドライン・モードのENCRYPTION_PWD_PROMPTパラメータでは、データ・ポンプによって暗号化パスワードの入力を要求するかどうかを指定します。 - ESTIMATE
Oracle Data Pumpインポートのコマンドライン・モードのESTIMATEパラメータでは、ネットワーク・インポート操作のソース・システムに対して、インポート中に生成されるデータ量を見積もるように指定します。 - EXCLUDE
Oracle Data Pumpインポートのコマンドライン・モードのEXCLUDEパラメータを使用すると、インポート・ジョブから除外するオブジェクトとオブジェクト型を指定して、インポート対象のメタデータをフィルタ処理できます。 - FLASHBACK_SCN
Oracle Data Pump Importのコマンドライン・モードのFLASHBACK_SCNでは、インポート・ユーティリティで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。 - FLASHBACK_TIME
Oracle Data Pump Importのコマンドライン・モードのFLASHBACK_TIMEパラメータでは、インポート・ユーティリティで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。 - FULL
Oracle Data Pump Importのコマンドライン・モードのFULLパラメータにより、全データベース・インポートを実行することを指定します。 - HELP
Oracle Data Pump Importのコマンドライン・モードのHELPパラメータにより、インポート・ユーティリティのオンライン・ヘルプを表示します。 - INCLUDE
Oracle Data Pumpインポートのコマンドライン・モードのINCLUDEパラメータを使用すると、現行のインポート・モードにオブジェクトとオブジェクト型を指定して、インポート対象のメタデータをフィルタ処理できます。 - INDEX_THRESHOLD
Oracle Data Pump Importのコマンドライン・モードのINDEX_THRESHOLDパラメータは、1より大きい並列度で大規模な索引を作成する際のサイズしきい値を設定します。 - JOB_NAME
Oracle Data Pumpインポートのコマンドライン・モードのJOB_NAMEパラメータを使用して、後続処理でインポート・ジョブを指定します。 - KEEP_MASTER
Oracle Data Pumpインポートのコマンドライン・モードのKEEP_MASTERパラメータは、正常に完了したOracle Data Pumpジョブの最後にデータ・ポンプ制御ジョブ表を削除するか保持するかを指定します。 - LOGFILE
Oracle Data Pump Importのコマンドライン・モードのLOGFILEパラメータでは、インポート・ジョブのログ・ファイルの名前を指定し、オプションでディレクトリ・オブジェクトを指定します。 - LOGTIME
Oracle Data Pump Importのコマンドライン・モードのLOGTIMEパラメータにより、インポート中にメッセージをタイムスタンプとともに表示することを指定します。 - MASTER_ONLY
Oracle Data Pumpインポートのコマンドライン・モードのMASTER_ONLYパラメータは、データ・ポンプ制御ジョブ表の内容を確認できるように、データ・ポンプ制御ジョブ表のみをインポートしてジョブを停止するかどうかを示します。 - METRICS
Oracle Data Pump Importのコマンドライン・モードのMETRICSパラメータにより、ジョブに関する詳細情報をログ・ファイルに記録するかどうかを指定します。 - NETWORK_LINK
Oracle Data Pumpインポートのコマンドライン・モードでNETWORK_LINKパラメータを使用すると、有効なデータベース・リンクで識別されるソース・データベースからのインポートが可能になります。 - NOLOGFILE
Oracle Data Pump Importのコマンドライン・モードのNOLOGFILEパラメータにより、デフォルトでログ・ファイルを作成するかどうかを指定します。 - ONESTEP_INDEX
Oracle Data Pump Importのコマンドライン・モードのONESTEP_INDEXパラメータは、索引作成の同時実行性を最適化し、ジョブの並列度とのバランスをとります。 - PARALLEL
Oracle Data Pumpインポートのコマンドライン・モードのPARALLELパラメータでは、パラレルにロードできるワーカー・プロセスの最大数を設定します。 - PARALLEL_THRESHOLD
Oracle Data Pump Importコマンドライン・ユーティリティのPARALLEL_THRESHOLDパラメータでは、表サイズに基づいてデータ・ポンプが潜在的なパラレルDMLを計算するために使用する除数のサイズを指定します。 - PARFILE
Oracle Data Pump Importのコマンドライン・モードのPARFILEパラメータでは、インポート・パラメータ・ファイルの名前を指定します。 - PARTITION_OPTIONS
Oracle Data Pump Importのコマンドライン・モードのPARTITION_OPTIONSパラメータでは、インポート操作中に表パーティションを作成する方法を指定します。 - QUERY
Oracle Data Pump Importのコマンドライン・モードのQUERYパラメータを使用すると、インポート対象のデータをフィルタ処理する問合せ句を指定できます。 - REMAP_DATA
Oracle Data Pump Importのコマンドライン・モードのREMAP_DATAパラメータを使用すると、新規データベースへの挿入時に、データを再マップできます。 - REMAP_DATAFILE
Oracle Data Pump Importのコマンドライン・モードのREMAP_DATAFILEパラメータにより、ソース・データ・ファイルを参照するすべてのSQL文において、ソース・データファイル名がターゲット・データファイル名に変更されます。 - REMAP_DIRECTORY
Oracle Data Pump Importのコマンドライン・モードのREMAP_DIRECTORYパラメータを使用すると、プラットフォーム間でデータベースを移動するときにディレクトリを再マップできます。 - REMAP_SCHEMA
Oracle Data Pump Importのコマンドライン・モードのREMAP_SCHEMAパラメータにより、すべてのオブジェクトをソース・スキーマからターゲット・スキーマにロードします。 - REMAP_TABLE
Oracle Data Pump Importのコマンドライン・モードのREMAP_TABLEパラメータを使用すると、インポート操作中に表の名前を変更できます。 - REMAP_TABLESPACE
Oracle Data Pump Importのコマンドライン・モードのREMAP_TABLESPACEパラメータにより、インポート用に選択されたすべてのオブジェクトを再マップし、ソース表領域内の永続データがターゲット表領域内に作成されるようにします。 - SCHEMAS
Oracle Data Pump Importのコマンドライン・モードのSCHEMASパラメータにより、スキーマ・モード・インポートを実行することを指定します。 - SERVICE_NAME
Oracle Data Pump Importのコマンドライン・モードのSERVICE_NAMEパラメータでは、CLUSTERパラメータとともに使用するサービス名を指定します。 - SKIP_UNUSABLE_INDEXES
Oracle Data Pump Importのコマンドライン・モードのSKIP_UNUSABLE_INDEXESパラメータにより、(システムまたはユーザーのどちらかによって)索引使用禁止状態に設定されている索引を持つ表のロードをインポート・ユーティリティでスキップするかどうかを指定します。 - SOURCE_EDITION
Oracle Data Pump Importのコマンドライン・モードのSOURCE_EDITIONパラメータでは、オブジェクトのフェッチ元となるリモート・ノード上のデータベース・エディションを指定します。 - SQLFILE
Oracle Data Pump Importのコマンドライン・モードのSQLFILEパラメータでは、選択した他のインポート・パラメータに基づいて、インポート・ユーティリティによって実行準備が整えられたすべてのSQL DDLの書込み先となるファイルを指定します。 - STATUS
Oracle Data Pump Importのコマンドライン・モードのSTATUSパラメータでは、ジョブの状態を表示する頻度を指定します。 - STREAMS_CONFIGURATION
Oracle Data Pump Importのコマンドライン・モードのSTREAMS_CONFIGURATIONパラメータでは、エクスポート・ダンプ・ファイル内に存在する可能性のあるすべてのGoldenGateレプリケーション・メタデータをインポートするかどうかを指定します。 - TABLE_EXISTS_ACTION
Oracle Data Pump Importのコマンドライン・モードのTABLE_EXISTS_ACTIONパラメータでは、インポート・ユーティリティで作成しようとしている表がすでに存在する場合の動作を指定します。 - REUSE_DATAFILES
Oracle Data Pump Importのコマンドライン・モードのREUSE_DATAFILESパラメータでは、インポート・ジョブで表領域の作成に既存のデータ・ファイルを再利用するかどうかを指定します。 - TABLES
Oracle Data Pump Importのコマンドライン・モードのTABLESパラメータにより、表モード・インポートを実行することを指定します。 - TABLESPACES
Oracle Data Pump Importのコマンドライン・モードのTABLESPACESパラメータにより、表領域モード・インポートを実行することを指定します。 - TARGET_EDITION
Oracle Data Pump Importのコマンドライン・モードのTARGET_EDITIONパラメータにより、オブジェクトをインポートするデータベース・エディションを指定します。 - TRANSFORM
Oracle Data Pump Importのコマンドライン・モードのTRANSFORMパラメータを使用すると、インポート中のオブジェクトに対するオブジェクト作成DDLを変更できます。 - TRANSPORT_DATAFILES
Oracle Data Pump Importのコマンドライン・モードのTRANSPORT_DATAFILESパラメータでは、エクスポート中にTRANSPORTABLE=ALWAYSが設定された場合にターゲット・データベースにインポートするデータ・ファイルのリストを指定します。 - TRANSPORT_FULL_CHECK
Oracle Data Pump Importのコマンドライン・モードのTRANSPORT_FULL_CHECKパラメータでは、指定したトランスポータブル表領域セットが他の表領域内のオブジェクトによって参照されていることを確認するかどうかを指定します。 - TRANSPORT_TABLESPACES
Oracle Data Pump Importのコマンドライン・モードのTRANSPORT_TABLESPACESパラメータにより、データベース・リンク経由でトランスポータブル表領域モードでのインポートを実行することを指定します。 - TRANSPORTABLE
Oracle Data Pumpインポートのコマンドライン・モードのTRANSPORTABLEパラメータ(オプション)では、トランスポータブル表のインポートにKEEP_READ_ONLYまたはNO_BITMAP_REBUILDのどちらを使用するかを指定します。 - VERIFY_CHECKSUM
Oracle Data Pumpインポートのコマンドライン・ユーティリティのVERIFY_CHECKSUMパラメータでは、ダンプ・ファイルのチェックサムを検証するかどうかを指定します。 - VERIFY_ONLY
Oracle Data Pump Importコマンドライン・ユーティリティのVERIFY_ONLYパラメータを使用すると、ダンプ・ファイルのチェックサムを検証できます。 - VERSION
Oracle Data Pump Importのコマンドライン・モードのVERSIONパラメータでは、インポートするデータベース・オブジェクトのバージョンを指定します。 - VIEWS_AS_TABLES (ネットワーク・インポート)
Oracle Data Pump Importのコマンドライン・モードのVIEWS_AS_TABLES(ネットワーク・インポート)パラメータでは、1つ以上のビューを表としてインポートすることを指定します。
親トピック: Oracle Data Pumpインポート
3.4.1 インポート・コマンドライン・モードについて
大/小文字の区別、引用符、エスケープ文字、例の使用方法に関する情報など、コマンドライン・モードでOracle Data Pump Importパラメータを使用する方法について学習します。
Oracle Data Pumpインポート・パラメータを使用する前に、次の項を参照してください。
-
インポート・パラメータの指定
-
データ・ポンプ・コマンドラインでの引用符の使用
ここで説明する内容の多くは、パラメータの使用例を含みます。使用例を実行するために必要な環境の設定の詳細は、次の項を参照してください。
-
インポート・パラメータの使用例
インポート・パラメータの指定
値を複数個指定できるパラメータでは、カンマまたは空白で値を区切ることができます。たとえば、TABLES=employees,jobsまたはTABLES=employees jobsのように指定できます。
入力するパラメータごとに、等号(=)と値を入力する必要があります。それ以外の方法では、1つ前のパラメータ指定がどこで完了し、新しいパラメータ指定がどこから始まるかをデータ・ポンプに伝えることができません。たとえば、次のコマンドラインの場合、NOLOGFILEは有効なパラメータですが、DUMPFILEパラメータに対するダンプ・ファイル名がもう1つあると解釈されます。
impdp DIRECTORY=dpumpdir DUMPFILE=test.dmp NOLOGFILE TABLES=employees
その結果、test.dmpおよびnologfile.dmpという2つのダンプ・ファイルが作成されることになります。
これを回避するには、NOLOGFILE=YESまたはNOLOGFILE=NOのいずれかを指定します。
パラメータ値を指定する場合の大/小文字の区別
パラメータ値として入力される表領域名、スキーマ名、表名などについて、Oracle Data Pumpは、小文字または大/小文字混在で入力された値をデフォルトで大文字に変更します。たとえば、TABLE=hr.employeesと入力すると、それはTABLE=HR.EMPLOYEESに変更されます。大/小文字を維持するには、引用符で値を囲む必要があります。たとえば、TABLE="hr.employees"とすると、表名がすべて小文字のまま維持されます。入力する名前は、データベースに格納されている名前と完全に一致する必要があります。
データ・ポンプ・コマンドラインでの引用符の使用
一部のオペレーティング・システムでは引用符が特殊文字として処理されるため、バックスラッシュ(\)などのエスケープ文字を前に付けないと、アプリケーションに正しく渡されません。これは、コマンドラインとパラメータ・ファイル内の両方に当てはまります。また、オペレーティング・システムによっては、コマンドラインで、特殊文字を含むパラメータ値全体を一重引用符または二重引用符で囲む必要があります。
次の例では、これらの概念を説明します。特定のオペレーティング・システムに該当しない場合があること、および各ユーザーに固有の運用環境は想定していないことに注意してください。
次のように、パラメータ・ファイルでTABLESパラメータを指定するとします。
TABLES = \"MixedCaseTableName\"
これをコマンドラインで指定するとき、一部のオペレーティング・システムでは、次のように一重引用符で囲む必要があります。
TABLES = '\"MixedCaseTableName\"'
コマンドラインで追加の引用符を指定せずに手順を続行するには、パラメータ・ファイルを使用することをお薦めします。また、パラメータ・ファイルを使用し、指定するパラメータ値の文字列の最初の文字に引用符を使用しない場合(たとえば、TABLES=scott."EmP")は、エスケープ文字の使用が不要になるシステムがあることに注意してください。
インポート・パラメータの使用例
各項に示す例を試行する場合は、次の内容に注意してください。
-
例に示すようにユーザー名およびパラメータを入力した後、インポート・ユーティリティが起動され、パスワードの入力が要求されます。データベース接続が行われる前に、パスワードを入力する必要があります。
-
ここに示す例の多くは、Oracle Databaseのインストール時にデフォルトでインストールされるシード・データベースのサンプル・スキーマを使用しています。特に、人事管理(
hr)スキーマを頻繁に使用します。 -
インポートするダンプ・ファイルを指定する例では、そのダンプ・ファイルが存在するものとします。可能なかぎり、Exportの例を実行して生成されるダンプ・ファイルを使用します。
-
この例では、ディレクトリ・オブジェクト
dpump_dir1およびdpump_dir2がすでに存在し、これらのディレクトリ・オブジェクトについてのREAD権限およびWRITE権限が、hrユーザーに付与されているものとします。 -
一部の例では、
DATAPUMP_EXP_FULL_DATABASEロールおよびDATAPUMP_IMP_FULL_DATABASEロールが必要です。その例では、hrユーザーにこれらのロールが付与されているものとします。
必要に応じて、これらのディレクトリ・オブジェクトの作成と、必要な権限やロールの割当てをDBAに依頼します。
特に指定がないかぎり、これらのパラメータはパラメータ・ファイルでも指定できます。
3.4.2 ABORT_STEP
Oracle Data Pumpインポートのコマンドライン・モードのABORT_STEPパラメータでは、ジョブの初期化後に、そのジョブを停止します。ジョブを停止すると、データがインポートされる前にデータ・ポンプ制御ジョブ表を問い合せることができます。
デフォルト
Null
用途
ジョブの初期化後に、そのジョブを停止します。ジョブを停止すると、データがインポートされる前にデータ・ポンプ制御ジョブ表を問い合せることができます。
構文および説明
ABORT_STEP=[n | -1]
可能な値は、データ・ポンプ制御ジョブ表のプロセス順序番号に対応します。各番号の使用結果は次のとおりです。
-
n: 値がゼロ以上の場合、インポート操作が開始されます。ジョブは、対応するプロセス順序番号とともにデータ・ポンプ制御ジョブ表に格納されているオブジェクトで停止されます。 -
-1インポート・ジョブでNETWORK_LINKを使用する場合: ジョブは、その設定後、いずれかのオブジェクトがインポートされる前に中断されます。 -
-1インポート・ジョブがNETWORK_LINKを使用しないインポートの場合: ジョブは、マスター表をロードしてフィルタを適用した後に中断されます。
制限事項
-
なし
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp ABORT_STEP=-1 3.4.3 ACCESS_METHOD
Oracle Data Pump Importのコマンドライン・モードのACCESS_METHODパラメータでは、インポートでデータのロードに特定の方法を使用することを指定します
デフォルト
AUTOMATIC
用途
インポート・ユーティリティで特定のメソッドを使用してデータをロードするように指定します。
構文および説明
ACCESS_METHOD=[AUTOMATIC | DIRECT_PATH | EXTERNAL_TABLE | CONVENTIONAL | INSERT_AS_SELECT]
デフォルトのメソッドがなんらかの理由で動作しない場合に別のネイティブ・メソッドを試行できるように、ACCESS_METHODパラメータが提供されます。指定したアクセス方法で表のデータをロードできない場合は、データに表のエラーが表示され、次の作業項目に進みます。
使用可能なオプションは次のとおりです。
-
AUTOMATIC: このアクセス方法はデフォルトです。それぞれの表について、データをロードする最適な方法がデータ・ポンプによって判断されます。できるだけAUTOMATICを使用することをお薦めします。これは、データ・ポンプが最も効果的な方法を自動的に選択できるようになるためです。 -
DIRECT_PATH: データ・ポンプによって、すべての表に対して、ダイレクト・パス・ロードが使用されます。 -
EXTERNAL_TABLE: データ・ポンプによって、ダンプ・ファイルに格納されているデータに対する外部表が作成され、SQL文INSERT AS SELECTを使用してデータが表にロードされます。データ・ポンプによって、APPENDヒントがINSERT文に適用されます。 -
CONVENTIONAL: データ・ポンプによって、ダンプ・ファイルに格納されているデータに対する外部表が作成され、外部表から1つずつ行が読み取られます。データ・ポンプでは、行を読み取るたびにinsert文を実行して、その行をターゲット表にロードします。この方法は、データのロードに時間がかかるものの、ダイレクト・パスおよび外部表によってロードできないデータをロードする唯一の方法となります。 -
INSERT_AS_SELECT: データ・ポンプによって、リモート・データベースからデータを選択するSQL文INSERT AS SELECTを実行することによって表がロードされ、ターゲット表に挿入されます。このオプションは、ネットワーク・モード・インポートでのみ使用できます。ネットワーク経由でデータを移動するときにDIRECT_PATHの使用を無効にする場合は、これを使用します。
制限事項
-
ネットワーク・モード・インポートで有効なオプションは、
AUTOMATIC、DIRECT_PATHおよびINSERT_AS_SELECTです。 -
ダンプ・ファイルからインポートするときに有効なオプションは、
AUTOMATIC、DIRECT_PATH、EXTERNAL_TABLEおよびCONVENTIONALのみです。 -
ネットワーク・インポートで
ACCESS_METHODパラメータを使用するには、Oracle Database 12c リリース2 (12.2.0.1)以上を使用している必要があります。 -
Oracle Data Pump Importの
ACCESS_METHODパラメータは、トランスポータブル表領域のジョブに対して有効ではありません。
例
次の例では、Oracle Data Pumpで既存の表SALESの複数のパーティションのデータを同時にロードできます。
impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp ACCESS_METHOD=CONVENTIONAL3.4.4 ATTACH
Oracle Data Pumpインポート・コマンドライン・モードのATTACHパラメータは、ワーカー・セッションを既存のデータ・ポンプ制御インポート・ジョブに接続し、自動的に対話方式コマンド・モードにします。
デフォルト
実行中のジョブが1つのみの場合は、ユーザーのスキーマの現在のジョブ。
用途
このコマンドは、クライアント・ワーカー・セッションを既存のインポート・ジョブに接続し、自動的に対話方式コマンド・モードにします。
構文および説明
ATTACH [=[schema_name.]job_name]
schema_nameは、接続しているスキーマが、自分のスキーマにない場合に指定します。これを行うには、DATAPUMP_IMP_FULL_DATABASEロールが必要となります。
job_nameは、スキーマに対応する実行中ジョブが1つのみで、そのジョブがアクティブな場合、指定する必要はありません。停止しているジョブに接続する場合は、このジョブ名を指定する必要があります。DBA_DATAPUMP_JOBSビューまたはUSER_DATAPUMP_JOBSビューを問い合せて、Oracle Data Pumpジョブ名の一覧を表示できます。
ジョブに接続している場合、インポート・ユーティリティでは、ジョブの説明が表示され、次にインポート・プロンプトが表示されます。
制限事項
ATTACHパラメータを指定する場合、コマンドラインで他に指定できるOracle Data Pumpパラメータは、ENCRYPTION_PASSWORDのみです。- 接続するジョブが最初に暗号化パスワードを使用して起動している場合、そのジョブへの接続時に、コマンドライン上の
ENCRYPTION_PASSWORDパラメータを再入力してそのパスワードを再指定する必要があります。 - そのジョブが実行中でなければ、別のスキーマのジョブに接続することはできません。
- ジョブのダンプ・ファイル・セットまたはマスター表が削除されている場合、接続操作は失敗します。
- データ・ポンプ制御表を任意の方法で変更すると、予期しない結果になる可能性があります。
例
次に、ATTACHパラメータの使用例を示します。
> impdp hr ATTACH=import_job
この例では、import_jobというジョブが、hrスキーマに存在するとします。
3.4.5 CLUSTER
Oracle Data Pump Importのコマンドライン・モードのCLUSTERパラメータでは、データ・ポンプでOracle Real Application Clusters (Oracle RAC)リソースを使用できるかどうかと、ワーカーを他のOracle RACインスタンス上で開始できるかどうかを指定します。
デフォルト
YES
用途
Oracle Data PumpでOracle Real Application Clusters (Oracle RAC)リソースを使用できるかどうかと、ワーカーを他のOracle RACインスタンス上で開始できるかどうかを指定します。
構文および説明
CLUSTER=[YES | NO]
データ・ポンプ・インポートで、ジョブが開始されたインスタンスのみを使用し、Oracle Database 11g リリース2 (11.2)より前の動作と同じにするには、CLUSTER=NOを指定します。
特定の既存サービスを指定し、そのサービスに定義されたインスタンスでのみ実行されるようにワーカー・プロセスを制限するには、SERVICE_NAMEパラメータをCLUSTER=YESパラメータとともに使用します。
CLUSTERパラメータを使用すると、インポート・ジョブをOracle RACインスタンス間で分散するための追加のオーバーヘッドが発生するため、パフォーマンスに影響する場合があります。ジョブが小さいときは、CLUSTER=NOを指定して、ジョブが開始されたインスタンス上のみでジョブを実行した方がよい場合もあります。CLUSTERパラメータを使用してジョブのパフォーマンスが最もよくなるのは、ジョブのデータ量が多い場合です。
例
> impdp hr DIRECTORY=dpump_dir1 SCHEMAS=hr CLUSTER=NO PARALLEL=3 NETWORK_LINK=dbs1
この例では、hrスキーマのスキーマ・モード・インポートを実行します。CLUSTER=NOが使用されているため、ジョブでは起動時のインスタンスのみが使用されます。最大3つまでのパラレル処理を使用できます。dbs1のNETWORK_LINK値は、データのインポート元であるソース・データベース名に置き換えます。(これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。)
この例では、NETWORK_LINKパラメータは例の一部としてのみ使用されます。CLUSTERパラメータの使用時は必須ではありません。
3.4.6 CONTENT
Oracle Data Pump Importのコマンドライン・モードのCONTENTパラメータを使用すると、インポート操作中にロード対象をフィルタ処理できます。
デフォルト
ALL
用途
インポート操作でロードする内容をフィルタ処理できます。
構文および説明
CONTENT=[ALL | DATA_ONLY | METADATA_ONLY]
-
ALL:を指定すると、ソースに含まれているすべてのデータおよびメタデータがロードされます。これはデフォルトです。 -
DATA_ONLY: 表の行データのみが既存の表にロードされます。データベース・オブジェクトは作成されません。 -
METADATA_ONLY: データベース・オブジェクト定義のみがロードされます。表の行データはロードされません。CONTENT=METADATA_ONLYを指定した場合、ダンプ・ファイルからインポートされる任意の索引または表の統計は、インポート操作の完了後にロックされることに注意してください。
制限事項
-
CONTENT=METADATA_ONLYパラメータおよび値は、TRANSPORT_TABLESPACES(トランスポータブル表領域モード)パラメータまたはQUERYパラメータと組み合せて使用することはできません。 -
CONTENT=ALLおよびCONTENT=DATA_ONLYパラメータおよび値は、SQLFILEパラメータと組み合せて使用することはできません。
例
次に、CONTENTパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp CONTENT=METADATA_ONLY
このコマンドにより、expfull.dmpダンプ・ファイル内のメタデータのみをロードする全体インポートが実行されます。全体インポートが実行されるのは、インポート・モードを指定しないファイル・ベースのインポートでは、全体インポートがデフォルトであるためです。
関連トピック
3.4.7 CREDENTIAL
Oracle Data Pumpインポートのコマンドライン・モードのCREDENTIALパラメータでは、データベース・ユーザーが所有する資格証明オブジェクトの名前を指定します。インポート・ユーティリティは、このオブジェクト名を使用してクラウド・ストレージにインポートされるダンプ・ファイルセットのファイルを処理します。
デフォルト
なし。
用途
Oracle Cloud Infrastructureのクラウド・ストレージにインポートされたダンプ・ファイル・セット内のファイルを処理するためにインポート・ユーティリティによって使用される、データベース・ユーザーが所有する資格証明オブジェクト名を指定します。
構文および説明
CREDENTIAL=credential_object_nameインポート操作では、クラウドに格納されているダンプ・ファイル・セット内のファイルを、ローカル・ファイル・システムに格納されているファイルと同じように読み取り、処理します。
CREDENTIALパラメータを指定した場合は、DUMPFILEパラメータの値をカンマ区切りの文字列のリストにします。インポート・ユーティリティでは、このリストがURIの値として処理されます。Oracle Database 19c以降では、ダンプ・ファイル・セット内のURIファイルにデータ・ポンプ置換変数(%Uや%Lなど)が含まれているテンプレートを含めることができます。たとえば、urlpathexp%U.dmpです。
ノート:
置換変数は、ファイル名のURI部分にのみ使用できます。
DUMPFILEパラメータを使用すると、ユーザーはオプションのディレクトリ・オブジェクトを指定できます。このオブジェクトの指定には、directory_object _name:file_nameの形式を使用します。ただし、CREDENTIALパラメータを指定すると、インポート・ユーティリティはDUMPFILEで渡される文字列内のディレクトリ・オブジェクト名を検索しなくなります。そのかわりに、文字列はURI文字列として処理されます。
DIRECTORYパラメータは、ログ・ファイルとSQLファイルの場所として引き続き使用されます。また、LOGFILEとSQLFILEのファイル名の一部として引き続きディレクトリ・オブジェクト名を指定することもできます。
Oracle Data Pumpインポートでは、Oracle Autonomous Databaseのdefault_credential値の使用に対する制約がなくなりました。インポート・ユーティリティのCREDENTIALパラメータには、Oracle Autonomous Databaseで作成されたOracle Cloud Infrastructure (OCI)オブジェクト・ストレージの資格証明を指定できるようになりました。この資格証明は、DBMS_CLOUD.CREATE_CREDENTIAL()プロシージャを使用してデータベースに追加します。Oracle Data Pumpは、資格証明が存在しているかどうかと、ユーザーに資格証明の読取りアクセス権が付与されているかどうかを検証します。エラーはimpdpクライアントに返されます。
Oracle Database 21c以降、Oracle Data Pumpインポートおよびエクスポートでは、DUMPFILEパラメータに対するオブジェクト・ストレージURIの使用がサポートされています。この機能をオブジェクト・ストアからのエクスポートまたはインポートに使用するには、CREDENTIALパラメータをオブジェクト・ストレージURIに設定する必要があります。この機能により、ダンプ・ファイルをオブジェクト・ストアとの間で転送する追加のステップが軽減されるため、Oracle Cloudとの間の移行が容易になります。オブジェクト・ストアへのアクセス時のエクスポートおよびインポートのパフォーマンスは、ローカル・ディスク・アクセスと比較して遅くなりますが、プロセスはより簡単です。また、このプロセスは、Oracle Cloudとは別に2つのエクスポート操作を実行し、ダンプ・ファイルをオブジェクト・ストアからオンプレミスの場所に転送するか、ダンプ・ファイルをオンプレミスからオブジェクト・ストアに転送してからOracle Cloudにインポートするよりも高速であるはずです。
制限事項
資格証明パラメータは、OCIリソース・プリンシパル、Azureサービス・プリンシパル、Amazonリソース名(ARN)またはGoogleサービス・アカウントにはできません。
例: インポート・ユーティリティのCREDENTIALパラメータの使用
次に、インポート・ユーティリティのCREDENTIALパラメータの使用例を示します。この例で使用されているダンプ・ファイルを作成するには、エクスポート・ユーティリティのDUMPFILEパラメータに示した例を実行します。そのダンプ・ファイルをクラウド・ストレージにアップロードしておきます。
> impdp hr/your_password DIRECTORY=dpump_dir1 CREDENTIAL=user_accessible_credential
DUMPFILE=’https://objectstorage.example.com/exp1.dmp’,
’https://objectstorage.example.com/exp201.dmp’,
’https://objectstorage.example.com/exp202.dmp’
インポート・ジョブでは、そのダンプ・ファイルに指定されたクラウド・ストレージが検索されます。ログ・ファイルは、DIRECTORYパラメータで指定されたディレクトリ・オブジェクトdpump_dir1,に関連付けられたパスに書き込まれます。
例: ユーザー定義資格証明の指定
次の例では、Oracle Autonomous Database内に新しいユーザー定義資格証明を作成して、それと同じ資格証明をimpdpコマンドで使用しています。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => ‘MY_CRED_NAME’,
username => 'adwc_user@example.com’,
password => ‘Auth token' ); END;
> impdp admin/password@ADWC1_high
directory=data_pump_dir
credential=MY_cred_name …例: オブジェクト・ストア資格証明を使用したAutonomous Data Warehouseへのインポート
impdp admin/password@ADWC1_high \
directory=data_pump_dir \
credential=def_cred_name \
dumpfile= https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucketname/o/export%u.dmp \
parallel=16 \
encryption_pwd_prompt=yes \
partition_options=merge \
transform=segment_attributes:n \
transform=dwcs_cvt_iots:y transform=constraint_use_default_index:y \
exclude=index,cluster,indextype,materialized_view,materialized_view_log,materialized_zonemap,db_link
3.4.8 DATA_OPTIONS
Oracle Data Pump Importのコマンドライン・モードのDATA_OPTIONSパラメータでは、インポート操作中に特定のタイプのデータをどのように処理するかを指定します。
デフォルト
デフォルトはありません。このパラメータが使用されていない場合、このパラメータが提供する特別なデータ処理オプションは無効になります。
用途
DATA_OPTIONSパラメータでは、インポート操作中に特定のタイプのデータをどのように処理するかを指定します。
構文および説明
DATA_OPTIONS = [DISABLE_APPEND_HINT | SKIP_CONSTRAINT_ERRORS |
REJECT_ROWS_WITH_REPL_CHAR | GROUP_PARTITION_TABLE_DATA | TRUST_EXISTING_TABLE_PARTITIONS |
VALIDATE_TABLE_DATA | ENABLE_NETWORK_COMPRESSION |
CONTINUE_LOAD_ON_FORMAT_ERROR]
-
CONTINUE_LOAD_ON_FORMAT_ERROR: 表のデータをロード中にストリーム書式エラーが発生した場合に次のグラニュルの開始点にスキップするように、Oracle Data Pumpに指示します。通常、ストリーム書式エラーは、ダンプ・ファイルの破損によって発生します。Oracle Data Pumpでストリーム書式エラーが発生したときに、元のエクスポート・データベースを使用して表データを再度エクスポートできない場合は、
CONTINUE_LOAD_ON_FORMAT_ERRORを使用します。Oracle Data Pumpでデータがスキップされた場合、ソース・データベースからデータの一部がインポートされず、数百または数千の行がスキップされる可能性があります。 -
DISABLE_APPEND_HINT: インポート操作で、データ・オブジェクトのロード時にAPPENDヒントを使用しないことを指定します。APPENDヒントを無効化すると、重複データへの対処に役立ちます。たとえば、ロード対象のデータ・オブジェクトの小規模なセットがデータベースにすでに存在し、他の一部のアプリケーションから1つ以上のデータ・オブジェクトに同時にアクセス可能な場合は、DISABLE_APPEND_HINTを使用できます。DISABLE_APPEND_HINT:APPENDヒントがデータ・オブジェクトのロードに使用されないように、デフォルトの動作を変更します。設定しない場合、デフォルトでは、データ・オブジェクトのロードにAPPENDヒントが使用されます。 -
DISABLE_STATS_GATHERING: Oracle Data Pumpでは、ロードに関する統計がデフォルトでは収集されません。ただし、Oracle Autonomous Databaseなどの一部の環境では、ロードに関する統計がデフォルトで収集されます。このパラメータを使用すると、インポート・ジョブ中に統計の収集が一時停止されます。データをロードしながら統計を収集することのトレードオフでは、表に関する完全な統計を収集できるようになるまで、基本的な統計を収集しておくという短期的な利点と引き換えに、多大なオーバーヘッドが発生する可能性があります。 -
ENABLE_NETWORK_COMPRESSION: リモート表データをロードするためのOracle Data PumpのACCESS_METHODパラメータがDIRECT_PATHに設定されている場合に、ネットワーク・インポートで使用されます。ENABLE_NETWORK_COMPRESSIONを指定すると、Oracle Data Pumpによってリモート・ノード上のデータが圧縮され、ネットワーク経由でターゲット・データベースに送信された後、そこで解凍されます。リモート・データベースとローカル・データベースの間のネットワーク接続の速度が低い場合は、ネットワークを経由して送信されるデータの量が減少するため、このオプションが役立ちます。ACCESS_METHOD=AUTOMATICに設定すると、Oracle Data Pumpで、ネットワーク・インポートにDIRECT_PATHが使用されている場合に、インポート中にENABLE_NETWORK_COMPRESSIONを自動的に設定できます。Oracle Data Pumpがダンプ・ファイルからデータをインポートする場合、リモート・データベースがOracle Database 12cリリース2 (12.2)より前の場合、または
INSERT_AS_SELECT文を使用してリモート・データベースからデータをロードする場合は、ENABLE_NETWORK_COMPRESSIONオプションは無視されます。 -
GROUP_PARTITION_TABLE_DATA: 表のすべてのパーティションに1回の操作として表データをインポートするようにOracleデータポンプに指示します。デフォルトの動作では、各表パーティションが個別の操作としてインポートされます。パーティションのデータが移動しないことがわかっている場合は、このパラメータを選択して、パーティション表のデータのインポートを高速化します。Oracle Data Pumpが一度に1つのパーティションのみをロードしようとする場合があります。これが行われるのは、表がすでに存在する場合、またはあるパーティションのデータが別のパーティションに移動するリスクがある場合です。 -
REJECT_ROWS_WITH_REPL_CHAR: 文字セットの変換中にデフォルトの置換文字が使用されていたためにデータ損失が発生したすべての行をインポート操作で拒否するように指定します。REJECT_ROWS_WITH_REPL_CHARが設定されていない場合、デフォルトの動作では、置換文字で変換された行がロードされます。 -
SKIP_CONSTRAINT_ERRORS: データ・オブジェクト(表、パーティションまたはサブパーティション)をロードする際の、非遅延制約違反の処理方法に適用されます。遅延制約違反が発生しても、
SKIP_CONSTRAINT_ERRORSによるロードへの影響はありません。遅延制約違反は常に、ロード全体のロール・バックの原因となります。SKIP_CONSTRAINT_ERRORSオプションでは、非遅延の制約違反が発生した場合もインポート操作を続行することを指定します。非遅延の制約違反の原因となっているすべての行はログに記録されますが、違反が発生しているデータ・オブジェクトのロードは停止されません。SKIP_CONSTRAINT_ERRORS: 非遅延の制約違反が発生した場合に、データ・オブジェクト全体のロールバックを防ぎます。SKIP_CONSTRAINT_ERRORSが設定されていない場合のデフォルトの動作では、非遅延の制約違反が発生しているデータ・オブジェクトのロード全体がロール・バックされます。 -
TRUST_EXISTING_TABLE_PARTITIONS: パーティション・データをパラレルで既存の表にロードするようにデータ・ポンプに指示します。データ・ポンプを使用してエクスポート・データベース内の定義から表を作成した後で表データ・インポートを開始する場合は、このオプションを使用します。通常、このパラメータは、メタデータが静的で、データを移行するためにデータベースをオフラインにする前に移動可能な場合に、移行の一環として使用します。メタデータを別々に移動すると、停止時間が最小限になります。このオプションを使用した場合、データベースの他の属性(文字セットなど)が同じであれば、エクスポート・データベースからのデータはインポート・データベース内の同じパーティションに移動します。
表はOracle Data Pumpの外部で作成できます。ただし、Oracle Data Pumpを使用する以外の方法で表を作成する場合は、パーティション属性およびパーティション名をエクスポート・データベースと同じにする必要があります。
ノート:
このオプションは、エクスポートのソース・バージョンに関係なくインポートに使用できます。 -
VALIDATE_TABLE_DATA: 表のデータ列内の数値および日付データ型を検査するようにOracle Data Pumpに指示します。インポートで無効なデータが検出された場合、
ORA-39376エラーが.logファイルに書き込まれます。エラー・テキストには列名が含まれます。デフォルトでは妥当性チェックは行われません。Oracle Data Pumpのダンプ・ファイルのソースを信頼できない場合は、このオプションを使用します。
制限事項
-
DISABLE_APPEND_HINTを使用すると、データ・オブジェクトのロードにかかる時間が長くなる場合があります。 -
SKIP_CONSTRAINT_ERRORSを使用し、データ・オブジェクトにロード時に定義された一意の索引または制約が含まれる場合、そのデータ・オブジェクトをロードする際にAPPENDヒントは使用されません。したがって、SKIP_CONSTRAINT_ERRORSオプションを使用した場合、このようなデータ・オブジェクトのロードにはさらに時間がかかる可能性があります。 -
データ・オブジェクトが外部表によるアクセス方法を使用せずにロードされている場合、
SKIP_CONSTRAINT_ERRORSは、たとえ指定されていても使用されません。
例
この例では、SKIP_CONSTRAINT_ERRORSが有効化されているデータのみの表モード・インポートを示します。
> impdp hr TABLES=employees CONTENT=DATA_ONLY
DUMPFILE=dpump_dir1:table.dmp DATA_OPTIONS=skip_constraint_errors
このインポート操作中に非遅延の制約違反が発生した場合、これらの違反はログに記録されます。インポートは完了するまで続行します。
3.4.9 DIRECTORY
Oracle Data Pump Importのコマンドライン・モードのDIRECTORYパラメータでは、インポート・ジョブでのダンプ・ファイル・セットの検索先およびログ・ファイルとSQLファイルの作成先となるデフォルトの場所を指定します。
デフォルト
DATA_PUMP_DIR
用途
インポート・ジョブがダンプ・ファイル・セットを検出し、ログ・ファイルおよびSQLファイルが作成されるデフォルトの位置を指定します。
構文および説明
DIRECTORY=directory_object
directory_objectは、データベース・ディレクトリ・オブジェクトの名前です。実際のディレクトリのファイル・パスではありません。特権ユーザーにDATA_PUMP_DIRという名前のデフォルトのディレクトリ・オブジェクトへのアクセス権が付与されます。DATA_PUMP_DIRディレクトリの定義は、アップグレード時またはパッチの適用時にOracleによって変更される可能性があります。
デフォルトのDATA_PUMP_DIRディレクトリ・オブジェクトにアクセス可能なユーザーは、DIRECTORYパラメータを使用する必要はありません。
DUMPFILEパラメータ、LOGFILEパラメータまたはSQLFILEパラメータで指定したディレクトリ・オブジェクトは、DIRECTORYパラメータに指定したディレクトリ・オブジェクトよりも優先されます。ダンプ・ファイル・セットに使用されるディレクトリへの読取りアクセス権が必要です。ログ・ファイルおよびSQLファイルの作成に使用するディレクトリへの書込みアクセス権が必要です。
例
次に、DIRECTORYパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
LOGFILE=dpump_dir2:expfull.log
このコマンドによって、インポート・ジョブが、dpump_dir1ディレクトリ・オブジェクトに示されたディレクトリのexpfull.dmpダンプ・ファイルを検索します。LOGFILEパラメータに指定したdpump_dir2ディレクトリ・オブジェクトは、DIRECTORYパラメータよりも優先されるため、ログ・ファイルは、dpump_dir2に書き込まれます。CREATE DIRECTORYコマンドの詳細は、Oracle Database SQL言語リファレンスを参照してください。
関連トピック
- ダンプ・ファイル、ログ・ファイルおよびSQLファイルのデフォルトの位置の理解
- Oracle RACでのOracle Data Pumpの使用方法の理解
- 『Oracle Database SQL言語リファレンス』のCREATE DIRECTORYに関する項
3.4.10 DUMPFILE
Oracle Data Pump Importのコマンドライン・モードのDUMPFILEパラメータでは、エクスポート・ユーティリティによって作成されたダンプ・ファイル・セットの名前を指定し、オプションで、これらのディレクトリ・オブジェクトを指定します。
デフォルト
expdat.dmp
用途
エクスポート・ユーティリティによって作成されたダンプ・ファイル・セットの名前を指定します。そのセットのディレクトリ・オブジェクトまたはデフォルトの資格証明も指定できます。
構文および説明
DUMPFILE=[directory_object:]file_name [, ...]または
DUMPFILE=[DEFAULT_CREDENTIAL:]URI_file [, ...]DIRECTORYパラメータですでに指定されている場合、directory_objectはオプションです。値を指定する場合は、すでに存在し、かつ自分にアクセス権があるディレクトリ・オブジェクトにする必要があります。DUMPFILEパラメータの一部に指定されるデータベース・ディレクトリ・オブジェクトは、DIRECTORYパラメータで指定された値よりも優先されます。
file_nameには、ダンプ・ファイル・セット内のファイルの名前を指定します。ファイル名には、置換変数%Uを含むテンプレートを指定することもできます。インポート・プロセスでは、各ファイルがテンプレートと一致するかどうかがチェックされます。ダンプ・ファイル・セットに含まれるすべてのファイルは、一致するファイルがなくなるまで検索されます。DUMPFILEパラメータで定義されたファイルの指定にセット全体が含まれている場合は、インポート・ユーティリティでセット全体を見つけるために十分な情報がファイルに含まれます。ファイルの名前、位置または順序は、エクスポート時に使用されたものと同じである必要はありません。
次の表に、使用可能な置換変数を示します。
| 置換変数 | 説明 |
|---|---|
|
|
%Uを使用すると、%Uが01から増加する2桁の整数に変換されます。
|
|
|
システムによって生成される一意のファイル名を指定します。
ファイル名には、複数のファイルを生成できることを示す置換変数( たとえば、現在の整数が1の場合、
exp%Laa%L.dmpは次の順序に解決されます2桁の増加が99まで続きます。その後、次のファイル名は3桁の増加に置換されます。
3桁の増加が999まで続きます。その後のファイル名は4桁の増加に置換されます。最大許容置換数(2147483646)まで、置換が続きます。 |
制限事項
-
Oracle Data Pumpのパラメータ
VERSION=12を使用してOracle Database 11gリリースで作成したダンプ・ファイルは、Oracle Database 12cリリース1 (12.1)以降でのみインポートできます。
インポート・ユーティリティのDUMPFILEパラメータの使用例
この例では、ExportのDUMPFILEパラメータで示した例を実行して、ダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=dpump_dir2:exp1.dmp, exp2%U.dmp
exp1.dmpダンプ・ファイルにディレクトリ・オブジェクト(dpump_dir2)が指定されているため、インポート・ジョブは、そのファイルを検索します。また、dpump_dir1にある、exp2nn.dmpの形式のダンプ・ファイルも検索します。ログ・ファイルはdpump_dir1に書き込まれます。
インポート・ユーティリティのDUMPFILEパラメータに代替のDEFAULT_CREDENTIALキーワード構文を使用する場合は、ユーザー・アクセス権を持つデフォルトの資格証明が事前に存在している必要があります。インポート操作では、デフォルトの資格証明を使用して、指定したURI_fileの場所のクラウドに格納されたダンプ・ファイル・セット内のファイルを読み取って処理します。
変数URI_fileは、ダンプ・ファイルセット内のURIファイルの名前を表します。このファイル名は、データ・ポンプ置換変数(%Uや%Lなど)が含まれているテンプレートと同じ名前にはできません。
DUMPFILEパラメータのDEFAULT_CREDENTIALキーワード構文は、directory_object構文と相互に排他的です。同じコマンドラインで使用できるフォームは1つのみです。
ユーザー定義資格証明を指定したインポート・ユーティリティのDUMPFILEの使用例
この例では、インポート・ジョブがダンプ・ファイル・セットを検索してログ・ファイルとSQLファイルを作成できるデフォルトの場所を指定しています。また、以前にクラウド・ストレージにインポートしたダンプ・ファイル・セット内のファイルを処理するために、インポート・ユーティリティで使用するデータベース・ユーザーが所有する資格証明オブジェクトの名前も指定しています。
> impdp admin/password@ADWC1_high
directory=data_pump_dir
credential=MY_cred_name …DEFAULT_CREDENTIALキーワードを指定したインポート・ユーティリティのDUMPFILEパラメータの使用例。
この例では、ExportのDUMPFILEパラメータで示した例を実行して、ダンプ・ファイルを作成できます。
> impdp hr/your_password DIRECTORY=dpump_dir1
DUMPFILE=’DEFAULT_CREDENTIAL:https://objectstorage.example.com/exp1.dmp’,
’DEFAULT_CREDENTIAL:https://objectstorage.example.com/exp201.dmp’,
’DEFAULT_CREDENTIAL:https://objectstorage.example.com/exp202.dmp’
インポート・ジョブでは、ユーザーにすでに設定されているデフォルトの資格証明を使用して、指定されたURI_fileの場所でダンプ・ファイルが検索されます。ログ・ファイルは、DIRECTORYパラメータで指定されたディレクトリ・オブジェクトdpump_dir1に関連付けられたパスに書き込まれます。
ユーザー定義資格証明を指定したインポート・ユーティリティのDUMPFILEパラメータの使用例
この例では、インポート・ジョブがダンプ・ファイル・セットを検索してログ・ファイルとSQLファイルを作成できるデフォルトの場所を指定しています。また、以前にクラウド・ストレージにインポートしたダンプ・ファイル・セット内のファイルを処理するために、インポート・ユーティリティで使用するデータベース・ユーザーが所有する資格証明オブジェクトの名前も指定しています。
> impdp impdp admin/password@ADWC1_high DIRECTORY=data_pump_dir
DUMPFILE=’MY_cred_name:https://objectstorage.example.com/exp1.dmp’,
’MY_cred_name:https://objectstorage.example.com/exp201.dmp’,
’MY_cred_name:https://objectstorage.example.com/exp202.dmp’
3.4.11 ENABLE_SECURE_ROLES
Oracle Data Pumpインポートのコマンドライン・ユーティリティのENABLE_SECURE_ROLESパラメータでは、エクスポート時の保護されているロールの誤用を防止します。
デフォルト
Oracle Database 19c以降のリリースでは、デフォルト値はNOです。
用途
Oracleロールには、認証が必要なものがあります。そのようなロールをOracle Data Pumpインポートで使用する必要がある場合は、ENABLE_SECURE_ROLESパラメータをYESに設定することで明示的に使用可能にする必要があります。
構文
ENABLE_SECURE_ROLES=[NO|YES]
-
NO: 認証が必要なOracleロールを使用できないようにします。 -
YES: 認証が必要なOracleロールを使用可能にします。
例
impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=dpump_dir2:imp1.dmp,
imp2%U.dmp ENABLE_SECURE_ROLES=YES3.4.12 ENCRYPTION_PASSWORD
Oracle Data Pump Importのコマンドライン・モードのENCRYPTION_PASSWORDパラメータでは、ダンプ・ファイル・セット内の暗号化列のデータにアクセスするためのパスワードを指定します。
デフォルト
デフォルト値は設定されていません。ユーザーが値を指定します。
用途
ダンプ・ファイル・セット内の暗号化列のデータにアクセスするためのパスワードを指定します。パラメータを使用すると、暗号化されたダンプ・ファイル・セットへの不正なアクセスを防ぐことができます。
このパラメータは、暗号化された表領域に関連するキーを転送する場合、および全体トランスポータブル・エクスポートまたはインポート操作中に暗号化された列を含む表を転送する場合にも必要です。
入力したパスワードは画面に表示されます。パスワードを入力時に画面に表示しない場合、ENCRYPTION_PWD_PROMPTパラメータを使用します。
構文および説明
ENCRYPTION_PASSWORD = password
エクスポート操作で暗号化パスワードが指定されている場合、このパラメータはインポート操作に必要です。このパスワードは、エクスポート操作で指定されたものと同じものを指定する必要があります。
制限事項
-
このパラメータを使用したエクスポート操作には、Oracle Database 11g以降のEnterprise Editionリリースが必要です。Standard Editionからのエクスポートに
ENCRYPTION_PASSWORDを使用できないため、このパラメータをStandard EditionからEnterprise Editionへの移行に使用することはできません。このパラメータは、Enterprise EditionからStandard Editionへの移行に使用できます。 -
Oracle Data Pumpの暗号化機能を使用するには、Oracle Advanced Securityオプションが有効になっている必要があります。Oracle Advanced Securityオプションのライセンス要件の詳細は、Oracle Databaseライセンス情報を参照してください。
-
ダンプ・ファイル・セットが暗号化の透過モードを使用して作成されている場合、
ENCRYPTION_PASSWORDパラメータは無効です。 -
ENCRYPTION_PASSWORDパラメータは、暗号化された表領域または暗号化された列を含む表がソース・データベースに存在するネットワーク・ベースの全体トランスポータブル・インポートでは必須です。 - ソース表とターゲット表の列の暗号化属性が異なる場合、インポートによってソース表の行をターゲット表にロードできません。この問題が発生した場合は、列暗号化プロパティの違いを示すエラーが発生します。
例
次の例では、暗号化パスワード123456を指定する必要があります。これは、ダンプ・ファイルdpcd2be1.dmpの作成時に、そのパスワードが指定されたためです。
> impdp hr TABLES=employee_s_encrypt DIRECTORY=dpump_dir
DUMPFILE=dpcd2be1.dmp ENCRYPTION_PASSWORD=123456
インポート操作中、エクスポート操作時に暗号化されたemployee_s_encrypt表のすべての列は、復号化されてからインポートされます。
3.4.13 ENCRYPTION_PWD_PROMPT
Oracle Data Pumpインポートのコマンドライン・モードのENCRYPTION_PWD_PROMPTパラメータでは、データ・ポンプによって暗号化パスワードの入力を要求するかどうかを指定します。
デフォルト
NO
用途
Oracle Data Pumpによって暗号化パスワードの入力を要求するかどうかを指定します。
構文および説明
ENCRYPTION_PWD_PROMPT=[YES | NO]
コマンドラインでENCRYPTION_PWD_PROMPT=YESを指定すると、暗号化パスワードの入力を求めるプロンプトがOracle Data Pumpに表示されます。値をYESに指定しない場合は、コマンドラインでENCRYPTION_PASSWORDパラメータを使用して暗号化パスワードを入力する必要があります。パラメータをYESに設定する利点は、プロンプトが表示されたときに暗号化パスワードが画面に表示されないことです。対照的に、コマンドラインでENCRYPTION_PASSWORDパラメータを使用してパスワードを入力すると、パスワードはプレーン・テキストで表示されます。
プロンプトで入力する暗号化パスワードは、ENCRYPTION_PASSWORDパラメータで説明されているものと同じ基準に従います。
エクスポート操作で暗号化パスワードを指定した場合、インポート操作でもそれを指定する必要があります。
制限事項
ENCRYPTION_PWD_PROMPTパラメータとENCRYPTION_PASSWORDパラメータの同時使用は禁止されています。
例
次の例では、Oracle Data Pumpによって最初にユーザー・パスワードが要求され、次に暗号化パスワードが要求されます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp ENCRYPTION_PWD_PROMPT=YES
.
.
.
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Password:
Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Development
Version 18.1.0.0.0
Encryption Password:
Master table "HR"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "HR"."SYS_IMPORT_FULL_01": hr/******** directory=dpump_dir1 dumpfile=hr.dmp encryption_pwd_prompt=Y
.
.
.3.4.14 ESTIMATE
Oracle Data Pumpインポートのコマンドライン・モードのESTIMATEパラメータでは、ネットワーク・インポート操作のソース・システムに対して、インポート中に生成されるデータ量を見積もるように指定します。
デフォルト
STATISTICS
用途
ネットワーク・インポート操作のソース・システムに対して、インポート中に生成されるデータ量を見積もるように指定します。
構文および説明
ESTIMATE=[BLOCKS | STATISTICS]
ESTIMATEパラメータでは、次の値を選択できます。
-
BLOCKS: 見積りは、ソース・オブジェクトで使用されるデータベース・ブロックの数に、適切なブロック・サイズを掛けて計算されます。 -
STATISTICS: 見積りは、表別の統計を使用して計算されます。この方法による見積りをできるかぎり正確にするには、すべての表を新しく分析しておく必要があります。(表の分析は、SQLANALYZE文またはDBMS_STATSPL/SQLパッケージのいずれかで実行可能です。)
生成された見積りを使用して、インポート全体で完了したインポート・ジョブの割合を判断できます。
制限事項
-
インポートの
ESTIMATEパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。 -
インポート・ソースがダンプ・ファイル・セットの場合、ロードされるデータの量がすでにわかっているため、完了率は自動的に計算されます。
-
QUERYまたはREMAP_DATAパラメータのいずれかを使用している場合は、見積りが不正確になることがあります。
例
次の構文例では、変数source_database_linkをソース・データベースへの有効なリンク名で置き換えます。
> impdp hr TABLES=job_history NETWORK_LINK=source_database_link
DIRECTORY=dpump_dir1 ESTIMATE=STATISTICS
hrスキーマのjob_history表が、ソース・データベースからインポートされます。デフォルトでログ・ファイルが作成され、dpump_dir1ディレクトリ・オブジェクトで示されたディレクトリに書き込まれます。ジョブが開始すると、表の統計に基づいて、そのジョブの見積りが計算されます。
3.4.15 EXCLUDE
Oracle Data Pump Importのコマンドライン・モードのEXCLUDEパラメータを使用すると、インポート・ジョブから除外するオブジェクトとオブジェクト型を指定して、インポート対象のメタデータをフィルタ処理できます。
デフォルト
デフォルトはありません。
用途
インポート・ジョブから除外するオブジェクトおよびオブジェクト型を指定して、インポートの対象となるメタデータをフィルタ処理できます。
構文および説明
EXCLUDE=object_type[:name_clause] [, ...]
object_typeは除外するオブジェクトのタイプを指定します。object_typeの有効な値のリストを表示するには、DATABASE_EXPORT_OBJECTS (全体モードの場合)、SCHEMA_EXPORT_OBJECTS (スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS (表モードの場合)、TABLESPACE_EXPORT_OBJECTS (表領域モードの場合)、TRANSPORTABLE_EXPORT_OBJECTS (トランスポータブル表領域モードの場合)ビューを問い合せます。OBJECT_PATH列にリストされる値が有効なオブジェクト型です。
指定したインポート・モードでは、EXCLUDE文に指定されたオブジェクト型を除き、ソースに含まれるすべてのオブジェクト型およびその依存オブジェクトが含まれます。オブジェクトが除外されると、そのオブジェクトのすべての依存オブジェクトも除外されます。たとえば、表を除外すると、その表のすべての索引およびトリガーも除外されます。
name_clauseは、オプションです。これを使用すると、あるオブジェクト型のうち、特定のオブジェクトをファイングレイン選択できます。その型のオブジェクト名に対するフィルタとして使用されるSQL式です。SQL演算子および指定した型のオブジェクト名の比較対象となる値で構成されています。name_clauseは、名前付きのインスタンスを持つオブジェクト型にのみ適用されます(たとえば、TABLEおよびVIEWには適用されますが、GRANTには適用されません)。それは、コロンでオブジェクト型と区切り、二重引用符(一重引用符は名前文字列を区切るために必要なため)で囲む必要があります。たとえば、EXCLUDE=INDEX:"LIKE 'DEPT%'"と設定した場合、deptで始まる名前を持つすべての索引を除外できます。
name_clauseに指定する名前は、データベース内の既存のオブジェクトに、大文字と小文字も含めて完全に一致させる必要があります。たとえば、指定するname_clauseがEMPLOYEESという表に対するものだった場合は、すべてが大文字のEMPLOYEESという表が存在する必要があります。name_clauseに対してEmployees、employeesなどを指定した場合、表は検出されません。
2つ以上のEXCLUDE文を指定できます。
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。
次の項で説明するとおり、特定のオブジェクト(特にCONSTRAINT、GRANTおよびUSER)を除外対象として指定した場合の効果を認識しておく必要があります。
制約の除外
次の制約は除外できません。
-
表の作成とロードを正常に行うために必要な制約。たとえば、索引構成表の主キー制約、
REF列を持つ表のREFSCOPEおよびWITHROWID制約など。
次に、EXCLUDE文の例およびその解釈を示します。
-
EXCLUDE=CONSTRAINTでは、表の正常な作成およびロードに必要な制約を除く、すべての制約を除外します。 -
EXCLUDE=REF_CONSTRAINTは、参照整合性(外部キー)制約を除外します。
権限とユーザーの除外
EXCLUDE=GRANTを指定すると、すべてのオブジェクト型に対するオブジェクト権限およびシステム権限が除外されます。
EXCLUDE=USERを指定すると、ユーザーの定義のみが除外され、そのユーザーのスキーマ内のオブジェクトは除外されません。
特定のユーザーとそのユーザーのすべてのオブジェクトを除外するには、次のコマンドを指定します(hrは除外するユーザーのスキーマ名です)。
impdp FULL=YES DUMPFILE=expfull.dmp EXCLUDE=SCHEMA:"='HR'"この例では、FULLインポート・モードが指定されていることに注意してください。モードが指定されていない場合は、デフォルト・モードであるSCHEMASが使用されます。ただし、この例で、FULLを指定しないで、かわりにSCHEMASを使用し、続いてEXCLUDE=SCHEMA引数を指定した場合、スキーマのインポートと除外を同時に指定することになるため、エラーが発生します。
EXCLUDE=USER:"= 'HR'"などの文を使用してユーザーを除外しようとすると、CREATE USER hr DDL文のみが除外され、予期しない結果が返される可能性があります。
Oracle Database 21c以降、Oracle Data Pumpでは、同じコマンド内でINCLUDEとEXCLUDEの両方のパラメータを設定できます。コマンドに両方のパラメータを含めると、Oracle Data Pumpにより、INCLUDEパラメータが最初に処理され、そのパラメータで識別されるすべてのオブジェクトが含まれます。その後で、除外パラメータが処理されます。EXCLUDEパラメータで指定されたオブジェクトは、含めるオブジェクトのリストからコマンドの実行時に削除されます。
制限事項
- Oracle Database 23ai以降では、オブジェクト
SQL_FIREWALLによるSQLファイアウォール・メタデータ(取得内容および許可リスト)のエクスポートがサポートされています。ただし、Oracle Data Pumpでは、既存のすべてのSQLファイアウォールの全体的なエクスポートまたはインポートがサポートされています。特定の取得内容または特定の許可リストのインポートやエクスポートはできません。
例
DBAまたはDATAPUMP_IMP_FULL_DATABASEロールを持つ他のユーザーが、パラメータ・ファイルexclude.parで次のように実行するとします。(例を実行するには、まずこのファイルを作成する必要があります。)
EXCLUDE=FUNCTION
EXCLUDE=PROCEDURE
EXCLUDE=PACKAGE
EXCLUDE=INDEX:"LIKE 'EMP%' "
次に、次のコマンドを発行します。
> impdp system DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp PARFILE=exclude.par
このコマンドでは、FULLリファレンス・トピックでエクスポートのFULLパラメータについて示した例を実行し、expfull.dmpダンプ・ファイルを作成できます。expfull.dmpダンプ・ファイルから、empで始まる名前を持つファンクション、プロシージャ、パッケージおよび索引を除くすべてのデータがロードされます。
3.4.16 FLASHBACK_SCN
Oracle Data Pump Importのコマンドライン・モードのFLASHBACK_SCNでは、インポート・ユーティリティで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。
デフォルト
デフォルトはありません
用途
インポートで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。
構文および説明
FLASHBACK_SCN=scn_number
インポート操作は、指定したscn_numberまでの一貫性のあるデータを使用して実行されます。
Oracle Database 12c リリース2 (12.2)以降では、SCN値をビッグSCN (8バイト)にすることができます。ビッグSCNの使用の詳細は、次の制限事項を参照してください。
制限事項
-
FLASHBACK_SCNパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。 -
FLASHBACK_SCNパラメータは、Oracle Databaseのフラッシュバック問合せ機能にのみ関係します。フラッシュバック・データベース、フラッシュバック削除およびフラッシュバック・データ・アーカイブには適用できません。 -
FLASHBACK_SCNおよびFLASHBACK_TIMEは、相互に排他的なパラメータです。 -
ビッグSCNをサポートしていないバージョンからのネットワーク・エクスポートまたはネットワーク・インポートに対して、ビッグSCNを指定することはできません。
例
次に、FLASHBACK_SCNパラメータを使用した構文例を示します。
> impdp hr DIRECTORY=dpump_dir1 FLASHBACK_SCN=123456 NETWORK_LINK=source_database_link
このコマンドを使用する場合、変数123456およびsource_database_linkを、データのインポート元となるソース・データベースのSCNと名前に置き換えます。
ノート:
ロジカル・スタンバイ・システムでは、ロジカル・スタンバイによってSCNが選択されるため、FLASHBACK_SCNパラメータは無視されます。ロジカル・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。
3.4.17 FLASHBACK_TIME
Oracle Data Pump Importのコマンドライン・モードのFLASHBACK_TIMEパラメータでは、インポート・ユーティリティで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。
デフォルト
デフォルトはありません
用途
インポートで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。
構文および説明
FLASHBACK_TIME="TO_TIMESTAMP()"
指定された時刻に最も近いSCNを検出し、このSCNを使用してフラッシュバック・ユーティリティを使用可能にします。インポート操作は、このSCNまでの一貫性のあるデータを使用して実行されます。TO_TIMESTAMPの値は引用符で囲まれるため、パラメータ・ファイルに記述することをお薦めします。
ノート:
ロジカル・スタンバイ・システムでは、ロジカル・スタンバイによってSCNが選択されるため、FLASHBACK_TIMEパラメータは無視されます。ロジカル・スタンバイ・データベースの詳細は、 『Oracle Data Guard概要および管理』 を参照してください。
制限事項
-
このパラメータは、
NETWORK_LINKパラメータも指定されている場合にのみ有効です。 -
FLASHBACK_TIMEパラメータは、Oracle Databaseのフラッシュバック問合せ機能にのみ関係します。フラッシュバック・データベース、フラッシュバック削除およびフラッシュバック・データ・アーカイブには適用できません。 -
FLASHBACK_TIMEおよびFLASHBACK_SCNは、相互に排他的なパラメータです。
例
DBMS_FLASHBACK.ENABLE_AT_TIMEプロシージャで使用可能な形式で時刻を指定できます。たとえば、次の内容のパラメータ・ファイルflashback_imp.parを作成したとします。
FLASHBACK_TIME="TO_TIMESTAMP('27-10-2012 13:40:00', 'DD-MM-YYYY HH24:MI:SS')"
次のコマンドを発行します。
> impdp hr DIRECTORY=dpump_dir1 PARFILE=flashback_imp.par NETWORK_LINK=source_database_link
インポート操作は、指定した時間に最も近いSCNと整合性のあるデータで実行されます。
ノート:
フラッシュバックの使用方法の詳細は、Oracle Database開発ガイドを参照してください
3.4.18 FULL
Oracle Data Pump Importのコマンドライン・モードのFULLパラメータにより、全データベース・インポートを実行することを指定します。
デフォルト
YES
用途
全データベース・インポートの実行を指定します。
構文および説明
FULL=YES
FULL=YESの値は、ソースからのすべてのデータおよびメタデータがインポートされることを示します。ソースは、ダンプ・ファイル・セットにするか(ファイル・ベース・インポートの場合)、NETWORK_LINKパラメータで指定された別のデータベースにすることができます(ネットワーク・インポートの場合)。
ファイルからインポートする際に、DATAPUMP_IMP_FULL_DATABASEロールを持っていない場合、自分のスキーマにマップするスキーマのみインポートされます。
NETWORK_LINKパラメータが使用され、インポート・ジョブを実行するユーザーがターゲット・データベースのDATAPUMP_IMP_FULL_DATABASEロールを持っている場合、そのユーザーは、ソース・データベースのDATAPUMP_EXP_FULL_DATABASEロールも持っている必要があります。
このインポート・モードを使用したインポート対象を、フィルタ処理によって制限できます。
FULLはデフォルトのモードで、ファイル・ベースのインポートを実行している場合、コマンドラインで指定する必要はありませんが、ネットワーク・ベースの全体インポートを実行している場合は、コマンドラインでFULL=Yを指定する必要があります。
全体モード・インポート時にトランスポータブル・オプションを使用して、全体トランスポータブル・インポートを実行できます。
制限事項
-
自動ワークロード・リポジトリ(AWR)は、全データベースのエクスポートおよびインポート操作では移動されません。(データ・ポンプを使用してAWRスナップショットを移動する方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。)
-
XDBリポジトリは、全データベースのエクスポートおよびインポート操作では移動されません。ユーザーが作成したXMLスキーマは移動されます。
-
ターゲットがOracle Database12cリリース1 (12.1.0.1)以降で、ソースがOracle Database11gリリース2 (11.2.0.3)以降である場合、ネットワーク・リンクで実行される全体インポートでは、
VERSION=12を設定する必要があります
例
次に、FULLパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DUMPFILE=dpump_dir1:expfull.dmp FULL=YES
LOGFILE=dpump_dir2:full_imp.log
この例では、expfull.dmpダンプ・ファイルのすべての内容をインポートします。ここでは、DIRECTORYパラメータは指定されていません。そのため、DUMPFILEパラメータおよびLOGFILEパラメータの両方にディレクトリ・オブジェクトを指定する必要があります。例に示すとおり、ディレクトリ・オブジェクトは、別のものを指定することができます。
3.4.19 HELP
Oracle Data Pump Importのコマンドライン・モードのHELPパラメータにより、インポート・ユーティリティのオンライン・ヘルプを表示します。
デフォルト
NO
用途
インポート・ユーティリティのオンライン・ヘルプを表示します。
構文および説明
HELP=YES
HELP=YESが指定されている場合は、インポート・ユーティリティのすべてのコマンドライン・パラメータと対話方式コマンドの要約が表示されます。
例
この例では、すべてのインポート・パラメータおよびコマンドの簡単な説明が表示されます。
> impdp HELP = YES
3.4.20 INCLUDE
Oracle Data Pump Importのコマンドライン・モードのINCLUDEパラメータを使用すると、現行のインポート・モードにオブジェクトおよびオブジェクト型を指定して、インポート対象のメタデータをフィルタ処理できます。
デフォルト
デフォルトはありません。
用途
現行のインポート・モードにオブジェクトとオブジェクト型を指定して、インポート対象のメタデータをフィルタ処理できます。
構文および説明
INCLUDE = object_type[:name_clause] [, ...]
構文の変数object_typeでは、含めるオブジェクトの型を指定します。object_typeの有効な値のリストを表示するには、次のビューを問い合せます。
- 全体モード:
DATABASE_EXPORT_OBJECTS - スキーマ・モード:
SCHEMA_EXPORT_OBJECTS - 表モード:
TABLE_EXPORT_OBJECTS - 表領域モード:
TABLESPACE_EXPORT_OBJECTS - トランスポータブル表領域モード:
TRANSPORTABLE_EXPORT_OBJECTS
問合せ結果で、OBJECT_PATH列にリストされる値が有効なオブジェクト型です。(このような問合せの実行方法の例は、「メタデータのフィルタ」を参照してください。)
INCLUDE文に明示的に指定した、ソース内のオブジェクト型とその依存オブジェクトのみがインポートされます。
構文の変数name_clauseはオプションです。これを使用すると、あるオブジェクト型のうち、特定のオブジェクトのファイングレイン選択を実行できます。その型のオブジェクト名に対するフィルタとして使用されるSQL式です。SQL演算子および指定した型のオブジェクト名の比較対象となる値で構成されています。このname_clauseは、名前付きのインスタンスを持つオブジェクト型にのみ適用されます(たとえば、TABLEには適用されますが、GRANTには適用されません)。それは、コロンでオブジェクト型と区切り、二重引用符で囲む必要があります。一重引用符は名前文字列を区切るために必要となるため、二重引用符を使用する必要があります。
name_clauseに指定する名前文字列は、データベース内の既存のオブジェクトに、大文字と小文字も含めて完全に一致する必要があります。たとえば、指定するname_clauseがEMPLOYEESという表に対するものだった場合は、すべてが大文字のEMPLOYEESという表が存在する必要があります。name_clauseにEmployeesまたはemployeesを指定したり、既存の表の名前文字列からのその他のバリエーションを使用する場合、表は検出されません。
複数のINCLUDE文を指定できます。
オペレーティング・システムによっては、このパラメータに引用符を使用する値を指定する場合、エスケープ文字を使用することも必要になる可能性があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは使用する必要があるエスケープ文字の数を減らすことができます。
INCLUDEパラメータで使用する有効なパスのリストを表示するには、次のビューを問い合せます。
-
全体モード:
DATABASE_EXPORT_OBJECTS -
スキーマ・モード:
SCHEMA_EXPORT_OBJECTS -
表および表領域モード:
TABLE_EXPORT_OBJECTS
Oracle Database 21c以降、次の追加の拡張機能を使用できます。
-
同じコマンド内で
INCLUDEとEXCLUDEの両方のパラメータを設定できます。コマンドに両方のパラメータを含めると、Oracle Data Pumpにより、
INCLUDEパラメータが最初に処理され、そのパラメータで識別されるすべてのオブジェクトが含まれます。その後で、除外パラメータが処理されます。EXCLUDEパラメータで指定されたオブジェクトは、含めるオブジェクトのリストからコマンドの実行時に削除されます。
制限事項
SYSスキーマに所有されているオブジェクトに対する権限は、インポートされません。- Oracle Database 23ai以降では、オブジェクト
SQL_FIREWALLによるSQLファイアウォール・メタデータ(取得内容および許可リスト)のエクスポートがサポートされています。ただし、Oracle Data Pumpでは、既存のすべてのSQLファイアウォールの全体的なエクスポートまたはインポートがサポートされています。特定の取得内容または特定の許可リストのインポートやエクスポートはできません。
例
imp_include.parという名前のパラメータ・ファイルに、次が含まれているとします。このパラメータ・ファイルは、DBAまたはロールDATAPUMP_IMP_FULL_DATABASEが付与されているその他のユーザーによって使用されています。
INCLUDE=FUNCTION
INCLUDE=PROCEDURE
INCLUDE=PACKAGE
INCLUDE=INDEX:"LIKE 'EMP%' "
このパラメータ・ファイルを使用すると、次のコマンドを発行できます。
> impdp system SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
PARFILE=imp_include.par
この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
このインポートでは、hrスキーマのファンクション、プロシージャ、パッケージ、および名前がEMPで始まる索引のみロードされます。これは特権モードのインポート(ユーザーにDATAPUMP_IMP_FULL_DATABASEロールがある)ですが、USERオブジェクト型がINCLUDE文に指定されていないため、スキーマ定義はインポートされません。
3.4.21 INDEX_THRESHOLD
INDEX_THRESHOLDパラメータは、1より大きい並列度で大規模な索引を作成する際のサイズしきい値を設定します。これは、ONESTEP_INDEXパラメータとともに使用されます。
デフォルト
150M
用途
索引サイズのしきい値を設定します。パラメータONESTEP_INDEX=FALSEの場合、しきい値以上のサイズを持つ索引を1より大きい並列度(DOP)を使用して作成できます。
構文および説明
INDEX_THRESHOLD=string value
表内の索引がしきい値より小さい場合、それらの索引は並列度(DOP)1で作成されます。表内の索引がしきい値以上である場合、その索引の作成に最適なDOPを決定するための追加のオーバーヘッドが発生し、ONESTEP_INDEXパラメータで説明されているように、ジョブ自体の設定によって制限されないかぎり、その最適なDOPを使用して索引が作成されます。
表内の索引がしきい値より小さい場合、それらの索引はDOP1で作成されます。表内の索引がしきい値以上である場合、その索引の作成に最適なDOPを決定するために、追加のオーバーヘッドが発生します。索引は、ONESTEP_INDEXパラメータで説明されているように、ジョブ自体のPARALLEL設定によって制限されないかぎり、その最適なDOPを使用して作成されます。
デフォルト値はほぼすべてのケースで適切に機能します。この値は、データベース構成で保証されている値内で調整できます。
無効なしきい値はエラーになります。
ノート:
サブプログラムdbms_datapump.set_parameter(handle,parameter_name,value)を使用してパラメータをコールすることもできます。
制限事項
INDEX_THRESHOLD値は、1000B、100k、200kb、100M、200mb、100G、200gb、100t、200TBなどのテキスト文字列として指定する必要があります。
例
次に、ONESTEP_INDEXおよびINDEX_THRESHOLDパラメータをデフォルト設定で使用する例を示します。このコマンドは、150MB以上の索引を1より大きいDOPで作成することを指定します。大規模な索引作成のDOPと、ジョブ内のすべてのオブジェクトをインポートするための全体的なインポート・ジョブのDOPとのバランスを、ジョブのPARALLEL=16設定を上限に調整します。
> impdp hr DIRECTORY=dpump_dir1 LOGFILE=parallel_import.log
JOB_NAME=imp_par3 DUMPFILE=par_exp%L.dmp PARALLEL=16 ONESTEP_INDEX=FALSE INDEX_THRESHOLD=150M
関連トピック
- 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』の「SET_PARAMETERプロシージャ」
3.4.22 JOB_NAME
Oracle Data Pumpインポートのコマンドライン・モードのJOB_NAMEパラメータを使用して、後続処理でインポート・ジョブを指定します。
デフォルト
SYS_IMPORTまたはSQLFILE_mode_NNという書式のシステム生成による名前
用途
後続処理でインポート・ジョブを指定する場合は、JOB_NAMEパラメータを使用します。たとえば、ATTACHパラメータを使用してジョブに接続する場合、JOB_NAMEパラメータを使用して、接続するジョブを指定します。ビューDBA_DATAPUMP_JOBSまたはUSER_DATAPUMP_JOBSを使用することにより、JOB_NAMEを使用してジョブを指定することもできます。
構文および説明
JOB_NAME=jobname_string
変数jobname_stringでは、インポート・ジョブに128バイト以内の名前を指定します。これらのバイトは印字可能文字と空白を表します。文字列に空白が含まれる場合は、名前を一重引用符で囲む必要があります('Thursday Import'など)。ジョブ名の制限事項の追加情報は、『Oracle Database SQL言語リファレンス』でデータベース・オブジェクトの名前および修飾子の項目7を参照してください。ジョブ名は、インポート操作を実行しているユーザーのスキーマによって暗黙的に修飾されます。ジョブ名は、エクスポート・ジョブを制御するデータ・ポンプ制御インポート・ジョブ表の名前として使用されます。
デフォルトのジョブ名はSYS_IMPORT_mode_NNまたはSYS_SQLFILE_mode_NNという形式で、システムによって生成されます。NNは、01から開始して増加する2桁の整数です。たとえば、SYS_IMPORT_TABLESPACE_02'はデフォルトのジョブ名です。
例
次に、JOB_NAMEパラメータの使用例を示します。この例では、エクスポートのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp JOB_NAME=impjob013.4.23 KEEP_MASTER
Oracle Data Pumpインポートのコマンドライン・モードのKEEP_MASTERパラメータは、正常に完了したOracle Data Pumpジョブの最後に、データ・ポンプ制御ジョブ表を削除するか保持するかを指定します。
デフォルト
NO
用途
正常に完了したOracle Data Pumpジョブの最後に、データ・ポンプ制御ジョブ表を削除するか保持するかを示します。データ・ポンプ制御ジョブ表は、正常に完了しなかったジョブに対して自動的に保持されます。
構文および説明
KEEP_MASTER=[YES | NO]
制限事項
-
なし
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp KEEP_MASTER=YES3.4.24 LOGFILE
Oracle Data Pump Importのコマンドライン・モードのLOGFILEパラメータでは、インポート・ジョブのログ・ファイルの名前を指定し、オプションでディレクトリ・オブジェクトを指定します。
デフォルト
import.log
用途
インポート・ジョブのログ・ファイルの名前を指定します。オプションで、そのログ・ファイルのディレクトリ・オブジェクトを指定します。
構文および説明
LOGFILE=[directory_object:]file_name
directory_objectを指定する場合、これはDBAによって作成済で、自分にアクセス権があるものにする必要があります。このパラメータは、DIRECTORYパラメータに指定されたディレクトリ・オブジェクトよりも優先されます。デフォルトでは、DIRECTORYパラメータに指定されているディレクトリ・オブジェクトによって参照されるディレクトリ内に、import.logが作成されます。
Oracle Database 23ai以降では、このパラメータで指定された名前と一致する名前の既存のファイルは、既存のファイル拡張子がlog、LOG、lstまたはLSTのいずれかである場合のみ上書きされます。既存のファイル拡張子がこれらの拡張子のいずれとも一致しない場合は、ORA-02604: 「ファイルがすでに存在します」というメッセージが表示されます。ただし、一致する名前の既存のファイルが見つからない場合、ファイル拡張子の制限はありません。
処理中の作業、完了した作業および発生したエラーに関するすべてのメッセージがログ・ファイルに書き込まれます。(ジョブのリアルタイムの状態を把握するには、対話方式モードでSTATUSコマンドを使用します。)
NOLOGFILEパラメータを指定しないかぎり、ログ・ファイルは常に作成されます。ダンプ・ファイル・セットと同様に、ログ・ファイルの基準となるのは、クライアントではなく、サーバーです。
ノート:
Oracle Data Pump Importは、データベース文字セットを使用してログ・ファイルに書き込みます。クライアントのNLS_LANG環境にデータベースの文字セットと異なる文字セットを設定した場合は、ログ・ファイル内の表の名前が、クライアントの出力画面に表示される名前と異なる可能性があります。
制限事項
-
Oracle Automatic Storage Management (Oracle ASM)を使用してOracle Data Pump Importを実行する場合は、
LOGFILEパラメータで、Oracle ASMの+表記法を使用せずにディレクトリ・オブジェクトを指定する必要があります。つまり、ログ・ファイルはディスク・ファイルに書き込まれ、Oracle ASMの記憶域には書き込まれません。かわりに、NOLOGFILE=YESを指定することもできます。ただし、この場合はログ・ファイルの書込みは行われません。
例
次に、LOGFILEパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr SCHEMAS=HR DIRECTORY=dpump_dir2 LOGFILE=imp.log
DUMPFILE=dpump_dir1:expfull.dmp
LOGFILEパラメータにはディレクトリ・オブジェクトが指定されていないため、ログ・ファイルは、DIRECTORYパラメータに指定したディレクトリ・オブジェクトに書き込まれます。
3.4.25 LOGTIME
Oracle Data Pump Importのコマンドライン・モードのLOGTIMEパラメータにより、インポート中にメッセージをタイムスタンプとともに表示することを指定します。
デフォルト
タイムスタンプは記録されません
用途
インポート中にメッセージをタイムスタンプとともに表示することを指定します。タイムスタンプを使用して、データ・ポンプ操作の異なるフェーズ間の経過時間を計算できます。この情報は、パフォーマンス問題を診断する場合や、将来の同じような操作の時間を見積もる場合に役立ちます。
構文および説明
LOGTIME=[NONE | STATUS | LOGFILE | ALL]
使用可能なオプションの定義は次のとおりです。
NONE: ステータス・メッセージまたはログ・ファイル・メッセージにタイムスタンプを付けません(デフォルトと同じ)。STATUS: ステータス・メッセージにのみタイムスタンプを付けます。LOGFILE: ログ・ファイル・メッセージにのみタイムスタンプを付けます。ALL: ステータス・メッセージとログ・ファイル・メッセージの両方にタイムスタンプを付けます。
制限事項
LOGFILEで指定されたファイルが存在し、ファイル名で複数のドット(具体的には、複合接尾辞)を使用しているなどで、Data Pump LOGFILEとして識別されない場合は、上書きできません。別のファイル名を指定する必要があります。
例
次の例では、インポート操作中に表示されるすべてのステータス・メッセージとログ・ファイル・メッセージにタイムスタンプを記録します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expdat.dmp SCHEMAS=hr LOGTIME=ALL TABLE_EXISTS_ACTION=REPLACE
LOGTIMEの出力例は、エクスポートの「LOGTIME」パラメータを参照してください。
関連トピック
3.4.26 MASTER_ONLY
Oracle Data Pumpインポートのコマンドライン・モードのMASTER_ONLYパラメータは、データ・ポンプ制御ジョブ表の内容を確認できるように、データ・ポンプ制御ジョブ表のみをインポートしてジョブを停止するかどうかを示します。
デフォルト
NO
用途
データ・ポンプ制御ジョブ表の内容を確認できるように、データ・ポンプ制御ジョブ表のみをインポートしてジョブを停止するかどうかを示します。
構文および説明
MASTER_ONLY=[YES | NO]
制限事項
-
NETWORK_LINKパラメータも指定する場合、MASTER_ONLY=YESはサポートされません。
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp MASTER_ONLY=YES3.4.27 METRICS
Oracle Data Pump Importのコマンドライン・モードのMETRICSパラメータにより、ジョブに関する詳細情報をログ・ファイルに記録するかどうかを指定します。
デフォルト
NO
用途
ジョブに関する詳細情報をOracle Data Pumpログ・ファイルに記録するかどうかを示します。
構文および説明
METRICS=[YES | NO]
METRICS=YESを使用すると、オブジェクト数および経過時間がOracle Data Pumpログ・ファイルに記録されます。
制限事項
-
なし
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp METRICS=YES3.4.28 NETWORK_LINK
Oracle Data Pumpインポートのコマンドライン・モードでNETWORK_LINKパラメータを使用すると、有効なデータベース・リンクで識別されるソース・データベースからのインポートが可能になります。
デフォルト:
デフォルトはありません
用途
有効なデータベース・リンクによって指定されるソース・データベースからのインポートを可能にします。ソース・データベース・インスタンスのデータは、接続されたデータベース・インスタンスに直接書き込まれます。
構文および説明
NETWORK_LINK=source_database_link
NETWORK_LINKパラメータは、データベース・リンクを使用してインポートを開始します。つまり、impdpクライアントの接続先となるシステムから、source_database_linkで指定されたソース・データベースに接続し、そこからデータを取り出して、接続されたインスタンスのデータベースに直接書き込みます。ダンプ・ファイルは含まれません。
source_database_linkには、使用可能なデータベースへのデータベース・リンク名を指定する必要があります。対象インスタンスのデータベースにデータベース・リンクが指定されていない場合、ユーザーまたはDBAが、SQL CREATE DATABASE LINK文を使用してデータベース・リンクを作成する必要があります。
トランスポータブル・メソッドを使用してネットワーク・インポートを実行する場合は、インポートを開始する前に、ソース・データ・ファイルをターゲット・データベースにコピーする必要があります。
ソース・データベースが読取り専用の場合、接続されたユーザーは、デフォルト一時表領域として割り当てられたローカル管理一時表領域をソース・データベース上に持つ必要があります。それ以外の場合、ジョブは失敗します。
このパラメータは、FLASHBACK_SCN、FLASHBACK_TIME、ESTIMATE、TRANSPORT_TABLESPACESまたはTRANSPORTABLEのいずれかのパラメータを指定する場合に必要です。
Oracle Data Pumpインポートでは、次のタイプのデータベース・リンクの使用がサポートされています。
-
パブリック固定ユーザー
-
パブリック接続ユーザー
-
パブリック共有ユーザー(リンク所有者により使用される場合のみ)
-
プライベート共有ユーザー(リンク所有者により使用される場合のみ)
-
プライベート固定ユーザー(リンク所有者により使用される場合のみ)
注意:
暗号化されていないネットワーク・リンクを介してインポート操作が行われる場合、すべてのデータはクリア・テキストとしてインポートされます。これは、データがデータベースで暗号化されている場合でも同様です。ネットワーク・セキュリティの詳細は、Oracle Databaseセキュリティ・ガイドを参照してください。
制限事項
-
Oracle Data Pumpインポートでは、次のタイプのデータベース・リンクの使用はサポートされていません。
-
プライベート接続ユーザー
-
現在のユーザー
-
-
ContentTypeセットがあるSecureFiles、または現在Oracle Database File System Linksを介してSecureFilesセグメントの外に格納されているSecureFilesが表に含まれている場合、インポートの
NETWORK_LINKパラメータはサポートされません。 -
ネットワーク・インポートは進化した型の使用をサポートしません。
-
データ・ポンプ操作がネットワーク・リンクを介して行われる場合、ソース・データベースとターゲット・データベースのバージョンの差違が2バージョン以下である必要があります。たとえば、一方のデータベースがOracle Database 12cの場合、他方のデータベースは12c、11gまたは10gである必要があります。Oracle Data Pumpはメジャー・バージョン番号(10g、11g、12cなど)のみをチェックします。具体的なリリース番号(12.1、12.2、11.1、11.2、10.1、10.2など)はチェックしません。
-
インポート・ジョブを実行する
USERIDがターゲット・データベースのDATAPUMP_IMP_FULL_DATABASEロールを持っている場合、そのユーザーは、ソース・データベースのDATAPUMP_EXP_FULL_DATABASEロールも持っている必要があります。 -
ネットワーク・モードのインポートでは、パラレル問合せ(PQ)子プロセスは使用されません。
-
NETWORK_LINKパラメータも使用されていると、メタデータはパラレルでインポートできなくなります -
全体トランスポータブル・インポートを使用してネットワークを介してデータベースを転送する場合、監査証跡情報自体がユーザー定義の表領域に格納されていると、管理表領域(
SYSTEMやSYSAUXなど)に格納された表に対して監査を有効にすることはできません。
例
次の構文例では、source_database_linkを有効なデータベース・リンクの名前に置き換えます。
> impdp hr TABLES=employees DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link EXCLUDE=CONSTRAINT
この例では、ソース・データベースからemployees 表(制約を除く)がインポートされます。ログ・ファイルは、DIRECTORYパラメータに指定したdpump_dir1に書き込まれます。
関連トピック
関連項目:
-
データベース・リンクの詳細は、Oracle Database管理者ガイドを参照
-
CREATE DATABASE LINK文の詳細は、Oracle Database SQL言語リファレンスを参照してください -
ローカル管理表領域の詳細は、Oracle Database管理者ガイドを参照してください
3.4.29 NOLOGFILE
Oracle Data Pump Importのコマンドライン・モードのNOLOGFILEパラメータにより、デフォルトでログ・ファイルを作成するかどうかを指定します。
デフォルト
NO
用途
デフォルトでログ・ファイルを作成するかどうかを指定します。
構文および説明
NOLOGFILE=[YES | NO]
NOLOGFILE=YESを指定すると、ログ・ファイルは作成されません。ただし、進捗とエラーに関する情報が、接続されているいずれかのクライアント(オリジナルのエクスポート操作を開始したクライアントを含む)の標準出力デバイスに書き込まれます。実行中のジョブに接続されているクライアントが存在しないときにNOLOGFILE=YESを指定すると、重要な進捗情報およびエラー情報が失われる危険性があります。
例
次に、NOLOGFILEパラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp NOLOGFILE=YES
このコマンドを実行すると、expfull.dmpダンプ・ファイルの全体インポート・モード(ファイル・ベース・インポートのデフォルト)が実行されます。NOLOGFILEにYESが設定されているため、ログ・ファイルは書き込まれません。
3.4.30 ONESTEP_INDEX
ONESTEP_INDEXパラメータは、索引作成の同時実行性を最適化し、ジョブの並列度とのバランスをとります。これは、INDEX_THRESHOLDパラメータとともに使用されます。
デフォルト
FALSE
用途
大規模な索引(INDEX_THRESHOLDパラメータで決定)を1より大きい並列度(DOP)で作成できます。
構文および説明
ONESTEP_INDEX=[TRUE | FALSE]
ONESTEP_INDEX=FALSEをINDEX_THRESHOLDパラメータと組み合せて使用した場合、2ステップのプロセスが開始され、ジョブのPARALLEL設定を上限に、大規模な索引を作成するための並列度とインポート・ジョブ全体のすべてのオブジェクトをインポートするための並列度のバランスが調整されます。Oracle Data Pumpは、ジョブの制約を考慮して、すべての索引を最短時間で作成しようとします。最初に優先されるのは大規模な索引の作成です。大規模な索引の作成には時間がかかるためです。ほとんどの場合、FALSEはTRUEよりもパフォーマンスが向上します。
ONESTEP_INDEX=TRUEの場合、インポート中に作成される各索引に対して、DOP 1の単一ステップの索引作成が開始されます。ただし、インポート・ジョブのDOP設定を上限に、複数の索引が並列で作成されることもあります。TRUEは、すべての索引が比較的小さく、INDEX_THRESHOLDデフォルト値を下回る場合に最適です。TRUEは、PARALLEL=1を持つジョブのデフォルトでもあります。
DBMS_DATAPUMP.SET_PARAMETER()サブプログラムを使用してパラメータをコールすることもできます。DBMS_DATAPUMPサブプログラムを使用する場合は、[TRUE,FALSE]のかわりにONESTEP_INDEX = [1,0]を指定します。
制限事項
メソッドの選択後は、ジョブに対してメソッドを変更することはできません。この制限は、ジョブの再起動にも適用されます。
例
次に、ONESTEP_INDEXおよびINDEX_THRESHOLDパラメータをデフォルト設定で使用する例を示します。このコマンドは、150MB以上の索引を1より大きいDOPで作成することを指定します。大規模な索引作成のDOPと、ジョブ内のすべてのオブジェクトをインポートするための全体的なインポート・ジョブのDOPとのバランスを、ジョブのPARALLEL=16設定を上限に調整します。
> impdp hr DIRECTORY=dpump_dir1 LOGFILE=parallel_import.log
JOB_NAME=imp_par3 DUMPFILE=par_exp%L.dmp PARALLEL=16 ONESTEP_INDEX=FALSE INDEX_THRESHOLD=150M
関連トピック
- 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』の「SET_PARAMETERプロシージャ」
3.4.31 PARALLEL
Oracle Data Pumpインポートのコマンドライン・モードのPARALLELパラメータでは、パラレルにロードできるワーカー・プロセスの最大数を設定します。
デフォルト
1
用途
データ・ポンプ制御インポート・ジョブのかわりに動作するアクティブな実行のワーカー・プロセスの最大数を指定します。
構文および説明
PARALLEL=integer
integerに指定する値によって、インポート・ジョブのために動作するアクティブな実行プロセスの最大数が指定されます。この実行セットは、ワーカー・プロセスとパラレル入出力(I/O)サーバー・プロセスの組合せで構成されます。パラレルI/O操作でパラレル実行コーディネータとして機能するデータ・ポンプ制御プロセス、アイドル・ワーカー・プロセスおよびワーカー・プロセスは、この合計にカウントされません。このパラメータを使用して、リソース消費と経過時間のバランスをとることができます。
インポートのソースがファイルで構成されるダンプ・ファイル・セットの場合、同じファイルから複数のプロセスが読取り可能ですが、パフォーマンスは、I/O競合によって制限される可能性があります。
ジョブの実行中にPARALLELの値を増減するには、対話方式コマンド・モードを使用します。
ネットワーク・モード・インポートにおけるPARALLELの使用
ネットワーク・モード・インポート中、PARALLELパラメータによって、ジョブに割り当てることができるワーカー・プロセスの最大数が定義されます。ネットワーク・インポート・モード中のPARALLELパラメータの影響を理解するには、Oracle Data Pumpによって定義されるtable_dataオブジェクトの概念を理解することが重要です。Oracle Data Pumpでは、データを移動するとき、次の項目を個々のtable_dataオブジェクトとみなします。
-
完全な表(パーティションまたはサブパーティションされていないもの)
-
パーティション(表がパーティション化されているがサブパーティション化されていない場合)
-
サブパーティション(表がサブパーティション化されている場合)
たとえば:
-
非パーティション表
scott.non_part_tableには、次の1つのtable_dataオブジェクトがあります。scott.non_part_table -
パーティション表
scott.part_table(パーティションp1とパーティションp2を持つ)には、次の2つのtable_dataオブジェクトがあります。scott.part_table:p1scott.part_table:p2 -
サブパーティション表
scott.sub_part_table(パーティションp1とp2、およびサブパーティションp1s1、p1s2、p2s1およびp2s2を持つ)には、次の4つのtable_dataオブジェクトがあります。scott.sub_part_table:p1s1scott.sub_part_table:p1s2scott.sub_part_table:p2s1scott.sub_part_table:p2s2
ネットワーク・モード・インポート中、各table_dataオブジェクトには、PARALLELパラメータに指定された値までの独自のワーカー・プロセスが割り当てられます。ネットワーク・モードのインポートではパラレル問合せ(PQ)ワーカー・プロセスが使用されないため、パラレル問合せ(PQ)ワーカー・プロセスは割り当てられません。複数のtable_dataオブジェクトを同時にアンロードできます。ただし、各table_dataオブジェクトは、1つのプロセスを使用してアンロードされます。
Oracle RAC環境でのインポートにおけるPARALLELの使用
Oracle Real Application Clusters(Oracle RAC)環境でPARALLEL=1としてインポート操作を実行すると、すべてのOracle Data Pumpプロセスは、ジョブが開始されたインスタンス上に配置されます。そのため、ディレクトリ・オブジェクトは、そのインスタンスのローカル記憶域を示すことができます。
PARALLELを1より大きな値に設定してインポート操作を実行する場合は、ジョブが開始されたインスタンス以外のインスタンスにもOracle Data Pumpプロセスを置くことができます。したがって、ディレクトリ・オブジェクトは、すべてのOracle RACクラスタ・メンバー・ノードからアクセス可能な共有記憶域を指す必要があります。
制限事項
-
このパラメータは、Oracle Database 11g以上のEnterprise Editionでのみ有効です。
-
トランスポータブル表領域のメタデータは、パラレルでインポートできません。
-
パラレルで(パラレル問合せワーカー・プロセスを使用して)表または表パーティションをインポートするには、
DATAPUMP_IMP_FULL_DATABASEロールが必要です。 -
また、次のオブジェクトもパラレルでインポートできません。
TRIGGERVIEWOBJECT_GRANTSEQUENCECONSTRAINTREF_CONSTRAINT
例
次に、PARALLELパラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 LOGFILE=parallel_import.log
JOB_NAME=imp_par3 DUMPFILE=par_exp%U.dmp PARALLEL=3
このコマンドにより、エクスポートのPARALLELパラメータの例を実行した場合に作成されるダンプ・ファイル・セットがインポートされます。ダンプ・ファイルの名前は、par_exp01.dmp、par_exp02.dmpおよびpar_exp03.dmpです。
関連トピック
3.4.32 PARALLEL_THRESHOLD
Oracle Data Pump Importコマンドライン・ユーティリティのPARALLEL_THRESHOLDパラメータでは、表サイズに基づいてデータ・ポンプが潜在的なパラレルDMLを計算するために使用する除数のサイズを指定します。
デフォルト
250MB
用途
PARALLEL_THRESHOLDは、単一の非パーティション表のエクスポート・ジョブまたはインポート・ジョブ、あるいはパーティション表の1つのパーティションでのみ使用する必要があります。ジョブでPARALLELを指定する場合、PARALLEL_THRESHOLDを指定して、インポートおよびエクスポート時にパラレル・データ操作文(PDML)を使用して表をエクスポートまたはインポートする必要があるかどうかをOracle Data Pumpが判断するために使用する除数のサイズを変更できます。デフォルトより小さい値を指定すると、より小さい表サイズでOracle Data Pumpのパラレル・アルゴリズムを使用できます。たとえば、100MBの表があり、PDML 5を使用して5単位に分割する場合は、を指定します。PARALLEL_THRESHOLD=20M
構文および説明
パラメータ値は、しきい値サイズをバイト単位で指定します。
PARALLEL_THRESHOLD=size-in-bytes
単一の表のエクスポートまたはインポートで、より高い並列度が必要な場合は、小さい表または表パーティションの並列度を利用するために、PARALLEL_THRESHOLDを小さい値に設定できます。ただし、このリソース割当ての利点は、ロードまたはアンロード先となるファイル・システムのI/Oのパフォーマンスによって制限される可能性があります。また、表とメタデータ・オブジェクトの両方について、ジョブに複数のオブジェクトが含まれている場合、PARALLELおよびPARALLEL_THRESHOLDで指定されたPQ割当て要求の値は制限されます。表に割り当てられるPQプロセスの実際の量は、Oracle Data Pumpが同時に実行している操作の数の影響を受けており、並列度が共有される必要があります。オプティマイザによってSQLに対して生成されるデータベース、オプティマイザおよび実行計画は、ジョブで指定されたオブジェクトのロードまたはアンロードに使用される実際の並列度を決定します。
このパラメータのユースケースの1つ: Oracle Data Pumpを使用して、あるデータベースの大きな表を別のデータベースのより大きな表にロードします。例: OLTPデータベースからレポートまたはビジネス分析のデータ・ウェアハウス・データベースに週次売上データをアップロードします。
制限事項
PARALLEL_THRESHOLDは、PARALLELパラメータに1より大きい値が指定されている場合にのみ、組み合せて使用されます。
例
次に、PARALLEL_THRESHOLDパラメータを使用して表table_to_use_PDMLをエクスポートする例を示します。ここでは、PQプロセスの除数のサイズは1 KBに設定され、変数userおよびuser-passwordはインポートを実行しているユーザーのユーザーおよびパスワード(impdp)であり、ジョブ名はparathresh_exampleです。
impdp user/user-password \
directory=dpump_dir \
dumpfile=parathresh_example.dmp
tables=table_to_use_PDML \
parallel=8 \
parallel_threshold=1K \
job_name=parathresh_example
3.4.33 PARFILE
Oracle Data Pump Importのコマンドライン・モードのPARFILEパラメータでは、インポート・パラメータ・ファイルの名前を指定します。
デフォルト
デフォルトはありません
用途
parfileとも呼ばれるインポート・パラメータ・ファイルの名前を指定します。
構文および説明
PARFILE=[directory_path]file_name
パラメータ・ファイルを使用すると、ファイル内のOracle Data Pumpパラメータを指定できます。パラメータ・ファイルを作成する場合は、すべてのコマンドを個別に入力するかわりに、コマンドラインでそのファイルを指定できます。このオプションは、同じパラメータの組合せを複数回使用する場合に便利です。値の指定に引用符が必要なパラメータを使用する場合も、パラメータ・ファイルを使用することをお薦めします。
サーバーによって作成されて書き込まれるダンプ・ファイル、ログ・ファイルおよびSQLファイルとは異なり、パラメータ・ファイルはimpdpクライアントによって開かれて読み取られるため、パラメータ・ファイルにディレクトリ・オブジェクトは指定されません。パラメータ・ファイルのデフォルトの場所は、ユーザーのカレント・ディレクトリです。
パラメータ・ファイル内では、カンマはすべての改行文字に暗黙的に含まれるため、各行の最後にカンマを入力する必要はありません。長い表名など、折返しを含む長い行がある場合、現在の行の最後にバックスラッシュ継続文字(\)を入力して次の行に継続します。
パラメータ・ファイルの内容がOracle Data Pumpログ・ファイルに書き込まれます。
制限事項
-
PARFILEパラメータは、パラメータ・ファイル内には指定できません。
例
サンプルのパラメータ・ファイルhr_imp.parの内容が次のとおりであるとします。
TABLES= countries, locations, regions
DUMPFILE=dpump_dir2:exp1.dmp,exp2%U.dmp
DIRECTORY=dpump_dir1
PARALLEL=3
このパラメータ・ファイルを指定するには、次のコマンドを発行できます。
> impdp hr PARFILE=hr_imp.par
コマンドの結果として、表countries、locationsおよびregionsは、エクスポートのDUMPFILEパラメータの例を実行した場合に作成されるダンプ・ファイル・セットからインポートされます。(エクスポートのDUMPFILEパラメータを参照してください。)インポート・ジョブは、dpump_dir2で示される位置にあるexp1.dmpファイルを検索します。また、dpump_dir1によって示される位置にあるexp2nn.dmpの形式のすべてのダンプ・ファイルも検索します。そのジョブのログ・ファイルも、dpump_dir1に書き込まれます。
3.4.34 PARTITION_OPTIONS
Oracle Data Pump Importのコマンドライン・モードのPARTITION_OPTIONSパラメータでは、インポート操作中に表パーティションを作成する方法を指定します。
デフォルト
パーティション名がTABLESパラメータで指定され、TRANPORTABLE=ALWAYSが(インポート操作時またはエクスポート中に)設定されている場合、デフォルトはdepartitionです。それ以外の場合、デフォルトはnoneとなります。
用途
インポート操作中に表パーティションを作成する方法を指定します。
構文および説明
PARTITION_OPTIONS=[NONE | DEPARTITION | MERGE]
NONEの値を指定すると、エクスポート操作が実行されたときにシステム上に存在していたものと同じように表が作成されます。エクスポートがトランスポータブル・メソッドで実行されていて、パーティションまたはサブパーティションのフィルタが指定されていた場合は、NONEオプションやMERGEオプションは使用できません。そのような場合は、DEPARTITIONオプションを使用する必要があります。
DEPARTITIONの値を指定すると、パーティションまたはサブパーティションは、それぞれが新しい個別の表に昇格します。新規表のデフォルト名は、表とパーティションの名前、または表とサブパーティションの名前を適切に組み合せたものとなります。
MERGEの値を設定すると、すべてのパーティションとサブパーティションが1つの表に統合されます。
パーティション表のインポート中の並列処理では次のような影響があります。
-
パーティション表が既存のパーティション表にインポートされた場合、データ・ポンプは
PARALLELパラメータで指定される値にかかわらず、一度に1つのパーティションまたはサブパーティションのみを処理します。 -
インポート先の表がまだ存在しておらず、データ・ポンプでそれを作成する必要がある場合、インポートは、インポートが開始されたときに
PARALLELパラメータで指定された並列度までパラレルに実行されます。
制限事項
-
ソース表のパーティションに基づいた表を作成して移入する場合は、非パーティション化を使用します。
名前の競合を回避するために、
PARTITION_OPTIONSの値がDEPARTITIONに設定されているときには、依存オブジェクト(制約や索引など)が該当する表と同時には作成されなくなります。このエラーメッセージ「ORA-39427: パーティション表の依存オブジェクトはインポートされません。」は、この制限による影響を受ける表がある場合に、ログ・ファイルに含まれます。このメッセージを抑止する場合は、EXCLUDEパラメータを使用して、インポートから依存オブジェクトを除外してください。 -
PARTITION_OPTIONSの値をMERGEに設定していると、これらの表にドメイン索引は作成されません。このイベントが発生すると、エラー「ORA-39426: パーティション表のドメイン索引はインポートされません。」がログ・ファイルに報告されます。このメッセージを抑止する場合は、EXCLUDEパラメータを使用して索引を除外してください(EXCLUDE=DOMAIN_INDEX)。 -
ダンプ・ファイルを作成したエクスポート操作がトランスポータブル・メソッドによって実行されていたときに、パーティションまたはサブパーティションを指定していた場合は、インポート操作で
DEPARTITIONオプションを使用する必要があります。 -
ダンプ・ファイルを作成したエクスポート操作がトランスポータブル・メソッドにより実行されている場合、インポート操作で
PARTITION_OPTIONS=MERGEは使用できません。 -
非パーティション化されるオブジェクトに対する権限付与がある場合は、エラー・メッセージが生成され、オブジェクトはロードされません。
例
次の例は、sh.sales表がsales.dmpという名前のダンプ・ファイルにエクスポートされていることを前提としています。ここでは、mergeオプションを使用して、sh.sales内のすべてのパーティションをscottスキーマ内の非パーティション表にマージします。
> impdp system TABLES=sh.sales PARTITION_OPTIONS=MERGE
DIRECTORY=dpump_dir1 DUMPFILE=sales.dmp REMAP_SCHEMA=sh:scott
関連トピック
関連項目:
PARTITION_OPTIONS=DEPARTITIONを使用してインポート操作を実行する例は、エクスポートのTRANSPORTABLEパラメータを参照してください
3.4.35 QUERY
Oracle Data Pump Importコマンドライン・モードのQUERYパラメータを使用すると、インポート対象のデータをフィルタ処理する問合せ句を指定できます。
デフォルト
デフォルトはありません
用途
インポート対象のデータをフィルタ処理する問合せ句を指定できます。
構文および説明
QUERY=[[schema_name.]table_name:]query_clause
通常、query_clauseでは、ファイングレイン行選択のためのSQL WHERE句を使用します。ただし、任意のSQL句を使用できます。たとえば、ORDER BY句を使用すると、ヒープ構成表から索引構成表への移行を高速化できます。スキーマおよび表名を指定しなかった場合は、ソース・ダンプ・ファイル・セットまたはデータベース内のすべての表に問合せが適用されます(この場合、問合せは、これらのすべての表に対して有効である必要があります)。表固有の問合せは、すべての表に適用される問合せより優先されます。
特定の表に問合せを適用する場合は、表名と問合せ句をコロン(:)で区切る必要があります。表固有の問合せは複数指定できますが、1つの表に指定できるのは1つの問合せのみです。
QUERYパラメータと一緒にNETWORK_LINKパラメータを指定する場合、リモート(ソース)ノード上にあるquery_clauseで指定されるすべてのオブジェクトは、NETWORK_LINK値で明示的に修飾する必要があります。それ以外の場合、データ・ポンプではオブジェクトがローカル(ターゲット)ノード上に存在することを前提とし、存在しない場合はエラーが返され、リモート(ソース)システムからの表のインポートは失敗します。
たとえば、NETWORK_LINK=dblink1と指定した場合、QUERYパラメータのquery_clauseは、次の例に示すようにそのリンクを指定する必要があります。
QUERY=(hr.employees:"WHERE last_name IN(SELECT last_name
FROM hr.employees@dblink1)")
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。「インポート・コマンドライン・モードについて」を参照してください。
QUERYパラメータを使用すると、外部表による方法(ダイレクト・パスによる方法ではなく)でデータベース・アクセスが実行されます。
表固有の問合せで自分のスキーマ以外のスキーマを指定するには、その特定の表に対するアクセス権限が付与されている必要があります。
制限事項
-
エクスポート・ダンプ・ファイル内に格納されている行のサブセットを選択しようとするとき、インポート用の仮想列への参照を
QUERYパラメータに含めることはできませんこの制限の理由は、仮想列値がデータベースの表にのみ存在するためです。このような表にはOracle Data Pump Exportファイルの仮想列データが含まれていないため、インポートの
QUERYパラメータの仮想列への参照があると、ダンプ・ファイル内のソース表の既知の列と一致しなくなります。ただし、リモート・データベース内のソース表から直接インポートするネットワーク・インポート・リンク(NETWORK_LINK=dblink to source db)を使用する場合は、インポートのQUERYパラメータに仮想列を含めることができます。 -
QUERYパラメータを次のパラメータとともに使用することはできません。-
CONTENT=METADATA_ONLY -
SQLFILE -
TRANSPORT_DATAFILES
-
-
表に
QUERYパラメータが指定されている場合、Oracle Data Pumpは外部表を使用してターゲット表をロードします。外部表は、SQLのINSERT文をSELECT句とともに使用します。QUERYパラメータの値は、INSERT文のSELECT部分にあるWHERE句に含まれています。QUERYパラメータにロードする表と一致する名前の列がある他の表への参照が含まれていて、これらの列が問合せで使用される場合は、表別名を使用して、ロードする表内の列と、SELECT文内の同じ名前を持つ列を区別する必要があります。たとえば、
sh.customers表にある顧客のクレジットの上限に基づいてsh.sales表のサブセットをインポートするとします。次の例で、ロードされる表のデータ・ポンプで使用される表別名はKU$です。KU$を使用して、sh.salesをロードするためにQUERYパラメータ内のcust_idフィールドを修飾します。この結果、データ・ポンプによって、クレジットの上限が$10,000を超える顧客の行のみがインポートされます。QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c WHERE cust_credit_limit > 10000 AND ku$.cust_id = c.cust_id)"'表別名として
KU$を使用しないと、すべての行がロードされます。QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c WHERE cust_credit_limit > 10000 AND cust_id = c.cust_id)"' -
QUERYに使用できる文字列の最大長は、引用符を含めて4000バイトです。つまり、許容される実際の最大長は3998バイトです。
例
次に、QUERYパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、エクスポートのFULLパラメータを参照してください。QUERY値には引用符を使用するため、パラメータ・ファイルを使用することをお薦めします。
次の内容のパラメータ・ファイルquery_imp.parを作成したとします。
QUERY=departments:"WHERE department_id < 120"
次のコマンドを入力します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
PARFILE=query_imp.par NOLOGFILE=YES
expfull.dmp内のすべての表はインポートされますが、departments表については、QUERYパラメータに指定した基準を満たすデータのみがインポートされます。
3.4.36 REMAP_DATA
Oracle Data Pump Importのコマンドライン・モードのREMAP_DATAパラメータを使用すると、新規データベースへの挿入時に、データを再マップできます。
デフォルト
デフォルトはありません
用途
REMAP_DATAパラメータを使用すると、新規データベースへの挿入時に、データを再マップできます。一般的には、プライマリ・キーを再生成して、ターゲット・データベース上の既存の表に表をインポートする場合の競合を回避するために使用されます。
ダンプ・ファイルまたはリモート・データベースのいずれかから、指定した列の値をソースとして取得するには、再マップ・ファンクションを指定します。再マップ・ファンクションを指定すると、ターゲット・データベースの元の値を置き換える再マップした値が返されます。
同じファンクションを、ダンプされる複数の列に適用できます。このファンクションは、参照制約で子と親両方の列を再マップするときに整合性を保つ必要がある場合に役立ちます。
構文および説明
REMAP_DATA=[schema.]tablename.column_name:[schema.]pkg.function
次のリストは、各構文要素を構文で出現する順に示したものです。
schema: 再マップする表を含むスキーマ。デフォルトでは、このスキーマはインポートを実行するユーザーのスキーマです。
tablename: 列の再マップが行われる表。
column_name: データの再マップが行われる列。
schema: 再マップ・ファンクションを含むユーザー作成のPL/SQLパッケージを含むスキーマ。デフォルトでは、これはインポートを実行するユーザーのスキーマです。
pkg: 再マップ・ファンクションを含むユーザー作成のPL/SQLパッケージの名前。
function: 指定した表の各行で、列表を再マップする場合にコールされるPL/SQL内のファンクションの名前。
制限事項
-
ソース引数および戻り値のデータ型とサイズはともに、表内の指定した列のデータ型とサイズ一致している必要があります。
-
再マップ・ファンクションでは、自律型トランザクション以外のコミットまたはロール・バックを実行できません。
-
REMAP_DATAパラメータの値としてのシノニムの使用はサポートされていません。たとえば、hrスキーマ内のregions表にregnのシノニムがある場合は、regnをREMPA_DATA仕様の一部として指定した場合にエラーが返されます。 -
リモート表のLOB列データの再マップはサポートされていません。
-
REMAP_DATAでは、ユーザー定義の型、ユーザー定義の型の属性、LONG、REF、VARRAY、ネストされた表、BFILEおよびXMLtypeの型の列はサポートされません。
例
次の例では、plusxという名前のファンクションを格納するremapという名前のパッケージが作成されており、このファンクションはemployees表内のfirst_nameの値を変更すると想定しています。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp
TABLES=hr.employees REMAP_DATA=hr.employees.first_name:hr.remap.plusx3.4.37 REMAP_DATAFILE
Oracle Data Pump Importのコマンドライン・モードのREMAP_DATAFILEパラメータにより、ソース・データ・ファイルを参照するすべてのSQL文において、ソース・データファイル名がターゲット・データファイル名に変更されます。
デフォルト
デフォルトはありません
用途
ソース・データ・ファイルが参照されるすべてのSQL文(CREATE TABLESPACE、CREATE LIBRARYおよびCREATE DIRECTORY)で、ソース・データ・ファイルの名前をターゲット・データ・ファイル名に変更します。
構文および説明
REMAP_DATAFILE=source_datafile:target_datafile
データ・ファイルの再マップは、ファイル名のネーミング規則が異なるプラットフォーム間でデータベースを移動する場合に有効です。source_datafileとtarget_datafileの名前は、SQL文で指定するとおりのものである必要があります。コロンが有効なファイル指定文字として使用されるプラットフォームでの曖昧さを排除するために、データ・ファイル名は引用符で囲むことをお薦めします。
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符を使用する場合、エスケープ文字も必要になる可能性があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。
このパラメータを指定するには、DATAPUMP_IMP_FULL_DATABASEロールが必要です。
例
次の内容のパラメータ・ファイルpayroll.parを作成したとします。
DIRECTORY=dpump_dir1
FULL=YES
DUMPFILE=db_full.dmp
REMAP_DATAFILE="'DB1$:[HRDATA.PAYROLL]tbs6.dbf':'/db1/hrdata/payroll/tbs6.dbf'"
次のコマンドを発行します。
> impdp hr PARFILE=payroll.par
この例では、インポート中に、すべてのSQL DDL文に対するVMSファイル指定(DR1$:[HRDATA.PAYROLL]tbs6.dbf)をUnixファイル指定(/db1/hrdata/payroll/tbs6.dbf)に再マップします。ダンプ・ファイルdb_full.dmpは、ディレクトリ・オブジェクトdpump_dir1によって位置が示されます。
3.4.38 REMAP_DIRECTORY
Oracle Data Pump Importのコマンドライン・モードのREMAP_DIRECTORYパラメータを使用すると、プラットフォーム間でデータベースを移動するときにディレクトリを再マップできます。
デフォルト
デフォルトはありません。
用途
REMAP_DIRECTORYパラメータは、ソース・ディレクトリがファイルまたはディレクトリ指定全体の左端部分にあるすべてのSQL文(CREATE TABLESPACE、CREATE LIBRARYおよびCREATE DIRECTORY)において、ソース・ディレクトリ文字列をターゲット・ディレクトリ文字列に変更します。
構文および説明
REMAP_DIRECTORY=source_directory_string:target_directory_stringディレクトリの再マップは、ファイルのネーミング規則が異なるプラットフォーム間でデータベースを移動する場合に便利です。元のデータ・ファイル名を維持してディレクトリ・ファイル指定のみを変更する必要がある場合は、これにより、ディレクトリ内の複数のデータ・ファイルを簡単に再マップできます。
source_directory_stringおよびtarget_directory_stringは、SQL文に出現する内容に正確に一致する必要があります。また、個々のソースおよびターゲット・プラットフォームごとに、ディレクトリ・ファイル終了記号でディレクトリを適切に終了することをお薦めします。コロンが有効なディレクトリ・ファイル指定文字として使用されるプラットフォームでの曖昧さを排除するために、ディレクトリ名は引用符で囲むことをお薦めします。
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符を使用する場合、エスケープ文字も必要になる可能性があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。
このパラメータを指定するには、DATAPUMP_IMP_FULL_DATABASEロールが必要です。
制限事項
-
REMAP_DIRECTORYおよびREMAP_DATAFILEは、相互に排他的なパラメータです。
例
たとえば、次のデータ・ファイルを再マップするとします。
DB1$:[HRDATA.PAYROLL]tbs5.dbf
DB1$:[HRDATA.PAYROLL]tbs6.dbfまた、次の内容のパラメータ・ファイルpayroll.parがあるとします。
DIRECTORY=dpump_dir1
FULL=YES
DUMPFILE=db_full.dmp
REMAP_DIRECTORY="'DB1$:[HRDATA.PAYROLL]':'/db1/hrdata/payroll/'"
この場合、次のコマンドを発行できます。
> impdp hr PARFILE=payroll.par
この例では、インポート中に、すべてのSQL DDL文について、VMSファイル指定(DB1$:[HRDATA.PAYROLL]tbs5.dbfおよびDB1$:[HRDATA.PAYROLL]tbs6.dbf)がUNIXファイル指定(/db1/hrdata/payroll/tbs5.dbfおよび/db1/hrdata/payroll/tbs6.dbf)に再マップされます。ダンプ・ファイルdb_full.dmpは、ディレクトリ・オブジェクトdpump_dir1によって位置が示されます。
3.4.39 REMAP_SCHEMA
Oracle Data Pump Importのコマンドライン・モードのREMAP_SCHEMAパラメータにより、すべてのオブジェクトをソース・スキーマからターゲット・スキーマにロードします。
デフォルト
デフォルトはありません
用途
ソース・スキーマにあるすべてのオブジェクトをターゲット・スキーマにロードします。
構文および説明
REMAP_SCHEMA=source_schema:target_schema
複数のREMAP_SCHEMA行を指定できますが、ソース・スキーマは行ごとに異なっている必要があります。ただし、異なるソース・スキーマを同じターゲット・スキーマにマップすることはできます。マッピングが不完全である可能性があります。このトピックの「制限事項」の項を参照してください。
再マッピングするスキーマがインポート前に存在しない場合、インポート操作によってそのスキーマを作成できます。ただし、SYSTEMユーザーにREMAP_SCHEMAがある場合を除きます。REMAP_SCHEMAのターゲット・スキーマは、インポート前に存在している必要があります。スキーマを作成するには、ダンプ・ファイル・セットにソース・スキーマに必要なCREATE USERメタデータが含まれている必要があり、十分な権限でインポートを実行する必要があります。たとえば、次のExportコマンドの場合、ユーザーSYSTEMには必要な権限があるため、スキーマの作成に必要なメタデータを含むダンプ・ファイル・セットが作成されます。
> expdp system SCHEMAS=hr
Password: password
> expdp system FULL=YES
Password: password
スキーマの作成に必要なメタデータがダンプ・ファイル・セットに含まれていない場合や、ユーザーに必要な権限がない場合は、インポート操作を実行する前にターゲット・スキーマを作成しておく必要があります。権限が付与されていないダンプ・ファイルには、インポートでスキーマを自動作成するために必要な情報が含まれていないため、インポート前にターゲット・スキーマ作成しておく必要があります。
Oracle Database 11gより前のOracle Databaseリリースでは、インポート操作でスキーマが作成された場合、インポートの完了後に、有効なパスワードをそのスキーマに割り当てて接続する必要があります。この場合、次のSQL文を使用してパスワードを割り当てることができます。権限が必要であることに注意してください。
SQL> ALTER USER schema_name IDENTIFIED BY new_password
Oracle Database 11gリリース1 (11.1.0.1)より後のOracle Databaseリリースでは、スキーマ・パスワードをリセットする必要がなくなりました。元のパスワードは引き続き有効です。
制限事項
-
権限のないユーザーは、自分のスキーマが再マップのターゲット・スキーマの場合にのみ、スキーマの再マップを実行できます。(特権ユーザーがスキーマの再マップを実行する場合は、制限がありません。)たとえば、
SCOTTは、自分のBLAKEのオブジェクトをSCOTTに再マップできますが、SCOTTは、SCOTTのオブジェクトをBLAKEに再マップすることはできません。 -
インポートで検出できない一部のスキーマ参照があるため、マッピングは不完全となる可能性があります。たとえば、インポートでは、型定義、ビュー、プロシージャおよびパッケージの本体に埋め込まれたスキーマ参照は検出されません。
-
トリガーの場合、
REMAP_SCHEMAはトリガー所有者にのみ影響を及ぼします。 -
再マップするスキーマ内の表にユーザー定義のオブジェクト型が含まれており、その表が、エクスポートされる時刻とインポートしようとする時刻の間に変更される場合、その表のインポートは失敗します。ただし、インポート操作自体は続行されます。
-
デフォルトでは、ソース・データベースのスキーマ・オブジェクトにオブジェクト識別子(OID)がある場合、それらと同じOIDを持つターゲット・データベースにインポートされます。オブジェクトがエクスポート元と同じデータベースであって異なるスキーマにインポートされた場合、新しい(インポートされた)オブジェクトのOIDは、既存のオブジェクトと同じものになり、インポートは失敗します。インポートを成功させるには、インポート時に
TRANSFORM=OID:Nパラメータも指定する必要があります。変換OID:Nにより新しいオブジェクトに対して新しいOIDが作成され、インポートが成功します。
例
ユーザーSYSTEMとして、次のエクスポートおよびインポート・コマンドを実行して、hrスキーマをscottスキーマに再マップするとします。
> expdp system SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp
> impdp system DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp REMAP_SCHEMA=hr:scott
この例では、インポート前にユーザーscottが存在する場合、インポートのREMAP_SCHEMAコマンドによって、hrスキーマにあるオブジェクトが既存のscottスキーマに追加されます。インポート後、scottスキーマに既存のパスワードで(パスワードの再設定なしで)接続できます。
インポート操作の実行前にユーザーscottが存在しない場合は、インポートによって、このユーザーがパスワードなしで自動作成されます。この処理が可能なのは、ダンプ・ファイルhr.dmpが、スキーマの作成に必要なメタデータを含むダンプ・ファイルを作成する権限を所有するSYSTEMによって作成されたためです。ただし、インポート完了後に、ターゲット・データベース上のscottのパスワードを再設定しないかぎり、インポートの完了時にscottには接続できません。
3.4.40 REMAP_TABLE
Oracle Data Pump Importのコマンドライン・モードのREMAP_TABLEパラメータを使用すると、インポート操作中に表の名前を変更できます。
デフォルト
デフォルトはありません
用途
インポート操作中に、表の名前を変更できます。
構文および説明
次のいずれかの構文を使用できます(「使用上のノート」を参照)。
REMAP_TABLE=[schema.]old_tablename[.partition]:new_tablename
または
REMAP_TABLE=[schema.]old_tablename[:partition]:new_tablename
表が非パーティション化されている場合は、REMAP_TABLEパラメータを使用して表全体の名前を変更することや、表パーティションの名前を変更することができます(「PARTITION_OPTIONS」を参照)。
REMAP_TABLEを使用して、エクスポートされた表パーティションの自動ネーミングを上書きすることもできます。
使用上のノート
最初の構文では、REMAP_TABLE=A.B:Cを指定すると、インポートによってAはスキーマ名、Bは古い表名、Cは新しい表名とみなされます。最初の構文を使用して、非パーティション表にするパーティションの名前を変更するには、スキーマ名を指定する必要があります。
2番目の構文を使用して、非パーティション表にするパーティションの名前を変更するには、その表を古い表名で修飾します。スキーマ名は必要ありません。
制限事項
-
REMAP_TABLEパラメータでは、ユーザーが作成した表のみが処理されます。データ・ポンプには、内部的に作成された依存表に関する十分な情報がありません。そのため、内部的に作成された表をREMAP_TABLEパラメータで再マップできません。 -
インポートによって作成されたオブジェクトのみ、再マップされます。既存の表は再マップされないことに注意してください。
-
再マッピングする表に、同じスキーマ内の名前付きの制約が含まれ、表の作成時に制約を作成する必要がある場合、
REMAP_TABLEパラメータは機能しません
例
次の例では、REMAP_TABLEパラメータを使用して、employees表をempsという新しい名前に変更します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp
TABLES=hr.employees REMAP_TABLE=hr.employees:emps 3.4.41 REMAP_TABLESPACE
Oracle Data Pump Importのコマンドライン・モードのREMAP_TABLESPACEパラメータにより、インポート用に選択されたすべてのオブジェクトを再マップし、ソース表領域内の永続データがターゲット表領域内に作成されるようにします。
デフォルト
デフォルトはありません
用途
ターゲット表領域に作成するソース表領域内の永続データを使用して、インポート用に選択されたすべてのオブジェクトを再マップします。
構文および説明
REMAP_TABLESPACE=source_tablespace:target_tablespace
複数のREMAP_TABLESPACEパラメータを指定できますが、ソース表領域はパラメータごとに1つのみです。ターゲット・スキーマのターゲット表領域には、十分な割当て制限が必要です。
REMAP_TABLESPACEパラメータを使用するData Pump Importメソッドは、CREATE USER文を含むすべてのオブジェクトに対して機能します。
Oracle Database 19c以降のリリースでは、REMAP_TABLESPACEパラメータに対してソース表領域のかわりに%ワイルドカードを使用できます。%ワイルドカードを使用してソース・データベースを指定すると、Oracle Data Pumpにより、ソース・データベースのエクスポート・ダンプファイルからの表領域が、ターゲットの永続表領域に結合されます。これは、オブジェクト型USER、TABLE、INDEX、MVIEW、MVIEW_LOG、MVIEW_ZONEMAPおよびCLUSTERSに適用されます。
本番データベースには、複数の表領域を含めることができます。特定のターゲット表領域への移行中に、これらの表領域を統合できます。たとえば、USER表領域のみがアプリケーション用に使用可能になっているOracle Autonomous Databaseへの移行時に、表領域を統合できます。%ワイルドカードを指定してこのパラメータを使用すると、ソース表領域すべてを指定することなく簡単にそれを実行できます。
%ワイルドカードにより、次のAPI例で、'TBS_OLD'のかわりに、指定されているソース表領域を置き換えることもできます: DBMS_METADATA.SET_REMAP_PARAM(handle, 'REMAP_TABLESPACE','TBS_OLD','TBS_NEW','object-type');
制限事項
- Oracle Data Pump Importで再マップできるのは、互換性レベルが10.1以降に設定されているデータベース内のトランスポータブル・インポートの表領域のみです。
- インポートによって作成されたオブジェクトのみ、再マップされます。特に、
TABLE_EXISTS_ACTIONがSKIP、TRUNCATEまたはAPPENDに設定されている場合、既存の表の表領域は再マップされません。 REMAP_TABLESPACEをドメイン索引とともに使用して、ソース・メタデータのSTORAGE句を除外することはできません。STORAGE句を使用して表領域をカスタマイズした場合、REMAP_TABLESPACEはこれらのSTORAGE句には適用されません。STORAGE句のないデフォルトの表領域を使用した場合、その表領域に対してREMAP_TABLESPACEが機能する必要があります。- 索引プリファレンスでソース表のSTORAGE句にカスタマイズされた表領域がある場合、それらの表領域をインポートする前に、ターゲットでそれらのカスタマイズされた表領域を再作成する必要があります。カスタマイズされた表領域をターゲット・データベースで再作成しない場合、テキスト索引の再構築は失敗します。
- ターゲット表領域は永続表領域である必要があり、インポート前に存在している必要があります。
- ターゲット表領域を一時表領域にはできません。
%ワイルドカードは、複数のREMAP_TABLESPACEパラメータと併用できません。REMAP_TABLESPACEパラメータとTRANSFORM=TABLESPACE:N変換パラメータは相互に排他的です。
例
次に、REMAP_TABLESPACEパラメータの使用例を示します。
> impdp hr REMAP_TABLESPACE=tbs_1:tbs_6 DIRECTORY=dpump_dir1
DUMPFILE=employees.dmp 3.4.42 SCHEMAS
Oracle Data Pump Importのコマンドライン・モードのSCHEMASパラメータにより、スキーマ・モード・インポートを実行することを指定します。
デフォルト
デフォルトはありません
用途
スキーマ・モード・インポートの実行を指定します。
構文および説明
SCHEMAS=schema_name [,...]
DATAPUMP_IMP_FULL_DATABASEロールがある場合は、インポートするスキーマのリストをこのパラメータで指定して、スキーマ・モードのインポートを実行できます。まず、システムおよびロールの権限、パスワード履歴などを含むユーザー定義がインポートされます(存在しない場合)。次に、スキーマ内のすべてのオブジェクトがインポートされます。権限のないユーザーは、自分のスキーマか、自分のスキーマに再マップされるスキーマのみを指定できます。この場合、スキーマ定義についての情報はインポートされず、その定義内に含まれているオブジェクトのみがインポートされます。
このインポート・モードを使用してインポートされる内容を制限するには、フィルタ処理を使用します。
スキーマ・モードは、ネットワーク・ベース・インポートを実行する際のデフォルト・モードです。
例
次に、SCHEMASパラメータの使用例を示します。この例では、ExportのSCHEMASパラメータで示した例を実行して、expdat.dmpファイルを作成できます。
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp
hrスキーマは、expdat.dmpファイルからインポートされます。ログ・ファイルschemas.logは、dpump_dir1に書き込まれます。
3.4.43 SERVICE_NAME
Oracle Data Pump Importのコマンドライン・モードのSERVICE_NAMEパラメータでは、CLUSTERパラメータとともに使用するサービス名を指定します。
デフォルト
デフォルトはありません
用途
CLUSTERパラメータとともに使用するサービス名を指定するために使用します。
構文および説明
SERVICE_NAME=name
SERVICE_NAMEパラメータをCLUSTER=YESパラメータとともに使用して、リソース・グループに属しているOracle Real Application Clusters(Oracle RAC)インスタンス群(通常は全Oracle RACインスタンスのサブセット)を定義するリソース・グループに関連付けられている、既存のサービスを指定できます。
サービス名は、リソース・グループおよびそのリソース・グループに対して定義されたインスタンスを決定する目的でのみ使用されます。ジョブが開始されたインスタンスは、そのインスタンスがリソース・グループに含まれているかどうかとは関係なく、常に使用されます。
SERVICE_NAMEパラメータは、CLUSTER=NOと同時に指定されると、無視されます。
インスタンスA、B、CおよびDを含むOracle RAC構成があります。インスタンスA、BおよびCのみで構成されるリソース・グループを持つmy_serviceというサービスが存在するとします。そのような場合は、次の内容が成立します。
-
Oracle Data PumpジョブをインスタンスAで開始したときに、
CLUSTER=YESを指定し(またはデフォルトのYESをそのまま使用し)、SERVICE_NAMEパラメータを指定しなかった場合、Oracle Data Pumpは、指定されている並列度に応じて、すべてのインスタンス(A、B、CおよびD)にワーカーを作成します。 -
Oracle Data PumpジョブをインスタンスAで開始し、
CLUSTER=YESおよびSERVICE_NAME=my_serviceを指定した場合、ワーカーは、インスタンスA、BおよびCのみで開始可能です。 -
Oracle Data PumpジョブをインスタンスDで開始し、
CLUSTER=YESおよびSERVICE_NAME=my_serviceを指定した場合、ワーカーは、インスタンスA、B、CおよびDのみで開始可能です。インスタンスDはmy_serviceに存在しませんが、インスタンスDはジョブが開始されたインスタンスであるため含まれています。 -
Oracle Data PumpジョブをインスタンスAで開始し、
CLUSTER=NOを指定した場合、SERVICE_NAMEパラメータを指定しても無視され、すべてのプロセスがインスタンスAで開始されます。
例
> impdp system DIRECTORY=dpump_dir1 SCHEMAS=hr
SERVICE_NAME=sales NETWORK_LINK=dbs1
この例では、hrスキーマのスキーマ・モード・ネットワーク・インポートを開始します。コマンドラインではCLUSTER=YESは指定されていませんが、それはデフォルトの動作なので、ジョブではサービス名salesに関連付けられたリソース・グループのすべてのインスタンスが使用されます。dbs1のNETWORK_LINK値は、データのインポート元であるソース・データベースの名前に置き換えます。(ネットワーク・インポートではダンプ・ファイルは生成されないことに注意してください。)
NETWORK_LINKパラメータは、単にこの例の一部として使用されています。SERVICE_NAMEパラメータの使用時は必須ではありません。
関連トピック
3.4.44 SKIP_UNUSABLE_INDEXES
Oracle Data Pump Importのコマンドライン・モードのSKIP_UNUSABLE_INDEXESパラメータにより、(システムまたはユーザーのどちらかによって)索引使用禁止状態に設定されている索引を持つ表のロードをインポート・ユーティリティでスキップするかどうかを指定します。
デフォルト
Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXESの値。
用途
インポートで、(システムまたはユーザーのいずれかによって)索引使用禁止に設定されている索引を持つ表をロードするかどうかを指定します。
構文および説明
SKIP_UNUSABLE_INDEXES=[YES | NO]
SKIP_UNUSABLE_INDEXESがYESに設定されているときに、索引が使用禁止の状態になっている表またはパーティションが検出された場合、その表やパーティションは、使用禁止の索引が存在しない場合と同様にロードされます。
SKIP_UNUSABLE_INDEXESがNOに設定されているときに、索引が使用禁止の表またはパーティションが検出された場合、その表やパーティションはロードされません。索引が使用禁止に設定されていない他の表に対しては、行の挿入時に更新が行われます。
SKIP_UNUSABLE_INDEXESパラメータが指定されていない場合は、Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXESの設定値が参照され、使用禁止の索引の処理が決定されます。このパラメータのデフォルト値はyです。
制約の施行に使用される索引に使用禁止のマークが付けられている場合、その表にデータはインポートされません。
ノート:
SKIP_UNUSABLE_INDEXESは、既存の表にデータをインポートする場合にのみ有効です。インポートの一部として表が作成される場合、実質的な効果はありません。この場合、表および索引は新規に作成され、使用禁止のマークは付けられません。
例
次に、SKIP_UNUSABLE_INDEXESパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp LOGFILE=skip.log
SKIP_UNUSABLE_INDEXES=YES関連トピック
3.4.45 SOURCE_EDITION
Oracle Data Pump Importのコマンドライン・モードのSOURCE_EDITIONパラメータでは、オブジェクトのフェッチ元となるリモート・ノード上のデータベース・エディションを指定します。
デフォルト
オブジェクトのフェッチ元となるリモート・ノード上のデフォルトのデータベース・エディション。
用途
オブジェクトのフェッチ元となるリモート・ノード上のデータベース・エディションを指定します。
構文および説明
SOURCE_EDITION=edition_name
SOURCE_EDITION=edition_nameを指定すると、そのエディションのオブジェクトがインポートされます。Oracle Data Pumpは、変更されずに継承されているすべてのオブジェクトと、変更されているすべての実際のオブジェクトを選択します。
このパラメータが指定されていない場合は、デフォルトのエディションが使用されます。指定されたエディションが存在しない場合や使用できない場合は、エラー・メッセージが返されます。
制限事項
-
SOURCE_EDITIONパラメータがインポート操作で有効なのは、NETWORK_LINKパラメータも指定されている場合のみです。 - このパラメータは、バージョニング可能な同じオブジェクトのバージョンがデータベース内に2つ以上ある場合にのみ有効です。
- ジョブ・バージョンは、11.2以上に設定する必要があります。
例
次に、インポートのSOURCE_EDITIONパラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 SOURCE_EDITION=exp_edition
NETWORK_LINK=source_database_link EXCLUDE=USER
この例では、オブジェクトのインポート元となるexp_editionというエディションがシステム上に存在することを前提としています。インポート・モードは指定されていないため、デフォルト(スキーマ・モード)が使用されます。source_database_linkは、データのインポート元であるソース・データベースの名前に置き換えます。EXCLUDE=USERパラメータは、ユーザーの定義のみを除外し、ユーザーのスキーマに含まれるオブジェクトは除外しません。これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。
関連トピック
関連項目:
-
エディションの作成方法の詳細は、『Oracle Database SQL言語リファレンス』の「CREATE EDITION」を参照してください
-
エディション機能(継承されたオブジェクトと実際のオブジェクトなど)の詳細は、『Oracle Database開発ガイド』の「エディション」を参照してください
3.4.46 SQLFILE
Oracle Data Pump Importのコマンドライン・モードのSQLFILEパラメータでは、選択した他のインポート・パラメータに基づいて、インポート・ユーティリティによって実行準備が整えられたすべてのSQL DDLの書込み先となるファイルを指定します。
デフォルト
デフォルトはありません
用途
選択した他のインポート・パラメータに基づいて、インポートによって実行準備が整えられたすべてのSQL DDLが書き込まれるファイルを指定します。
構文および説明
SQLFILE=[directory_object:]file_name
file_nameには、ジョブで実行する準備が整ったDDLをインポート・ジョブが書き込む場所を指定します。そのSQLは、実際には実行されず、ターゲット・システムも変更されません。ファイルは、別のディレクトリ・オブジェクトを明示的に指定しないかぎり、DIRECTORYパラメータに指定されたディレクトリ・オブジェクトに書き込まれます。
ノート:
このパラメータで指定された名前と一致する名前の既存のファイルは、既存のファイル拡張子がsql、SQL、log、LOG、lstまたはLSTのいずれかである場合にのみ上書きされます。既存のファイル拡張子がこれらの拡張子のいずれとも一致しない場合は、ORA-02604: 「ファイルがすでに存在します」というメッセージが表示されます。ただし、一致する名前の既存のファイルが見つからない場合、ファイル拡張子の制限はありません。
パスワードは、SQLファイルに含まれないことに注意してください。たとえば、実行したDDLにCONNECT文が含まれている場合、この文はコメントで置き換えられ、スキーマ名のみが示されます。次の例で、ダッシュ(--)はコメントが後に続くことを示しています。hrスキーマ名が表示されますが、パスワードは表示されません。
-- CONNECT hr
したがって、SQLファイルは、実行する前に、コメントを示すダッシュを削除しhrスキーマのパスワードを追加することで編集する必要があります。
Oracle Data Pumpは、ALTER SESSION文を、Oracle Data Pumpインポートにより作成されたSQLファイルの上に配置します。インポート操作に異なる接続文がある場合は、各ALTER SESSION文を手動でコピーして、適切なCONNECT文の後に貼り付ける必要があります。
一部のOracle Databaseオプションでは、無名PL/SQLブロックがSQLFILE出力に含まれていることがあります。これらのPL/SQLブロックは直接実行しないでください。
制限事項
SQLFILEが指定されている場合、CONTENTパラメータは、ALLまたはDATA_ONLYのいずれかに設定されていると無視されます。- Oracle Automatic Storage Management (Oracle ASM)を使用してSQLファイルへのOracle Data Pump Importを実行する場合、
SQLFILEパラメータでは、OracleASM +表記法を使用せずにディレクトリ・オブジェクトを指定する必要があります。つまり、SQLファイルはディスク・ファイルに書き込まれ、Oracle ASMの記憶域には書き込まれません。 SQLFILEパラメータをQUERYパラメータと組み合せて使用することはできません。- 同じファイル名を指定するときは、指定する
SQLFILEファイル名に、ファイル拡張子(SQL、sql、LOG、log、LST、lst)が必要です。指定するファイル名に複数のドット(具体的には、複合接尾辞)を含めることはできません。複合接尾辞はサポートされていません。
例
次に、SQLFILEパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
SQLFILE=dpump_dir2:expfull.sql
SQLファイルexpfull.sqlは、dpump_dir2に書き込まれます。
関連トピック
3.4.47 STATUS
Oracle Data Pump Importのコマンドライン・モードのSTATUSパラメータでは、ジョブの状態を表示する頻度を指定します。
デフォルト
0
用途
ジョブの状態を表示する頻度を指定します。
構文および説明
STATUS[=integer]
integerに値を入力すると、ロギング・モードでジョブの状態を表示する頻度を秒単位で指定できます。値を入力しなかった場合またはデフォルト値の0を使用した場合、各オブジェクト型、表またはパーティションの完了に関する情報のみ表示されます。
この状態情報は、標準出力デバイスのみに書き込まれ、ログ・ファイルには(使用可能な場合でも)書き込まれません。
例
次に、STATUSパラメータの使用例を示します。この例では、エクスポートのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr NOLOGFILE=YES STATUS=120 DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
この例では、状態が2分(120秒)ごとに表示されます。
関連トピック
3.4.48 STREAMS_CONFIGURATION
Oracle Data Pump Importのコマンドライン・モードのSTREAMS_CONFIGURATIONパラメータでは、エクスポート・ダンプ・ファイル内に存在する可能性のあるすべてのGoldenGateレプリケーション・メタデータをインポートするかどうかを指定します。
デフォルト
YES
用途
エクスポート・ダンプ・ファイル内に存在する可能性のあるすべてのGoldenGateレプリケーション・メタデータをインポートするかどうかを指定します。
構文および説明
STREAMS_CONFIGURATION=[YES | NO]
例
次に、STREAMS_CONFIGURATIONパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp STREAMS_CONFIGURATION=NO3.4.49 TABLE_EXISTS_ACTION
Oracle Data Pump Importのコマンドライン・モードのTABLE_EXISTS_ACTIONパラメータでは、インポート・ユーティリティで作成しようとしている表がすでに存在する場合の動作を指定します。
デフォルト
SKIP
ノート:
CONTENT=DATA_ONLYが指定されている場合、デフォルトはSKIPではなくAPPENDです。
用途
インポートで作成しようとしている表がすでに存在する場合の動作を指定します。
構文および説明
TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
次の値を指定できます。
-
SKIP: 表はそのままにして、次のオブジェクトに移動します。CONTENTパラメータがDATA_ONLYに設定されている場合、このオプションは無効です。 -
APPEND: ソースから行をロードし、既存の行は変更しません。 -
TRUNCATE: 既存の行を削除した後、ソースから行をロードします。 -
REPLACE: 既存の表を削除した後、ソースから表を作成およびロードします。CONTENTパラメータがDATA_ONLYに設定されている場合、このオプションは無効です。
これらのオプションを使用する場合は、次の点に注意してください。
TRUNCATEまたはREPLACEを使用する場合は、影響を受ける表の行が参照制約のターゲットではないことを確認してください。SKIP、APPENDまたはTRUNCATEを使用する場合、索引、権限、トリガー、制約など、ソースの既存の表依存オブジェクトは変更されません。REPLACEを使用すると、依存オブジェクトが明示的または暗黙的に(EXCLUDEを使用して)除外され、それらがソースのダンプ・ファイルまたはシステムに存在する場合、依存オブジェクトは削除され、ソースから再作成されます。-
APPENDまたはTRUNCATEを使用する場合は、操作を実行する前に、ソースの行が既存の表と互換性があるかどうかがインポートによりチェックされます。既存の表にアクティブな制約およびトリガーがある場合は、外部表によるアクセス方法を使用してロードされます。アクティブな制約に違反する行がある場合、ロードは失敗し、データはロードされません。この動作を変更するには、インポート・ユーティリティのコマンドラインで
DATA_OPTIONS=SKIP_CONSTRAINT_ERRORSを指定します。制約違反の可能性があるデータをロードする必要がある場合は、制約を無効にし、データをロードした後、制約を再度有効にする前に問題のある行を削除する方法を検討してください。
-
APPENDを使用すると、常に、データは新しい領域にロードされます。既存の領域は、使用可能な場合でも再利用されません。そのため、ロード後にデータを圧縮することもできます。 -
パラレル処理を使用する場合は、既存のターゲット表の有無によりパーティション表のパラレル処理がどのように影響を受けるかについて、インポート・ユーティリティの
PARTITION_OPTIONSパラメータの説明を参照してください。 - 既存の表(
TABLE_EXISTS_ACTION=REPLACEまたはTRUNCATE)にインポートする場合は、表のパーティション化スキームに応じて次のガイドラインに従います。- パーティション化スキームがソースとターゲット間で一致する場合は、インポート時に
DATA_OPTIONS=TRUST_EXISTING_TABLE_PARTITIONSを使用します。 - パーティション化スキームがソースとターゲットで異なる場合は、エクスポート時に
DATA_OPTIONS=GROUP_PARTITION_TABLE_DATAを使用します。
- パーティション化スキームがソースとターゲット間で一致する場合は、インポート時に
ノート:
Oracle Data Pumpは、ソース表とターゲット表の不一致(2つの表の列数が同じでないか、ソース表にない列名がターゲット表にある)を検出すると、2つの表間で列名を比較します。これらの表に共通の列が少なくとも1つあると、(データ型に互換性があるとみなされる)共通する列のデータが表にインポートされます。次の制限があります。
- この動作はネットワーク・インポートではサポートされません。
- 次の型の列は削除できません。オブジェクト列、オブジェクト属性、ネストされた表の列、主キーに基づくREF列。
制限事項
TRUNCATEは、クラスタ化された表では使用できません。
例
次に、TABLE_EXISTS_ACTIONパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr TABLES=employees DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
TABLE_EXISTS_ACTION=REPLACE3.4.50 REUSE_DATAFILES
Oracle Data Pump Importのコマンドライン・モードのREUSE_DATAFILESパラメータでは、インポート・ジョブで表領域の作成に既存のデータ・ファイルを再利用するかどうかを指定します。
デフォルト
NO
用途
インポート・ジョブで、表領域の作成に既存のデータ・ファイルを再利用するかどうかを指定します。
構文および説明
REUSE_DATAFILES=[YES | NO]
デフォルト(n)を使用して、CREATE TABLESPACE文で指定されているデータ・ファイルがすでに存在する場合は、CREATE TABLESPACE文の失敗によるエラー・メッセージが発行されますが、インポート・ジョブは続行されます。
このパラメータにYを指定すると、既存のデータ・ファイルが再度初期化されます。
注意:
REUSE_DATAFILES=YESを指定すると、データが失われる可能性があります。
例
次に、REUSE_DATAFILESパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp LOGFILE=reuse.log
REUSE_DATAFILES=YES
この例では、expfull.dmpファイルのCREATE TABLESPACE 文で指定されたデータ・ファイルを再度初期化します。
関連トピック
3.4.51 TABLES
Oracle Data Pump Importのコマンドライン・モードのTABLESパラメータにより、表モード・インポートを実行することを指定します。
デフォルト
デフォルトはありません。
用途
表モード・インポートの実行を指定します。
構文および説明
TABLES=[schema_name.]table_name[:partition_name]
表モード・インポートでは、表およびパーティションまたはサブパーティションをカンマで区切ったリストを指定して、ソースからインポートするデータをフィルタ処理できます。
schema_nameを指定しなかった場合は、デフォルトで現在のユーザーのスキーマ名になります。自分のスキーマ以外のスキーマを指定するには、DATAPUMP_IMP_FULL_DATABASEロールを持っているか、またはスキーマを現在のユーザーに再マップする必要があります。
インポートする内容を制限する場合は、このインポート・モードでフィルタ処理を使用できます。
partition_nameを指定する場合は、関連表にあるパーティションまたはサブパーティションの名前にする必要があります。
ワイルドカード文字%を使用して表名とパーティション名を指定できます。
表名には次の制限があります。
-
デフォルトでは、表名は大文字でデータベースに格納されます。表名が大文字と小文字または小文字のみで表記され、大/小文字を区別する場合、名前を引用符で囲む必要があります。したがって、表名は、データベースに格納されている表名と完全に一致するように指定する必要があります。
ただし、オペレーティング・システムによっては、コマンドラインの引用符自体をエスケープする必要がある場合があります。次に、異なるインポート・モードで大/小文字の区別を保持する方法を示します。
-
コマンドライン・モード
TABLES='\"Emp\"'
-
パラメータ・ファイル・モード
TABLES='"Emp"'
-
-
表名を引用符で囲まないと、コマンドラインで指定する表名にポンド記号(
#)は使用できません。同様に、パラメータ・ファイルでは、表名がポンド記号(#)を含んでいると、インポート・ユーティリティは、表名が引用符で囲まれていない場合コメントとして解釈します。たとえば、パラメータ・ファイルに次のコマンドラインが記述されている場合、インポート・ユーティリティでは
emp#の右側がすべてコメントとして解釈されるため、表deptおよびmydataはインポートされません。TABLES=(emp#, dept, mydata)
ただし、パラメータ・ファイルに次の行が含まれる場合は、
emp#が引用符で囲まれているため、インポート・ユーティリティは3つの表をすべてインポートします。TABLES=('"emp#"', dept, mydata)ノート:
オペレーティング・システムによっては、一重引用符を使用する必要がある場合と、二重引用符を使用する必要がある場合があります。ご使用のオペレーティング・システムのドキュメントで確認してください。表のネーミング方法に制限があるオペレーティング・システムもあります。
たとえば、UnixのCシェルではドル記号(
$)やポンド記号(#)またはその他の特定の特殊文字には特別な意味があります。名前に特殊文字を使用する場合は、オペレーティング・システム・シェルによって無視され、インポートで使用できるように、エスケープ文字を使用する必要があります。
制限事項
-
TABLESパラメータの値としてのシノニムの使用はサポートされていません。たとえば、hrスキーマのregions表にregnのシノニムが存在する場合、TABLES=regnを使用すると無効になります。この場合、エラーが返されます。 -
インポートに対して
PARTITION_OPTIONS=DEPARTITIONも指定されている場合、1つの表からのパーティションのみを指定できます。 -
TRANSPORTABLE=ALWAYSを指定する場合は、TABLESパラメータで指定されるすべてのパーティションが同じ表内に存在する必要があります。 -
TABLESパラメータに指定する表名のリストの長さは、最大4MBに制限されます。ただし、NETWORK_LINKパラメータで10.2.0.3以前のOracle Databaseまたは読取り専用のデータベースが設定されている場合は異なります。この場合の上限は4KBです。
例
次に、TABLESパラメータを使用して、expfull.dmpファイルからemployeesおよびjobs表のみをインポートする簡単な例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLES=employees,jobs
次に、TABLESを使用してパーティションをインポートするコマンドの例を示します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expdat.dmp
TABLES=sh.sales:sales_Q1_2012,sh.sales:sales_Q2_2012
この例では、shスキーマのsales表のパーティションsales_Q1_2012およびsales_Q2_2012をインポートします。
関連トピック
3.4.52 TABLESPACES
Oracle Data Pump Importのコマンドライン・モードのTABLESPACESパラメータにより、表領域モード・インポートを実行することを指定します。
デフォルト
デフォルトはありません
用途
表領域モード・インポートの実行を指定します。
構文および説明
TABLESPACES=tablespace_name [, ...]
TABLESPACESを使用して、表と依存オブジェクトがソース(全体インポート・モード、スキーマ・モード、表領域モードまたは表モードのエクスポート・ダンプ・ファイル・セット、あるいは別のデータベース)からインポートされる表領域名のリストを指定します。
インポートの次の状況では、データ・ポンプによりデータのインポート先に自動的に表領域が作成されます。
-
インポートが
FULLモードまたはTRANSPORT_TABLESPACESモードで実行されている場合 -
インポートが
TRANSPORTABLE=ALWAYSを含む表モードで実行されている場合
その他のすべての場合では、選択したオブジェクトの表領域がインポート先のデータベースにすでに存在している必要があります。REMAP_TABLESPACEインポート・パラメータを使用して、インポート先のデータベースにある表領域に表領域名をマッピングすることもできます。
インポートする内容を制限する場合は、このインポート・モードでフィルタ処理を使用できます。
制限事項
-
TABLESPACESパラメータに指定する表領域名のリストの長さは、最大4MBに制限されます。ただし、NETWORK_LINKパラメータで10.2.0.3以前のデータベースまたは読取り専用のデータベースが設定されている場合は異なります。この場合の上限は4KBです。
例
次に、TABLESPACESパラメータの使用例を示します。表領域はすでに存在するものとします。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLESPACES=tbs_1,tbs_2,tbs_3,tbs_4
この例では、表領域tbs_1、tbs_2、tbs_3およびtbs_4にデータがある表がすべてインポートされます。
関連トピック
3.4.53 TARGET_EDITION
Oracle Data Pump Importのコマンドライン・モードのTARGET_EDITIONパラメータにより、オブジェクトをインポートするデータベース・エディションを指定します。
デフォルト
システム上のデフォルトのデータベース・エディション。
用途
オブジェクトのインポート先のデータベース・エディションを指定します。
構文および説明
TARGET_EDITION=name
TARGET_EDITION=nameを指定すると、データ・ポンプ・インポートによって、ダンプ・ファイル内で検出されたすべてのオブジェクトが作成されます。エディション化可能でないオブジェクトは、すべてのエディションで作成されます。
たとえば、表はエディション化可能でないため、ダンプ・ファイル内に表があると、その表が作成されてすべてのエディションから参照されます。ダンプ・ファイル内のオブジェクトでエディション化可能なもの(プロシージャなど)は、指定されたターゲット・エディションのみに作成されます。
このパラメータが指定されていない場合は、エクスポート・ジョブでエディションが指定されていた場合でも、インポートでターゲット・データベースのデフォルトのエディションが使用されます。指定されたエディションが存在しない場合や使用できない場合は、エラー・メッセージが返されます。
制限事項
-
このパラメータは、バージョニング可能な同じオブジェクトのバージョンがデータベース内に2つ以上ある場合にのみ有効です。
-
ジョブ・バージョンは、11.2以上である必要があります。
例
次に、TARGET_EDITIONパラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=exp_dat.dmp TARGET_EDITION=exp_edition
この例は、オブジェクトのインポート先となるexp_editionというエディションがシステム上に存在することを前提としています。インポート・モードは指定されていないため、デフォルトのスキーマ・モードが使用されます。
エディションの作成方法の詳細は、Oracle Database SQL言語リファレンスを参照してください。エディションの機能の詳細は、Oracle Database開発ガイドを参照してください。
3.4.54 TRANSFORM
Oracle Data Pump Importのコマンドライン・モードのTRANSFORMパラメータを使用すると、インポート中のオブジェクトに対するオブジェクト作成DDLを変更できます。
デフォルト
このパラメータのデフォルト値はNで、インポート時に制約が検証されます。
用途
インポート中のオブジェクトに対するオブジェクト作成DDLを変更できます。
構文および説明
TRANSFORM = transform_name:value[:object_type]
transform_nameには、変換の名前を指定します。
object_typeの指定はオプションです。指定した場合、このパラメータでは、変換が適用されるオブジェクト型を指定します。オブジェクト型を指定しなかった場合、変換はすべての有効なオブジェクト型に適用されます。
使用可能な変換は次のとおりです(アルファベット順に記載)。
-
CONSTRAINT_NAME_FROM_INDEX:[Y|N]この変換は、
TABLEおよびCONSTRAINTの各オブジェクト型に対して有効です。この変換パラメータは、ユーザー作成索引を参照する
pkまたはfkの制約の生成に影響します。Yに設定すると、制約の名前が索引の名前と一致するように強制されます。N(デフォルト)に設定すると、ソース・データベースで指定されたとおりに制約が作成されます。 -
CONSTRAINT_NOVALIDATE:[Y|N]このパラメータのデフォルト値は
Nです。パラメータがYに設定されている場合、インポート時に制約は検証されません。インポート中にソースで有効な制約の検証は不要です。移行プロセスが遅くなる可能性があります。インポート後に検証を実行できます。次のプロパティを持つ表に対して
CONSTRAINT_NOVALIDATE = Yを選択することはできません。インポートを完了するために、これらの制約がVALIDATE状態である必要があるためです:- 参照パーティション表
- 参照パーティション子表
- 主キーOIDを含む表
- クラスタ化された表
-
CONSTRAINT_USE_DEFAULT_INDEX:[Y|N ]この変換は、
TABLEおよびCONSTRAINTの各オブジェクト型に対して有効です。この変換パラメータは、
pkまたはfkの制約に関連する索引の生成に影響します。Yに設定すると、変換パラメータにより、制約を強制するために自動的に作成された索引の名前が、制約名と同一になるように強制されます。さらに、索引はターゲット・データベースのデフォルトの制約定義を使用して作成され、ソース・データベースで定義されている可能性がある特別な特性は使用しません。デフォルトの索引は、
UNIQUE、PRIMARY KEY、FOREIGN KEYなどの標準スキーマ整合性制約を使用しないかぎり許可されません。したがって、制限のないシステムからOracle Data Pumpインポートを実行し、ソース索引に追加の制約(たとえば、ハッシュ・パーティション索引などのユーザー生成制約)がある場合、これらの追加の制約はインポート中に削除されます。N(デフォルト)に設定すると、ソース・データベースで指定されたとおりに索引が作成されます。 -
DISABLE_ARCHIVE_LOGGING:[Y|N]この変換は、
INDEXおよびTABLEの各オブジェクト型に対して有効です。Yに設定すると、データがインポートされる前に、指定したオブジェクト型(TABLEまたはINDEXあるいはその両方)のロギング属性が無効になります。Nに設定すると(デフォルト)、アーカイブ・ロギングはインポート中に無効になりません。データがロードされた後に、オブジェクトのロギング属性は元の設定に戻されます。オブジェクト型を指定しない場合、DISABLE_ARCHIVE_LOGGINGの動作は、TABLEとINDEXの両方のオブジェクト型に適用されます。この変換は、ファイル・モード・インポートとネットワーク・モード・インポートの両方で動作します。これは、トランスポータブル表領域インポートには適用されません。ノート:
データベースがFORCE LOGGINGモードである場合、索引および表の作成時にDISABLE_ARCHIVE_LOGGINGオプションではロギングは無効になりません。 -
DWCS_CVT_IOTS:[Y|N]この変換は、
TABLEオブジェクト型に対して有効です。Yに設定すると、表の作成時にORGANIZATION INDEX句を抑止して、索引構成表をヒープ構成表に変換するようOracle Data Pumpに指示します。N(デフォルト)に設定すると、生成されるDDLでは、ソース・オブジェクトの表特性が保持されます。 -
DWCS_CVT_CONSTRAINTS:[Y|N]この変換は、
TABLEおよびCONSTRAINTの各オブジェクト型に対して有効です。Yに設定すると、pk、fkまたはukの制約を無効として作成するようOracle Data Pumpに指示します。N(デフォルト)に設定すると、pk、fkまたはukの制約をソース・データベースのステータスに基づいて作成するようOracle Data Pumpに指示します。 -
INDEX_COMPRESSION_CLAUSE [NONE | compression_clause]この変換は、オブジェクト型
INDEXに対して有効です。TABLE_COMPRESSION_CLAUSEと同様に、INDEX_COMPRESSION_CLAUSEを使用すると、インポートでの索引圧縮を制御できます。NONEを指定すると、索引圧縮句は省略されます(その索引の表領域にはデフォルトの圧縮が使用されます)。ただし、圧縮を使用する場合は、COMPRESS ADVANCED LOWを使用することをお薦めします。指定した圧縮を使用して索引が作成されます。有効な表圧縮構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。索引圧縮句が複数の語の場合、一重引用符または二重引用符で囲む必要があります。また、オペレーティング・システムでは、句をエスケープ文字(バックスラッシュ文字など)で囲むことが必要な場合があります。たとえば:
TRANSFORM=INDEX_COMPRESSION_CLAUSE:\"COMPRESS ADVANCED LOW\"この変換を指定することで、ジョブ内のすべての索引の圧縮タイプが変更されます。
-
INCLUDE_SHARDING_CLAUSES:[Y|N]この変換のデフォルトは
Nです。Yに設定すると、インポートされたドキュメントのディクショナリ値にシャード構文が含まれている場合に、get_ddl()によってシャード構文が生成されます。 -
INMEMORY:[Y|N]この変換は、
TABLEおよびTABLESPACEの各オブジェクト型に対して有効です。INMEMORY変換は、インメモリー列ストア(IM列ストア)に関連があります。IM列ストアは、表、表パーティションおよびその他のデータベース・オブジェクトのコピーを格納するSystem Global Area(SGA)のオプションの部分です。IM列ストアはSGAの一部であるため、データは行ではなく、列によって移入されます。データは高速スキャンで最適化されます。IM列ストアでは、バッファ・キャッシュは置換しませんが、両方のメモリー領域において同じデータを異なる形式で格納するための補足としての役割を果たします。IM列ストアは、Oracle Databaseインメモリー・オプションに含まれています。インポートで
Y(デフォルト値)が指定されている場合、データ・ポンプは、IM列ストア句を含むすべてのオブジェクトに対してIM列ストア句を保持します。これらのオブジェクトがインポート時に再作成されると、データ・ポンプは、エクスポート時にこれらのオブジェクトの設定と一致するIM列ストア句を生成します。インポートで
Nが指定されている場合、データ・ポンプは、IM列ストア句を含むすべてのオブジェクトからIM列ストア句を削除します。表領域に格納されているオブジェクトにIM列ストア句がない場合、オブジェクトは表領域からIM列ストア句を継承します。したがって、データベースを移行していて、IM列ストア機能を使用する新しいデータベースが必要な場合、適切なIM列ストア句を持つ表領域を事前に作成できます。その後、インポート・コマンドでTRANSFORM=INMEMORY:Nを使用します。オブジェクトは、事前に作成済の新しい表領域からIM列ストア句を継承します。INMEMORY変換を使用しない場合、すべてのオブジェクトを個別に変更して、適切なIM列ストア句を追加する必要があります。ノート:
INMEMORY変換は、Oracle Database 12cリリース1 (12.1.0.2)以降でのみ使用可能です。インメモリー列ストア(IM列ストア)の使用方法の詳細は、Oracle Database管理者ガイドを参照してください。
-
INMEMORY_CLAUSE:"string with a valid in-memory parameter”この変換は、
TABLEおよびTABLESPACEの各オブジェクト型に対して有効です。INMEMORY_CLAUSE変換は、インメモリー列ストア(IM列ストア)に関連があります。IM列ストアは、表、表パーティションおよびその他のデータベース・オブジェクトのコピーを格納するSystem Global Area(SGA)のオプションの部分です。IM列ストアはSGAの一部であるため、データは行ではなく、列によって移入されます。データは高速スキャンで最適化されます。IM列ストアでは、バッファ・キャッシュは置換しませんが、両方のメモリー領域において同じデータを異なる形式で格納するための補足としての役割を果たします。IM列ストアは、Oracle Databaseインメモリー・オプションに含まれています。この変換を指定すると、データ・ポンプは、DDL内にIM列ストア句が含まれる、インポート対象のすべてのオブジェクトに対して、文字列の内容を
INMEMORY_CLAUSEとして使用します。この変換は、ダンプ・ファイルのオブジェクトに対してIM列ストア句を優先させる必要がある場合に有効です。指定する文字列を二重引用符で囲む必要があります。コマンドラインでコマンドを入力する場合、オペレーティング・システムによってはコマンドの解析中に疑問符が削除され、エラーが発生する可能性があることに注意してください。バックスラッシュ・エスケープ文字(\)を使用すると、このエラーを回避できます。たとえば:transform=inmemory_clause:\"INMEMORY MEMCOMPRESS FOR DML PRIORITY CRITICAL\"または、パラメータ・ファイルにパラメータを配置することもできます。処理中に、パラメータ・ファイル内の引用符は維持されます。
ノート:
INMEMORY_CLAUSE変換は、Oracle Database 12cリリース1 (12.1.0.2)以降でのみ使用可能です。インメモリー列ストア(IM列ストア)の使用方法の詳細は、Oracle Database管理者ガイドを参照してください。IM列ストア句で指定できるパラメータのリストおよび詳細は、Oracle Databaseリファレンスを参照してください
-
LOB_STORAGE:[SECUREFILE | BASICFILE | DEFAULT | NO_CHANGE]この変換は、オブジェクト型
TABLEに対して有効です。LOBセグメントは、指定した記憶域データ型(
SECUREFILEまたはBASICFILE)を使用して作成されます。(Oracleでは、すべてのレガシー・バイナリ・データ型をSecureFile LOBに移行することをお薦めします。)値がNO_CHANGE(デフォルト)の場合、LOBセグメントは、ソース・データベースに存在するものと同じ記憶域に作成されます。値がDEFAULTの場合、キーワード(SECUREFILEまたはBASICFILE)は省略され、LOBセグメントはデフォルト記憶域に作成されます。この変換を指定すると、マテリアライズド・ビューに記憶域を提供する表を含め、ジョブのすべての表のLOB記憶域が変更されます。
LOB_STORAGEの変換は、トランスポータブル・インポート・ジョブでは無効です。 -
LONG_TO_LOB:[Y|N]デフォルトは
Nです。このパラメータは、すべてのLONGデータ型をCLOBに変更し、すべてのLONG RAWデータ型をBLOBに変更します。この変換を使用すると、非推奨のLONGおよびLONG RAWデータ型を透過的かつ自動的にCLOBおよびBLOBに変換して移行できます。 -
OID:[Y|N]この変換は、
INC_TYPE、TABLEおよびTYPEの各オブジェクト型に対して有効です。インポート時に
Y(デフォルト値)を指定した場合、エクスポートされたOIDが、新しいオブジェクト表およびオブジェクト型に割り当てられます。データ・ポンプでは、ターゲット・データベース上で、一致する既存の型を検出する際にOIDの確認も行います。インポート時に
Nを指定した場合、次が実行されます。-
エクスポートされたOIDは、新しいオブジェクト表とオブジェクト型の作成で割り当てられません。かわりに、新しいOIDが割り当てられます。エクスポートされたOIDを割り当てないようにすると、スキーマのクローニングに有効ですが、参照オブジェクトには影響しません。
-
型に関連付けされた表にデータをロードする前に、データ・ポンプで、ターゲット・データベース上に既存の一致する型を検出する際、標準の型のOIDチェックをスキップします。型のハッシュ・コード、バージョン番号、型名によるその他のチェックは実行されます。
-
-
OMIT_ACDR_METADATA:[Y|N]デフォルトは
Nです。Y(true)に設定すると、Oracle Data Pump Importにより、レプリケートされた表のインポートから非表示列が除外され、ツームストン表が削除され、自動競合検出および解決(ACDR)のインスタンス・プロシージャ処理がすべて削除されます。 -
OMIT_ENCRYPTION_CLAUSE:[Y|N]この変換は、
TABLEオブジェクト型に対して有効です。Yに設定することで、列暗号化句を抑止するようOracle Data Pumpに指示できます。ソース・データベースで暗号化された列は、インポートされた表では暗号化されません。N(デフォルト)に設定すると、列暗号化句をソース・データベースでのように作成するようOracle Data Pumpに指示します。 -
PCTSPACE:some_number_greater_than_zeroこの変換は、
CLUSTER、CONSTRAINT、INDEX、ROLLBACK_SEGMENT、TABLEおよびTABLESPACEの各オブジェクト型に対して有効です。この変換の
値には、0より大きい数字を指定する必要があります。この値は、エクステントの割当てとデータ・ファイル・サイズの変更に使用する、割合の乗数を表します。なお、この
PCTSPACE変換とデータ・ポンプ・エクスポートのSAMPLEパラメータを組み合せて使用すると、記憶域の割当てサイズを、サンプリングされたデータ・サブセットに合わせることができます。(SAMPLEエクスポート・パラメータを参照してください。) -
SEGMENT_ATTRIBUTES:[Y|N]この変換は、
CLUSTER、CONSTRAINT、INDEX、ROLLBACK_SEGMENT、TABLEおよびTABLESPACEの各オブジェクト型に対して有効です。値を
Yに指定すると、適切なDDLにセグメント属性(物理属性、記憶域属性、表領域およびロギング)が指定されます。デフォルトはYです。 -
SEGMENT_CREATION:[Y|N]この変換は、オブジェクト型
TABLEに対して有効です。Y(デフォルト)に設定した場合、この変換によってSQLSEGMENT CREATION句がCREATE TABLE文に追加されます。つまり、CREATE TABLE文でSEGMENT CREATION DEFERREDかSEGMENT CREATION IMMEDIATEのいずれかが明示的に表現されます。値がNの場合、SEGMENT CREATION句はCREATE TABLE文から省略されます。ロードされる表に対してデフォルトのセグメント作成属性を使用するには、このパラメータをNに設定します。この機能は、Oracle Database 11gリリース2 (11.2.0.2)以降で使用できます。 -
STORAGE:[Y|N]この変換は、
CLUSTER、CONSTRAINT、INDEX、ROLLBACK_SEGMENTおよびTABLEの各オブジェクト型に対して有効です。値を
Yに指定すると、適切なDDLにSTORAGE句が指定されます。デフォルトはYです。SEGMENT_ATTRIBUTES=Nの場合、このパラメータは無視されます。 -
TABLESPACE:[Y|N]TRANSFORMパラメータのTABLESPACEオプション(transform=TABLESPACE:[Y|N])を使用すると、ターゲット・データベースのユーザー・デフォルト表領域に、多数のソース表領域を関連付けることができます。インポート中に
TABLESPACEパラメータをNoに設定した場合は、オブジェクト型TABLE、INDEX、CONSTRAINT、CLUSTER、MATERIALIZED VIEW、MATERIALIZED VIEW LOGおよびMATERIALIZED ZONEMAPを作成するためのDDLから表領域領域句が省略されます。TABLESPACEパラメータをYes (デフォルト)に設定した場合は、これらのオブジェクト型の場合に表領域領域句が発行されます。本番データベースには、複数の表領域を含めることができます。特定のターゲット表領域への移行中に、これらの表領域を統合できます。たとえば、USER表領域のみがアプリケーション用に使用可能になっているOracle Autonomous Databaseへの移行時に、表領域を統合できます。%ワイルドカードを指定してこのパラメータを使用すると、ソース表領域すべてを指定することなく簡単にそれを実行できます。 -
TABLE_COMPRESSION_CLAUSE:[NONE|compression_clause]この変換は、オブジェクト型
TABLEに対して有効です。NONEを指定すると、表圧縮句は省略されます(その表の表領域にはデフォルトの圧縮が使用されます)。それ以外の場合、その値が有効な表圧縮句です(NOCOMPRESS、COMPRESS BASICなど)。指定した圧縮を使用して表が作成されます。有効な表圧縮構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。表圧縮句が複数の語の場合、一重引用符または二重引用符で囲む必要があります。また、オペレーティング・システムでは、句をエスケープ文字(バックスラッシュ文字など)で囲むことが必要な場合があります。たとえば:
TRANSFORM=TABLE_COMPRESSION_CLAUSE:\"COLUMN STORE COMPRESS FOR QUERY HIGH\"この変換を指定すると、マテリアライズド・ビューに記憶域を提供する表を含め、ジョブのすべての表の圧縮タイプが変更されます。
-
XMLTYPE_STORAGE_CLAUSE:[TRANSPORTABLE BINARY XML | BINARY XML]デフォルトはありません。この変換を使用しない場合は、ダンプファイル内のソース・データ型が、ターゲットで定義されているデータ型になり、
NOT TRANSPORTABLE句はそのままになります。Oracle Database 23aiで
TRANSPORTABLE BINARY XMLXMLTypeを使用して、自己完結型バイナリ形式でデータを格納することをお薦めします。この形式では、シャーディングがサポートされ、スケーラビリティが向上します。XMLデータのエンコードまたはデコードに使用されるメタデータが中央表(中央のトークン表およびスキーマ・レジストリ)に格納されません。これにより、XMLデータの格納が簡略化され、その転送が容易になります。TRANSPORTABLE BINARY XMLが設定されている場合、バイナリXMLデータの表作成DDLにTRANSPORTABLE句が強制的に含まれるようになります。このデータ型は、Oracle Cloud Infrastructure内のOracle Database 21cおよびOracle Database 19cで使用できます。BINARY XML格納XMLType (トランスポータブルではない)を使用して、XMLデータ専用に設計されている事後解析バイナリ形式でデータを格納します。バイナリXMLは、簡潔で事後解析型であり、XML Schema対応のXMLデータです。XMLデータのエンコードまたはデコードに使用されるメタデータは、中央表に効率的に格納されます。BINARY XMLが設定されている場合、バイナリXMLデータの表作成DDLにNOT TRANSPORTABLE句が強制的に含まれるようになります。バイナリXMLデータを含む表にTRANSPORTABLE句もNOT TRANSPORTABLE句もない場合、デフォルトはNOT TRANSPORTABLEであり、XMLType列は引き続きBinary XMLとして保管されます。ソース・データベースのXMLType格納形式(オブジェクト・リレーショナル、バイナリXMLまたはCLOB)に関係なく、タイプXMLTypeのデータをエクスポートおよびインポートできます。ただし、Oracle Data Pumpでは、バイナリXMLデータとしてのXMLデータのみがエクスポートまたはインポートされます。そのため、XMLTypeのオブジェクト・リレーショナル格納に使用されている、基礎となる表および列はエクスポートされません。かわりに、それらはバイナリ形式に変換され、トークン・マップ・プリアンブルを使用して自己記述的なバイナリXMLデータとしてエクスポートされます。
XMLTypeデータはXMLデータとしてエクスポートおよびインポートされるため、ソース・データベースとターゲット・データベースで、そのデータに対して異なるXMLType格納モデルを使用できます。ある方式でXMLTypeデータが格納されるデータベースからデータをエクスポートし、それを、別の方式でXMLTypeデータが格納されるデータベースにインポートできます。詳細は、『Oracle XML DB開発者ガイド』を参照してください。
制限事項
TRANSFORMをドメイン索引とともに使用して、ソース・メタデータのSTORAGE句を除外することはできません。REMAP_TABLESPACEまたはTRANSFORM ATTRIBUTEをOracle Text索引とともに使用することはできません。TRANSFORM=TABLESPACE:Nの使用は、REMAP_TABLESPACEと相互に排他的です。-
XMLTYPE_STORAGE_CLAUSEデータ型には、次の制限が適用されます:-
XMLType記憶域モデルを使用しているかどうかにかかわらず、オプション
table_exists_action=appendを指定して、同じダンプ・ファイルからXMLType表に複数回インポートしないでください。XMLType表内の列は常に一意のオブジェクト識別子を使用してエクスポートおよびインポートされるため、これを行うと一意制約違反エラーが発生します。 -
トランスポータブル・バイナリXMLは、SecureFile
LOBを使用してのみ格納できます。TBXにBasicFile句が指定されている場合は、エラーが発生します。SYSおよびXDBユーザーの場合は例外で、BasicFile句の使用が許可されます。 -
バイナリXMLは、デフォルトでSecureFiles記憶域オプションに設定されます。ただし、次のいずれかが当てはまる場合、SecureFiles LOB記憶域は使用できません。その場合は、BasicFileがバイナリXMLデータのデフォルト・オプションになります。
- XMLType表の表領域で、自動セグメント領域管理が使用されていない。
- ファイル
init.oraの設定により、SecureFiles LOB記憶域を使用できない。例については、パラメータDB_SECUREFILEを参照してください。
-
- XMLTypeに対する非構造化(
CLOB)記憶域モデルの使用は、Oracle Database 12cリリース1 (12.1.0.1)以降のリリースでは非推奨です。 - Oracle Data Pump for Oracle Database 11gリリース1 (11.1)は、XML Schema、XML Schemaに基づくXMLType列またはバイナリXMLデータをリリース11.1より前のバージョンにエクスポートする機能をサポートしていません。
例
TRANSFORMのユース・ケース例
次に、TRANSFORMを使用する一般的な例を示します。次の例では、hrスキーマのemployees表をエクスポートしたとします。表をインポートした結果返されるSQL CREATE TABLE文は、次のようになります:
CREATE TABLE "HR"."EMPLOYEES"
( "EMPLOYEE_ID" NUMBER(6,0),
"FIRST_NAME" VARCHAR2(20),
"LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE,
"EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE,
"PHONE_NUMBER" VARCHAR2(20),
"HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE,
"JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE,
"SALARY" NUMBER(8,2),
"COMMISSION_PCT" NUMBER(2,2),
"MANAGER_ID" NUMBER(6,0),
"DEPARTMENT_ID" NUMBER(4,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 10240 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 121
PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM" ;
STORAGE句またはTABLESPACE句は、保持しない場合、インポート・ユーティリティのTRANSFORMパラメータを使用してCREATE STATEMENTから削除できます。SEGMENT_ATTRIBUTESの値をNに指定します。これによって、セグメント属性(記憶域と表領域の両方)が表から除外されます。
> impdp hr TABLES=hr.employees DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp
TRANSFORM=SEGMENT_ATTRIBUTES:N:table
この結果返される、employees表のCREATE TABLE文は次のようになります。STORAGEまたはTABLESPACE句は含まれていません。かわりに、HRスキーマのデフォルト表領域が使用されます。
CREATE TABLE "HR"."EMPLOYEES"
( "EMPLOYEE_ID" NUMBER(6,0),
"FIRST_NAME" VARCHAR2(20),
"LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE,
"EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE,
"PHONE_NUMBER" VARCHAR2(20),
"HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE,
"JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE,
"SALARY" NUMBER(8,2),
"COMMISSION_PCT" NUMBER(2,2),
"MANAGER_ID" NUMBER(6,0),
"DEPARTMENT_ID" NUMBER(4,0)
);
前述の例で示したとおり、SEGMENT_ATTRIBUTES変換は、記憶域と表領域の両方の属性に適用されます。STORAGE句のみを省略して、TABLESPACE句を保持する場合は、STORAGE変換を次のように使用できます。
> impdp hr TABLES=hr.employees DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp TRANSFORM=STORAGE:N:table
SEGMENT_ATTRIBUTESおよびSTORAGE変換は、次のコマンドに示すとおり、TRANSFORMパラメータにオブジェクト型を指定しないことによって、すべての適用可能な表オブジェクトおよび索引オブジェクトに適用できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM=SEGMENT_ATTRIBUTES:N
関連トピック
3.4.55 TRANSPORT_DATAFILES
Oracle Data Pump Importのコマンドライン・モードのTRANSPORT_DATAFILESパラメータでは、エクスポート中にTRANSPORTABLE=ALWAYSが設定された場合にターゲット・データベースにインポートするデータ・ファイルのリストを指定します。
デフォルト
デフォルトはありません
用途
トランスポータブル表領域モード・インポートか、エクスポート中にTRANSPORTABLE=ALWAYSが設定された場合には表モード・インポートまたは全体モード・インポートによって、ターゲット・データベースにインポートするデータ・ファイルのリストを指定します。データ・ファイルはターゲット・データベース・システム上にすでに存在する必要があります。
構文および説明
TRANSPORT_DATAFILES=datafile_namedatafile_nameには、ディレクトリ・オブジェクト名ではなく、ターゲット・データベースが存在するシステムで有効な絶対ディレクトリ・パスを指定する必要があります。
また、datafile_nameの絶対パス指定のファイル名部分にワイルドカードを使用することもできます。アスタリスク(*)は、0からN個の文字と一致します。疑問符(?)は、正確に1文字と一致します。絶対パス指定のディレクトリ部分にワイルドカードを使用することはできません。ワイルドカードを使用する場合、一致するすべてのファイルがトランスポート・セットの一部である必要があります。トランスポート・セットの一部ではないファイルが見つかった場合、エラーが表示され、インポート・ジョブは終了します。
インポート操作前の任意の時点で、ソース・システムからターゲット・システムにデータ・ファイルをコピーしておく必要があります。データ・ファイルは、オペレーティング・システムでサポートされている任意のコピー方法でコピーできます。必要に応じて、ターゲット・システムにコピーするときに、ファイルの名前を変更できます。例2を参照してください。
トランスポータブル・モード・エクスポートによって生成されたダンプ・ファイル・セットがすでにある場合、(メタデータを含んでいる)ダンプ・ファイルおよびTRANSPORT_DATAFILESパラメータを指定することで、そのダンプ・ファイルのトランスポータブル・モード・インポートを実行できます。TRANSPORT_DATAFILESパラメータが存在することで、これがトランスポータブル・モード・インポートであることと、実際のデータを取得する場所がインポートに通知されます。
オペレーティング・システムによっては、このパラメータの値を引用符を使用して指定する場合、エスケープ文字を使用することも必要になる可能性があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは使用する必要があるエスケープ文字の数を減らすことができます。
制限事項
-
TRANSPORT_DATAFILESパラメータをQUERYパラメータと組み合せて使用することはできません。 -
絶対ファイル・パスの
TRANSPORT_DATAFILESディレクトリ部分にワイルドカードを含めることはできません。ただし、絶対ファイル・パスのファイル名部分にはワイルドカードを含めることができます。
例1
次に、TRANSPORT_DATAFILESパラメータの使用例を示します。次の内容のパラメータ・ファイルtrans_datafiles.parを作成したとします。
DIRECTORY=dpump_dir1
DUMPFILE=tts.dmp
TRANSPORT_DATAFILES='/user01/data/tbs1.dbf'
次のコマンドを発行します。
> impdp hr PARFILE=trans_datafiles.par例2
この例は、トランスポータブル表領域のエクスポートおよびインポート操作の一環として、データ・ファイルの名前を変更する操作を示しています。ソース・システムにemployees.datというデータ・ファイルがあることを前提としています。
-
オペレーティング・システムでサポートされている方法で、ソース・システムからターゲット・データベースがあるシステムに、
employees.datというデータ・ファイルを手動でコピーします。コピー操作の一環として、ファイル名をworkers.datに変更します。 -
表領域
tbs_1について、トランスポータブル表領域のエクスポートを実行します。> expdp hr DIRECTORY=dpump_dir1 DUMPFILE=tts.dmp TRANSPORT_TABLESPACES=tbs_1tbs_1のメタデータのみ(データなし)がtts.dmpというダンプ・ファイルにエクスポートされます。実際のデータは、ステップ1でターゲット・データベースにコピーされています。 -
workers.datというデータ・ファイルの絶対ディレクトリ・パスを指定して、トランスポータブル表領域のインポートを実行します。> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=tts.dmp TRANSPORT_DATAFILES='/user01/data/workers.dat'tts.dmpに含まれているメタデータがインポートされ、workers.datファイル内の情報がデータ・ポンプによってデータベースの正しい場所に割り当てられます。
例3
この例では、TRANSPORT_DATAFILESパラメータで使用するファイル名に、アスタリスク(*)のワイルドカード文字を使用しています。
TRANSPORT_DATAFILES='/db1/hrdata/payroll/emp*.dbf'このパラメータを使用すると、ディレクトリ/db1/hrdata/payroll/内にある、タイプ.dbfのファイルのうち、名前の先頭がempであるものがすべてトランスポート・セットの一部になっていることが、Oracle Data Pumpによって検査されます。
例4
この例では、TRANSPORT_DATAFILESパラメータで使用するファイル名に、疑問符(?)のワイルドカード文字を使用しています。
TRANSPORT_DATAFILES='/db1/hrdata/payroll/m?emp.dbf'このパラメータを使用すると、ディレクトリ/db1/hrdata/payroll/内にある、タイプ.dbfのファイルのうち、名前の先頭がm、その次が任意の他の単一文字、末尾がempであるものがすべてトランスポート・セットの一部になっていることが、Oracle Data Pumpによって検査されます。たとえば、myemp.dbfという名前のファイルは含められますが、memp.dbfという名前のファイルは含められません。
3.4.56 TRANSPORT_FULL_CHECK
Oracle Data Pump Importのコマンドライン・モードのTRANSPORT_FULL_CHECKパラメータでは、指定したトランスポータブル表領域セットが他の表領域内のオブジェクトによって参照されていることを確認するかどうかを指定します。
デフォルト
NO
用途
指定したトランスポータブル表領域セットが他の表領域内のオブジェクトによって参照されていることを確認するかどうかを指定します。
構文および説明
TRANSPORT_FULL_CHECK=[YES | NO]
TRANSPORT_FULL_CHECK=YESを指定すると、インポート・ユーティリティによって、トランスポータブル・セット内のオブジェクトとトランスポータブル・セット外のオブジェクトの間に依存性が存在しないことが確認されます。ここでは、双方向の依存性がチェックされます。たとえば、トランスポータブル・セット内に表は存在するが、その表の索引は存在しない場合は、エラーが返され、インポート操作が終了します。同様に、トランスポータブル・セット内に索引は存在するが表は存在しない場合も、エラーが返されます。
TRANSPORT_FULL_CHECK=NOを指定すると、インポート・ユーティリティによって、トランスポータブル・セット外のオブジェクトに依存するオブジェクトが、トランスポータブル・セット内に存在しないことのみ確認されます。ここでは、一方向の依存性がチェックされます。たとえば、表は索引に依存しませんが、索引は表に依存します。これは、索引は表なしでは意味を持たないためです。そのため、トランスポータブル・セット内に表は存在するが、表の索引は存在しない場合、このチェックは正常に終了します。ただし、トランスポータブル・セット内に索引は存在するが表は存在しない場合は、インポート操作が終了します。
このチェックに加えて、インポートでは、常に、TRANSPORT_TABLESPACESで指定された表領域セット内に定義されているすべての表(およびその索引)のすべての記憶域セグメントが、表領域セット内に実際に含まれていることが確認されます。
制限事項
-
このパラメータは、
NETWORK_LINKパラメータを指定した場合にのみトランスポータブル・モード(またはTRANSPORTABLE=ALWAYSがエクスポート時に指定されていた場合は表モードまたは全体モード)に対して有効です。
例
次の例では、source_database_linkを有効なデータベース・リンクの名前に置き換えます。また、この例では、tbs6.dbfというデータ・ファイルがすでに存在するものとします。
次の内容のパラメータ・ファイルfull_check.parを作成したとします。
DIRECTORY=dpump_dir1
TRANSPORT_TABLESPACES=tbs_6
NETWORK_LINK=source_database_link
TRANSPORT_FULL_CHECK=YES
TRANSPORT_DATAFILES='/wkdir/data/tbs6.dbf'
次のコマンドを発行します。
> impdp hr PARFILE=full_check.par3.4.57 TRANSPORT_TABLESPACES
Oracle Data Pump Importのコマンドライン・モードのTRANSPORT_TABLESPACESパラメータにより、データベース・リンク経由でトランスポータブル表領域モードでのインポートを実行することを指定します。
デフォルト
デフォルトはありません。
用途
データベース・リンク(NETWORK_LINKパラメータで指定)経由でトランスポータブル表領域モードのインポートの実行を指定します。
構文および説明
TRANSPORT_TABLESPACES=tablespace_name [, ...]
TRANSPORT_TABLESPACESパラメータは、ソース・データベースからターゲット・データベースにオブジェクト・メタデータがインポートされる表領域の名前のリストを指定するために使用します。
このインポートはトランスポータブル・モード・インポートであるため、データのインポート先の表領域は、データ・ポンプによって自動的に作成されます。事前に表領域を作成しておく必要はありません。ただし、インポートを開始する前に、データ・ファイルをターゲット・データベースにコピーします。
インポート・コマンドラインでTRANSPORT_TABLESPACESを指定する場合は、データベース・リンクを指定するためにNETWORK_LINKパラメータも使用する必要があります。データベース・リンクは2つの物理データベース・サーバー間の接続であり、データベース・リンクを使用すると、クライアントから1つの論理データベースとしてこれらのサーバーにアクセスできます。オブジェクト・メタデータはデータベース・リンクを使用してソース(NETWORK_LINKによって指定されるデータベース)からエクスポートされ、ターゲット(impdpコマンドの発行元のデータベース)に直接インポートされるため、NETWORK_LINKパラメータが必要となります。この処理にはダンプ・ファイルは関連しません。他の方法を使用して個別の操作で実際のデータをターゲットにコピーする場合は、TRANSPORT_DATAFILESパラメータを指定し、データの場所を指定します。
ノート:
トランスポータブル表領域モード・エクスポートによって生成されたダンプ・ファイル・セットがすでにある場合、そのダンプ・ファイルのトランスポータブル・モード・インポートを実行できますが、この場合TRANSPORT_TABLESPACESまたはNETWORK_LINKを指定しません。指定するとエラーが発生します。かわりに、(メタデータを含んでいる)ダンプ・ファイルとTRANSPORT_DATAFILESパラメータを指定します。TRANSPORT_DATAFILESパラメータが存在することで、これがトランスポータブル・モード・インポートであることと、実際のデータを取得する場所がインポートに通知されます。
トランスポータブル・ジョブを実行する場合、ベスト・プラクティスは、インポート・ジョブがターゲット・システムで正常に完了するまで、ソース・システムにデータ・ファイルのコピーを保持することです。インポート・ジョブが失敗しても、破損していないデータ・ファイルのコピーが残ります。
制限事項
-
トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。インポート先のターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。
-
TRANSPORT_TABLESPACESパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。 -
TRANSPORT_TABLESPACESパラメータを使用してトランスポータブル表領域インポートを実行するには、COMPATIBLE初期化パラメータを11.0.0以上に設定する必要があります。 -
オペレーティング・システムによっては、このパラメータの値を引用符を使用して指定する場合、エスケープ文字を使用することも必要になる可能性があります。このパラメータはパラメータ・ファイルに配置することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインの場合には使用する必要があるエスケープ文字の数を減らすことができます。
-
トランスポータブル表領域のジョブでは、データ・ポンプ・インポートの
ACCESS_METHODパラメータはサポートされません。
例
次の例では、source_database_linkを有効なデータベース・リンクの名前に置き換えます。また、この例では、tbs6.dbfというデータ・ファイルが、ソース・データベースからローカル・システムにすでにコピーされているものとします。次の内容のパラメータ・ファイルtablespaces.parを作成したとします。
DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link
TRANSPORT_TABLESPACES=tbs_6
TRANSPORT_FULL_CHECK=NO
TRANSPORT_DATAFILES='user01/data/tbs6.dbf'
次のコマンドを発行します。
> impdp hr PARFILE=tablespaces.par3.4.58 TRANSPORTABLE
Oracle Data Pumpインポートのコマンドライン・モードのTRANSPORTABLEパラメータ(オプション)では、トランスポータブル表のインポートにKEEP_READ_ONLYまたはNO_BITMAP_REBUILDのどちらを使用するかを指定します。
デフォルト
ありません。
用途
次のオプション・パラメータにより、2つの値を指定して、トランスポータブル表のインポートを管理する方法を制御できます: KEEP_READ_ONLYおよびNO_BITMAP_REBUILD。TRANSPORTABLEパラメータのデフォルト値はありません。
構文および説明
TRANSPORTABLE = [ALWAYS|NEVER|KEEP_READ_ONLY|NO_BITMAP_REBUILD]
使用可能な値の定義は、次のとおりです。
-
ALWAYS(全体および表エクスポートの場合に有効)は、トランスポータブル・エクスポートを示します。指定すると、メタデータのみがエクスポートされ、データ・ファイルはインポート時にターゲット・データベースに差し込まれます。 NEVERは、従来型のエクスポートのみが有効化されることを示します。-
KEEP_READ_ONLY: トランスポータブル・モードのインポート(表、表領域、全体)でのみ有効です。指定すると、表領域とデータ・ファイルは読取り専用モードのままになります。表領域とデータファイルを読取り専用モードにしておくと、トランスポータブル・データ・ファイルのセットが複数のターゲット・データベースに差し込めるようになります。データ・ファイルが読取り専用モードの場合は、TSTZ列データが含まれている表の更新が無効になります(そのデータの更新が必要になる場合)。これは、異なるTSTZバージョンによる問題を回避するためです。そのため、TSTZ列が含まれる表はトランスポータブル・インポートから削除されます。データ・ファイルを読取り専用モードにしておくと、セグメントを再利用するための表領域記憶域のビットマップの再構築も無効になります。 -
NO_BITMAP_REBUILD: トランスポータブル・インポート時に、表領域記憶域のビットマップを再構築して記憶域セグメントを再利用することは不要であるとOracle Data Pumpに指示します。ビットマップを再構築しないことで、インポートの時間を短縮できます。その後で、DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_BITMAPS()プロシージャを使用すると、セグメントを再利用できます。
APIまたはクラス
TRANSPORTABLEパラメータの値は、既存のプロシージャDBMS_DATAPUMP.SET_PARAMETERを使用して設定できます
制限事項
-
インポートの
TRANSPORTABLEパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。 -
TRANSPORTABLEパラメータは、表モード・インポートおよび全体モード・インポートでのみ有効です。 -
トランスポータブル・インポートを実行するユーザーには、ソース・データベースでの
DATAPUMP_EXP_FULL_DATABASEロールと、ターゲット・データベースでのDATAPUMP_IMP_FULL_DATABASEロールの両方が必要になります。 -
ネットワーク・インポートのために選択された記憶域を持つすべてのオブジェクトでは、ソース・システム上のすべての記憶域セグメントが、管理対象の非トランスポータブル表領域(
SYSTEM/SYSAUX),内に全体として存在するか、ユーザー定義のトランスポータブル表領域内に全体として存在する必要があります。シングル・オブジェクトの記憶域は、2種類の表領域にまたがることはできません。 -
ソース・データベースがリリース11.2.0.3の場合に
TRANSPORTABLEパラメータを使用してネットワーク・ベースの全体トランスポータブル・インポートを実行するには、データ・ポンプのVERSIONパラメータを12.0以上に設定する必要があります。ソース・データベースがリリース12.1以上の場合、VERSIONパラメータは不要ですが、COMPATIBLEデータベース初期化パラメータを12.0.0以上に設定する必要があります。
ネットワーク・リンク・インポートの例
次に、ネットワーク・リンク・インポート中にTRANSPORTABLEパラメータを使用する例を示します。datafile_nameは、インポート対象のデータ・ファイルです。
> impdp system TABLES=hr.sales TRANSPORTABLE=ALWAYS
DIRECTORY=dpump_dir1 NETWORK_LINK=dbs1 PARTITION_OPTIONS=DEPARTITION
TRANSPORT_DATAFILES=datafile_name 全体トランスポータブル・インポートの例
次の例では、データベース・リンクdbs1を通じて全体トランスポータブル・インポートを実行するときの、TRANSPORTABLEパラメータの使用方法を示しています。このインポートでは、暗号化された列を含む表のパスワードを指定しています。
> impdp import_admin FULL=Y TRANSPORTABLE=ALWAYS VERSION=12 NETWORK_LINK=dbs1
ENCRYPTION_PASSWORD=password TRANSPORT_DATAFILES=datafile_name
LOGFILE=dpump_dir1:fullnet.logNEVERまたはALWAYSの設定例
文字列値を使用したTRANSPORTABLEパラメータの設定は、NEVER値またはALWAYS値に制限されます。
SYS.DBMS_DATAPUMP.SET_PARAMETER(jobhdl, ‘TRANSPORTABLE’,’ALWAYS’);
SYS.DBMS_DATAPUMP.SET_PARAMETER(jobhdl, ‘TRANSPORTABLE’,’NEVER’); 新しいTRANSPORTABLEパラメータ・オプションは、新しい数値ビットマスク値を使用して設定します。
DBMS_DATAPUMP.KU$_TTS_NEVERは値1
DBMS_DATAPUMP.KU$_TTS_ALWAYSは値2
DBMS_DATAPUMP.KU$_TTS_KEEP_READ_ONLYは値4
DBMS_DATAPUMP.KU$_TTS_NO_BITMAP_REBUILDは値8
SYS.DBMS_DATAPUMP.SET_PARAMETER(jobhdl, ‘TRANSPORTABLE’,
DBMS_DATAPUMP.KU$_TTS_ALWAYS+DBMS_DATAPUMP.KU$_TTS_KEEP_READ_ONLY);ファイル・ベースのトランスポータブル表領域インポートの例
次の例は、ファイル・ベースのトランスポータブル表領域インポートでのTRANSPORTABLEパラメータの使用を示しています。指定されたKEEP_READ_ONLYオプションは、インポート操作全体にわたってデータ・ファイルが読取り専用アクセスを保持することを示します。必要なデータ・ファイルは、トランスポータブル表領域エクスポートによって報告されます。
impdp system DIRECTORY=dpump_dir DUMPFILE=dumpfile_name
TRANSPORT_DATAFILES=datafile_name TRANSPORTABLE=KEEP_READ_ONLY3.4.59 VERIFY_CHECKSUM
Oracle Data Pumpインポートのコマンドライン・ユーティリティのVERIFY_CHECKSUMパラメータでは、ダンプ・ファイルのチェックサムを検証するかどうかを指定します。
デフォルト
エクスポート・ダンプ・ファイルの初回生成時にチェックサムが生成された場合、デフォルト値はYESになります。
用途
インポート操作の続行前に、Oracle Data Pumpでダンプ・ファイルのチェックサムを検証するかどうかを指定します。
構文および説明
VERIFY_CHECKSUM=[YES|NO]
YES: エクスポート・ダンプ・ファイル・セットのダンプ・ファイルごとに、Oracle Data Pumpでファイルのチェックサム検証を実行するように指定します。NO: ダンプ・ファイル・セットのチェックサム検証をOacleデータ・ポンプで実行しないように指定します。
制限事項
- このチェックサム機能を使用するには、COMPATIBLE初期化パラメータを20.0以上に設定する必要があります。
- VERIFY_CHECKSUMとVERIFY_ONLYは、相互に排他的なパラメータです。
例
この例では、HRスキーマのスキーマ・モードのロードを実行します。ダンプ・ファイルのチェックサム検証は、実際のインポート操作の開始前に実行されます。
impdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp VERIFY_CHECKSUM=YES
3.4.60 VERIFY_ONLY
Oracle Data Pump Importコマンドライン・ユーティリティのVERIFY_ONLYパラメータを使用すると、ダンプ・ファイルのチェックサムを検証できます。
デフォルト
NO
用途
Oracle Data Pumpでダンプ・ファイルのチェックサムを検証するかどうかを指定します。
構文および説明
VERIFY_ONLY=[YES|NO]
YESに設定すると、Oracle Data Pumpによってチェックサムが検証されます。エラーがない場合は、ダンプ・ファイル・セットに対して別のインポート・コマンドを発行できます。
制限事項
VERIFY_ONLYパラメータをYESに設定していると、実際のインポート操作が実行されません。Oracle Data Pumpインポート・ジョブは、リストされた検証チェックのみを完了します。VERIFY_CHECKSUMとVERIFY_ONLYは、相互に排他的なパラメータです。
例
この例では、hr.dmpダンプ・ファイルの検証チェックを実行します。検証チェックを超えて、データの実際のインポートは実行されません。
impdp system directory=dpump_dir1 dumpfile=hr.dmp verify_checksum=yes
3.4.61 VERSION
Oracle Data Pump Importのコマンドライン・モードのVERSIONパラメータでは、インポートするデータベース・オブジェクトのバージョンを指定します。
デフォルト
通常はインポート操作でVERSIONパラメータを指定する必要はありません。Oracle Data Pumpでは、次のうちの古い方が使用されます。
- ネットワーク・インポートの場合、ダンプ・ファイルまたはソース・データベースに関連付けられているバージョン
- ターゲット・データベースの
COMPATIBLE初期化パラメータで指定されたバージョン
用途
インポートするデータベース・オブジェクトのバージョンを指定します(つまり、指定されたリリースと互換性のあるデータベース・オブジェクトおよび属性のみがインポートされます)。なお、これは、10.1より前のリリースのOracle DatabaseでOracle Data Pump Importを使用可能ということではありません。Oracle Data Pump Importは、Oracle Database 10gリリース1 (10.1)以降でのみ動作します。VERSIONパラメータを使用して可能になるのは、インポートするオブジェクトのバージョンの識別のみです。
構文および説明
VERSION=[COMPATIBLE | LATEST | version_string]
このパラメータは、ソース・システムのリリースより古い互換リリースのOracle Databaseが稼働しているターゲット・システムのロードに使用できます。VERSIONパラメータが設定されている場合、指定したリリースと互換性のないソース・システム上のデータベース・オブジェクトまたは属性はターゲットに移動されません。たとえば、指定したリリースではサポートされていない新しいデータ型を含む表はインポートされません。このパラメータの有効な値は次のとおりです。
-
COMPATIBLE- デフォルト値。メタデータのバージョンは、データベースの互換性レベルに対応します。データベースの互換性は、9.2.0以上に設定する必要があります。 -
LATEST- メタデータのバージョンは、データベースのリリースに対応します。ターゲット・データベースの実際のバージョンがCOMPATIBLE初期化パラメータで指定されたバージョンより新しいである場合、インポート・ジョブでVERSION=LATESTを指定しても影響がありません。 -
version_string- 特定のデータベース・リリース(12.2.0など)。
制限事項
-
Oracle Data Pumpの
VERSIONパラメータを12.1より前の任意の値に指定すると、4000バイトを超える長さのVARCHAR2列またはNVARCHAR2列と、2000バイトを超える長さのRAW列を含む表は、Oracle Data Pumpのダンプ・ファイルから除外されます。 -
ターゲットがOracle Database 12cリリース1 (12.1.0.1)以降で、ソースがOracle Database 11gリリース2 (11.2.0.3)以降である場合、ネットワーク・リンクで実行される全体インポートでは、
VERSION=12を設定する必要があります。 -
Oracle Data Pumpのパラメータ
VERSION=12を使用してOracle Database 11gリリースで作成したダンプ・ファイルは、Oracle Database 12cリリース1 (12.1)以降でのみインポートできます。 -
VERSIONパラメータの値がインポートに及ぼす影響は、データ・バインドされた照合(DBC)が有効になっているかどうかで異なります。
ノート:
VERSIONで指定したリリースと互換性のないデータベース・オブジェクトまたは属性は、エクスポートされません。たとえば、指定したリリースではサポートされていない新しいデータ型を含む表はエクスポートされません。ダンプ・ファイルをVERSION=19のOracle Cloud Infrastructure (OCI)ネイティブ資格証明ストアにエクスポートしようとすると、エクスポートが失敗し、次のエラーが表示されます。
ORA-39463 "header block format is not supported for object-store URI dump file"
例
次の例では、ターゲット・データベースをOracle Database 12cリリース1 (12.1.0.1)、ソース・データベースをOracle Database 11gリリース2 (11.2.0.3)と想定しています。ここでは、ネットワーク・ベース・インポートにVERSION=12を設定する必要があります。また、NETWORK_LINKパラメータを使用している場合、デフォルト・インポート・モードが全体モードであっても、コマンドラインでこれを指定する必要があります。
> impdp hr FULL=Y DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link VERSION=123.4.62 VIEWS_AS_TABLES (ネットワーク・インポート)
Oracle Data Pump Importのコマンドライン・モードのVIEWS_AS_TABLES (ネットワーク・インポート)パラメータでは、1つ以上のビューを表としてインポートすることを指定します。
デフォルト
デフォルトはありません。
ノート:
このVIEWS_AS_TABLESの説明は、ネットワーク・インポート時に適用されます(データ・ポンプ・インポートのNETWORK_LINKパラメータの値を指定する場合)。
用途
1つ以上のビューを表としてインポートするように指定します。
構文および説明
VIEWS_AS_TABLES=[schema_name.]view_name[:table_name], ...
Oracle Data Pumpによって、ビューと同じ列を含み、ビューからフェッチされた行データを含む表がインポートされます。Oracle Data Pumpでは、権限や制約などのビューに依存するオブジェクトもインポートされます。表に適用されない依存オブジェクト(UNDERオブジェクト権限の付与など)はインポートされません。VIEWS_AS_TABLESパラメータは、単独で使用することも、TABLESパラメータと組み合せて使用することもできます。どちらを使用しても、Oracle Data Pumpでは表モード・インポートが実行されます。
構文要素の定義は次のとおりです。
schema_name: ビューが存在するスキーマの名前。スキーマ名を指定しない場合、デフォルトで、インポートを実行するユーザーになります。
view_name: 表としてインポートするビューの名前。ビューは存在し、LOB以外のスカラー列のみを含むリレーショナル・ビューである必要があります。無効なビューや存在しないビューを指定すると、そのビューはスキップされてエラー・メッセージが返されます。
table_name: インポートされるビューのメタデータのソースとなる表の名前。デフォルトでは、Oracle Data Pumpによって、ビューと同じ列およびデータ型を持つ、行の含まれない一時的なテンプレート表が自動的に作成されます。データベースが読取り専用の場合、このテンプレート表のデフォルトの作成には失敗します。この場合、表名を指定できます。表は、ビューと同じスキーマに属している必要があります。これは、ヒープ構成のパーティション化されていないリレーショナル表である必要があります。ネストした表にすることはできません。
テンプレート表が明示的に指定された複数のビューがインポート・ジョブに含まれる場合、それらのテンプレート表はすべて異なっている必要があります。たとえば、2つのビューで同じテンプレート表を使用している次のジョブでは、ビューの1つがスキップされます。
impdp hr DIRECTORY=dpump_dir NETWORK_LINK=dblink1 VIEWS_AS_TABLES=v1:employees,v2:employees
オブジェクトの省略をレポートするエラー・メッセージが返されます。
テンプレート表は、インポート操作の完了後に自動的に削除されます。それらが存在している間は、次の問合せを実行してその名前を表示できます(名前はすべてKU$VATで始まります)。
SQL> SELECT * FROM user_tab_comments WHERE table_name LIKE 'KU$VAT%';
TABLE_NAME TABLE_TYPE
------------------------------ -----------
COMMENTS
-----------------------------------------------------
KU$VAT_63629 TABLE
Data Pump metadata template table for view HR.EMPLOYEESV制限事項
-
VIEWS_AS_TABLESパラメータは、TRANSPORTABLE=ALWAYSパラメータと組み合せて使用することはできません。 -
VIEWS_AS_TABLESパラメータを使用して作成された表には、指定したビューの一部であった非表示列は含まれません。 -
VIEWS_AS_TABLESパラメータでは、LONGのデータ型の列のある表をサポートしていません。
例
次の例では、ネットワーク・インポートを実行して、読取り専用データベースからビューhr.v1のコンテンツをインポートします。ソース・データベースのhrスキーマには、ビューview1と同じジオメトリを持つテンプレート表が含まれる必要があります(この表はview1_tabと呼ばれます)。VIEWS_AS_TABLESパラメータには、ビュー名と表名をコロンで区切ってリストします。
> impdp hr VIEWS_AS_TABLES=view1:view1_tab NETWORK_LINK=dblink1
ビューは、ビューからフェッチされた行を持つview1という表としてインポートされます。表のメタデータは、テンプレート表のview1_tabからコピーされます。