プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

データ・ポンプ・ジョブ実行中に行われる処理

データ・ポンプ・ジョブでは、マスター表、マスター・プロセス、ワーカー・プロセスを使用して、処理が実行され、進捗状況が追跡されます。

ジョブの調整

すべてのデータ・ポンプ・エクスポート・ジョブおよびデータ・ポンプ・インポート・ジョブに対して、マスター・プロセスが作成されます。マスター・プロセスによって、ジョブ全体(クライアントとの通信、ワーカー・プロセス・プールの作成および制御、ロギング操作の実行など)が制御されます。

ジョブ内での進捗状況の追跡

データおよびメタデータの転送中、ジョブ内の進捗状況の追跡にマスター表が使用されます。マスター表は、ユーザー表としてデータベース内に実装されます。また、エクスポート・ジョブおよびインポート・ジョブ用のマスター表固有の機能は、次のとおりです。

  • エクスポート・ジョブの場合、マスター表には、ダンプ・ファイル・セット内のデータベース・オブジェクトの位置が記録されます。エクスポート・ユーティリティでは、ジョブの継続中に、マスター表の作成およびメンテナンスが行われます。エクスポート・ジョブ終了時に、マスター表の内容がダンプ・ファイル・セット内のファイルに書き込まれます。

  • インポート・ジョブの場合、マスター表は、ダンプ・ファイル・セットからロードされ、ターゲット・データベースにインポートする必要があるオブジェクトの位置を特定する操作の順序の制御に使用されます。

マスター表は、エクスポートまたはインポート操作を実行している現在のユーザーのスキーマ内に作成されます。そのため、このユーザーには、CREATE TABLEシステム権限およびマスター表を作成するための十分な表領域の割当て制限が必要です。マスター表の名前は、その表を作成したジョブと同じ名前になります。したがって、データ・ポンプ・ジョブに、既存の表またはビューと同じ名前を明示的には指定できません。

すべての操作で、ジョブの再起動にマスター表の情報が使用されます。(トランスポータブル・ジョブは再開できないことに注意してください。)

マスター表は、状況に応じて、次のとおり保持または削除されます。

  • ジョブが正常に終了すると、マスター表は削除されます。これを上書きするには、ジョブに対してデータ・ポンプのKEEP_MASTER=YESパラメータを設定します。

  • ジョブが正常に完了しなかった場合、マスター表は自動的に保持されます。

  • 対話方式コマンドSTOP_JOBを使用してジョブを停止すると、ジョブの再起動に使用できるようにマスター表は保持されます。

  • 対話方式コマンドKILL_JOBを使用してジョブを中断すると、マスター表は削除され、ジョブを再起動できません。

  • ジョブが突然終了した場合でも、マスター表は保持されます。このジョブを再起動しない場合、マスター表を削除できます。

  • ジョブが実行を開始する前(つまり、データベース・オブジェクトがコピーされる前)に停止すると、マスター表は削除されます。

関連項目:

ジョブ名の形式の詳細は、「JOB_NAME」を参照してください

ジョブ実行中のデータおよびメタデータのフィルタ処理

マスター表内では、名前や自分のスキーマなどの属性が特定のオブジェクトに割り当てられます。オブジェクトは、オブジェクトのクラス(TABLEINDEXDIRECTORYなど)にも属します。オブジェクトのクラスは、オブジェクトのオブジェクト型と呼ばれます。EXCLUDEおよびINCLUDEパラメータを使用して、エクスポートまたはインポートされるオブジェクト型を制限できます。オブジェクトの名前またはオブジェクトを自分のスキーマの名前に基づいて、制限するオブジェクトを指定できます。データ固有のフィルタを指定して、エクスポートおよびインポートする行を制限することもできます。

ジョブ実行中のメタデータの変換

データベース間でデータを移動する場合は、表領域間で記憶域を再マップしたり、特定のオブジェクトの所有者を再定義するために、メタデータの変換を実行すると有効です。これは、データ・ポンプ・インポート・パラメータのREMAP_DATAFILEREMAP_SCHEMAREMAP_TABLE、REMAP_TABLESPACETRANSFORMおよびPARTITION_OPTIONSを使用して実行されます。

ジョブ・パフォーマンスの最大化

データ・ポンプでは、複数のワーカー・プロセスを採用し、それらをパラレルに実行して、ジョブのパフォーマンスを向上させることができます。PARALLELパラメータを使用して、現状の環境で最大限の効果を得る並列度を設定します。たとえば、本番システムへのジョブの影響を制限する場合、データベース管理者(DBA)は並列度を制限する必要があります。並列度は、ジョブの実行中いつでも再設定できます。たとえば、運用時間中は特定のジョブの並列度が2に制限されるようにPARALLELを2に設定し、非運用時間中は8に再設定することができます。並列度の設定は、マスター・プロセスによって施行され、マスター・プロセスによって、1回の操作でデータおよびメタデータの処理を実行するワーカー・プロセスに、実行対象の処理が割り当てられます。これらのワーカー・プロセスは、パラレルで動作します。並列度を設定する場合の推奨事項は、エクスポートのPARALLELおよびインポートのPARALLELパラメータの説明を参照してください。

注意:

並列度を調整する機能は、Oracle DatabaseのEnterprise Editionでのみ使用可能です。

データのロードおよびアンロード

ワーカー・プロセスによって、メタデータおよび表データがアンロードおよびロードされます。また、インポート中には、これらによって索引が再作成されます。これらの操作の一部(表データのアンロードおよびロード、索引の再作成およびパッケージ本体のロード)は、パラレルに実行できます。他のすべての操作は逐次実行されます。ワーカー・プロセスは、コマンドライン・パラメータPARALLELに指定した値と同数になるまで必要に応じて作成されます。アクティブなワーカー・プロセスの数は、ジョブの存続期間中いつでも再設定できます。ワーカー・プロセスは、Oracle Real Application Clusters(Oracle RAC)環境内の様々なノードで起動できます。

注意:

Oracle DatabaseのStandard Editionでは、PARALLELの値は1に制限されています。

非常に大きい表またはパーティションをロードまたはアンロードするタスクがワーカー・プロセスに割り当てられた場合、パラレル実行を最大限に利用できるように、外部表によるアクセス方法が使用されることがあります。その場合、ワーカー・プロセスはパラレル実行コーディネータになります。実際のロードおよびアンロード処理は、Oracle RAC環境内の使用可能なプロセスのプールから割り当てられたパラレルI/Oの実行プロセス(スレーブとも呼ばれる)間で分割されます。

関連項目: