DBMS_DATAPUMP
パッケージは、データおよびメタデータの両方を含むデータベースの一部または全体をデータベース間で移動するために使用します。
関連項目: DBMS_DATAPUMP APIの背後にある概念とその機能、およびデータ・ポンプ・エクスポート・ユーティリティとインポート・ユーティリティに実装する方法の詳細は、『Oracle Databaseユーティリティ』 を参照してください。 |
この章では、次の項目について説明します。
概要
セキュリティ・モデル
定数
データ構造: オブジェクト・タイプ
この項では、DBMS_DATAPUMP
パッケージの使用に関連する項目について説明します。
DBMS_DATAPUMP
によって提供されるサポートおよび機能は次のとおりです。
ソース・データベースとターゲット・データベースで、異なるハードウェア、オペレーティング・システム、キャラクタ・セット、タイムゾーンおよびバージョンを利用できます。
Oracle Database 11g以降のデータベース内に存在するすべてのオブジェクト・タイプとデータ・タイプがサポートされます。
中間ファイルを使用しなくても、データおよびメタデータをデータベース間で転送できます。
データベースのサブセットを、オブジェクト・タイプおよびオブジェクト名に基づいて移動できます。
スキーマ名、データファイル名、表領域名およびデータを、インポート時に変換できます。
元のジョブからデータやメタデータを複製または省略しないで、以前に中断したエクスポート・ジョブおよびインポート・ジョブを再開できます。
エクスポート・ジョブまたはインポート・ジョブに適用されたリソースを変更できます。
オラクル社独自の書式のデータをアンロードおよびロードできます。
DBMS_DATAPUMP
パッケージのセキュリティは、ロールを使用して実装されます。
DATAPUMP_EXP_FULL_DATABASE
ロールおよびDATAPUMP_IMP_FULL_DATABASE
ロールを使用すると、権限のあるユーザーがこのAPIをフルに利用できます。データ・ポンプAPIはこれらのロールを使用して、権限のあるアプリケーション・ロールを、ジョブを構成する各プロセスに割り当てるべきかどうかを決定します。
DATAPUMP_EXP_FULL_DATABASE
ロールは、エクスポート操作のみに影響を与えます。これらの操作を行うユーザーは、次のことを実行できます。
使用するスキーマの範囲外の操作の実行
他のユーザーによって開始されたジョブの監視
権限のないユーザーが参照できないオブジェクト(TABLESPACE定義など)のエクスポート
SYS
スキーマにDATAPUMP_EXP_FULL_DATABASE
ロールは割り当てられていませんが、データ・ポンプによって実行されDATAPUMP_EXP_FULL_DATABASE
ロールを必要とするすべてのセキュリティ・チェックで、SYS
スキーマへのアクセス権限も付与されます。
DATAPUMP_IMP_FULL_DATABASE
は、インポート操作およびSQL_FILE操作のみに影響を与えます。これらの操作を行うユーザーは、次のことを実行できます。
使用するスキーマの範囲外の操作の実行
他のユーザーによって開始されたジョブの監視
権限のないユーザーが作成できないオブジェクト(DIRECTORY定義など)のインポート
SYS
スキーマにDATAPUMP_IMP_FULL_DATABASE
ロールは割り当てられていませんが、データ・ポンプによって実行されDATAPUMP_IMP_FULL_DATABASE
ロールを必要とするすべてのセキュリティ・チェックで、SYS
スキーマへのアクセス権限も付与されます。
いくつかのパブリック定数が、DBMS_DATAPUMP
.GET_STATUS
プロシージャで使用するために定義されています。これらの定数はすべて、DBMS_DATAPUMP
パッケージの一部として定義されます。これらの定数を参照するには、DBMS_DATAPUMP
.という接頭辞を付け、続けて次に示す記号を付ける必要があります。
DBMS_DATAPUMP
パッケージは、OBJECT
タイプを定義します。この項で説明するタイプは、SYS
スキーマ内で定義され、GET_STATUS
ファンクションで使用されます。これらのタイプの定義方法および使用方法は、一般的な方法と異なる場合があります。この項は注意して読んでください。
GET_STATUS
プロシージャで使用するために定義されたタイプのコレクションは、バージョンに固有であり、各タイプの名前にバージョン情報が含まれています。これらのタイプはいったん導入されると、Oracle Databaseの今後のバージョンでも常に提供、サポートされ、変更はありません。ただし、Oracle Databaseの今後のバージョンでこれらのタイプの新しいバージョンが作成され、新規情報や異なる情報が提供される可能性があります。この新バージョンでは、タイプ名に新しいバージョン情報が組み込まれます。
たとえば、Oracle Database 12cリリース1(12.1)にはsys.ku$_Status1210
タイプがありますが、Oracle Databaseの次のリリースではsys.ku$_Status1310
タイプが定義される可能性があります。どちらのタイプもGET_STATUS
プロシージャで使用できます。
GET_STATUS
プロシージャで使用されるそれぞれのタイプには、パブリック・シノニムが定義されています。これによってタイプが使いやすくなるうえ、タイプが常駐する実際のタイプ名やスキーマに行われる変更を気にする必要がありません。オラクル社では、可能なかぎりパブリック・シノニムを使用することをお薦めします。
それぞれのタイプには、バージョン固有のシノニムと汎用的なシノニムがあります。たとえば、sys.ku$_Status1210
タイプには、バージョン固有のシノニムku$_Status1210
が定義されています。
汎用的なシノニムは、常に最新バージョンのタイプを示します。たとえば、Oracle Database 12cリリース1(12.1)では、汎用シノニムku$_Status
はku$_Status1210
として定義されます。しかし今後のリリースでは、sys.ku$Status1310
に対するシノニムがku$_Status1310
となる可能性があります。この場合、汎用シノニムku$_Status
は常に最新の定義を示すため、ku$_Status1210
ではなくku$_Status1310
を示すことになります。
バージョン固有のシノニムと汎用シノニムのどちらを使用するかにより、作業内容が大幅に異なります。バージョン固有の名前を使用すると、これらのタイプは引き続き存在しサポートされるため、Oracle Databaseの今後のリリースに変更があってもコードが保護されます。ただし、新しい情報にアクセスするには、コードを変更し、各タイプに新しいシノニム名を使用する必要があります。汎用名を使用すると、常にタイプの最新の定義が必要になり、Oracle Databaseのリリースに変更があっても対処できるように備えておく必要があります。
現在使用しているOracle Databaseのバージョンが変更されると、汎用シノニム名を使用してタイプにアクセスするすべてのCコードを再コンパイルする必要があります。
注意: PL/SQL以外の言語では、タイプの定義がバージョン固有の定義に適合していることを確認する必要があります。 |
DBMS_DATAPUMP
パッケージは、次の種類のOBJECT
タイプを定義します。
ワーカー・ステータス・タイプは、ジョブ内の個々のワーカー・プロセスで行っている内容について示します。処理中のオブジェクトのスキーマ、オブジェクト名およびオブジェクト・タイプが表示されます。ユーザー・データを処理するワーカーの場合は、パーティション化された表のパーティション名(存在する場合)、パーティション内で処理されるバイト数およびパーティション内で処理される行数も表示されます。メタデータを処理するワーカーの場合は、処理された最後のオブジェクトのステータスが表示されます。アイドル・スレッドのステータスは表示されません。
percent_done
は、処理中の現行のデータ項目について完了した割合を示します。メタデータ・オブジェクトの場合は更新されません。
ワーカー・ステータス・タイプは次のように定義します。
CREATE TYPE sys.ku$_WorkerStatus1010 AS OBJECT ( worker_number NUMBER, -- Worker process identifier process_name VARCHAR2(30), -- Worker process name state VARCHAR2(30), -- Worker process state schema VARCHAR2(30), -- Schema name name VARCHAR2(4000),-- Object name object_type VARCHAR2(200),-- Object type partition VARCHAR2(30), -- Partition name completed_objects NUMBER, -- Completed number of objects total_objects NUMBER, -- Total number of objects completed_rows NUMBER, -- Number of rows completed completed_bytes NUMBER, -- Number of bytes completed percent_done NUMBER -- Percent done current object )
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1010 FOR sys.ku$_WorkerStatus1010;
CREATE TYPE sys.ku$_WorkerStatus1020 AS OBJECT ( worker_number NUMBER, -- Worker process identifier process_name VARCHAR2(30), -- Worker process name state VARCHAR2(30), -- Worker process state schema VARCHAR2(30), -- Schema name name VARCHAR2(4000),-- Object name object_type VARCHAR2(200),-- Object type partition VARCHAR2(30), -- Partition name completed_objects NUMBER, -- Completed number of objects total_objects NUMBER, -- Total number of objects completed_rows NUMBER, -- Number of rows completed completed_bytes NUMBER, -- Number of bytes completed percent_done NUMBER, -- Percent done current object degree NUMBER -- Degree of parallelism )
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1020 FOR sys.ku$_WorkerStatus1020;
CREATE TYPE sys.ku$_WorkerStatus1120 AS OBJECT ( worker_number NUMBER, -- Worker process identifier process_name VARCHAR2(30), -- Worker process name state VARCHAR2(30), -- Worker process state schema VARCHAR2(30), -- Schema name name VARCHAR2(4000),-- Object name object_type VARCHAR2(200),-- Object type partition VARCHAR2(30), -- Partition name completed_objects NUMBER, -- Completed number of objects total_objects NUMBER, -- Total number of objects completed_rows NUMBER, -- Number of rows completed completed_bytes NUMBER, -- Number of bytes completed percent_done NUMBER, -- Percent done current object degree NUMBER, -- Degree of parallelism instance_id NUMBER -- Instance ID where running )
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1120 FOR sys.ku$_WorkerStatus1120;
CREATE TYPE sys.ku$_WorkerStatus1210 AS OBJECT ( worker_number NUMBER, -- Worker process identifier process_name VARCHAR2(30), -- Worker process name state VARCHAR2(30), -- Worker process state schema VARCHAR2(30), -- Schema name name VARCHAR2(4000),-- Object name object_type VARCHAR2(200),-- Object type partition VARCHAR2(30), -- Partition name completed_objects NUMBER, -- Completed number of objects total_objects NUMBER, -- Total number of objects completed_rows NUMBER, -- Number of rows completed completed_bytes NUMBER, -- Number of bytes completed percent_done NUMBER, -- Percent done current object degree NUMBER, -- Degree of parallelism instance_id NUMBER, -- Instance ID where running instance_name VARCHAR2(60), -- Instance Name where running host_name VARCHAR2(64) -- Host name where running )
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1210 FOR sys.ku$_WorkerStatus1210; CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus FOR ku$_WorkerStatus1210; CREATE TYPE sys.ku$_WorkerStatusList1010 AS TABLE OF sys.ku$_WorkerStatus1010 CREATE TYPE sys.ku$_WorkerStatusList1020 AS TABLE OF sys.ku$_WorkerStatus1020 CREATE TYPE sys.ku$_WorkerStatusList1120 AS TABLE OF sys.ku$_WorkerStatus1120 CREATE TYPE sys.ku$_WorkerStatusList1210 AS TABLE OF sys.ku$_WorkerStatus1210 CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1010 FOR sys.ku$_WorkerStatusList1010; CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1020 FOR sys.ku$_WorkerStatusList1020; CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1120 FOR sys.ku$_WorkerStatusList1120; CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1210 FOR sys.ku$_WorkerStatusList1210; CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList FOR ku$_WorkerStatusList1210;
ログ・エントリ・タイプとエラー・タイプでは、連結されたクライアントとログ・ストリームに対して、情報テキストとエラー・テキストを提供します。ku$LogLine.errorNumber
タイプは、情報メッセージについてはNULL
が設定されますが、エラー・メッセージに対しては値が指定されます。個々のログ・エントリには、複数行のテキスト・メッセージを含めることができます。
ログ・エントリ・タイプとエラー・タイプは、次のように定義します。
CREATE TYPE sys.ku$_LogLine1010 AS OBJECT ( logLineNumber NUMBER, errorNumber NUMBER, LogText VARCHAR2(2000)) CREATE OR REPLACE PUBLIC SYNONYM ku$_LogLine1010 FOR sys.ku$_LogLine1010; CREATE OR REPLACE PUBLIC SYNONYM ku$_LogLine1020 FOR sys.ku$_LogLine1010; CREATE OR REPLACE PUBLIC SYNONYM ku$_LogLine FOR ku$_LogLine1010; CREATE TYPE sys.ku$_LogEntry1010 AS TABLE OF sys.ku$_LogLine1010 CREATE OR REPLACE PUBLIC SYNONYM ku$_LogEntry1010 FOR sys.ku$_LogEntry1010; CREATE OR REPLACE PUBLIC SYNONYM ku$_LogEntry1020 FOR sys.ku$_LogEntry1010; CREATE OR REPLACE PUBLIC SYNONYM ku$_LogEntry FOR ku$_LogEntry1010;
ジョブ・ステータス・タイプは、ジョブに関するステータスを戻します。通常、ステータスは実行中のジョブに関するものですが、クライアントが連結したときには、停止したジョブに関するステータスが示される場合もあります。通常は、ステータスは、クライアントが対話モードからステータスを明示的に要求した場合は連結時に示され、クライアントが定期的にステータスを要求している場合はN秒ごとに示されます。
ジョブ・ステータス・タイプは次のように定義します(percent_done
はデータのみに適用されます)。
CREATE TYPE sys.ku$_JobStatus1010 IS OBJECT ( job_name VARCHAR2(30), -- Name of the job operation VARCHAR2(30), -- Current operation job_mode VARCHAR2(30), -- Current mode bytes_processed NUMBER, -- Bytes so far total_bytes NUMBER, -- Total bytes for job percent_done NUMBER, -- Percent done degree NUMBER, -- Of job parallelism error_count NUMBER, -- #errors so far state VARCHAR2(30), -- Current job state phase NUMBER, -- Job phase restart_count NUMBER, -- #Job restarts worker_status_list ku$_WorkerStatusList1010, -- For (non-idle) -- job worker processes files ku$_DumpFileSet1010 -- Dump file info ) CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1010 FOR sys.ku$_JobStatus1010;
CREATE TYPE sys.ku$_JobStatus1020 IS OBJECT ( job_name VARCHAR2(30), -- Name of the job operation VARCHAR2(30), -- Current operation job_mode VARCHAR2(30), -- Current mode bytes_processed NUMBER, -- Bytes so far total_bytes NUMBER, -- Total bytes for job percent_done NUMBER, -- Percent done degree NUMBER, -- Of job parallelism error_count NUMBER, -- #errors so far state VARCHAR2(30), -- Current job state phase NUMBER, -- Job phase restart_count NUMBER, -- #Job restarts worker_status_list ku$_WorkerStatusList1020, -- For (non-idle) -- job worker processes files ku$_DumpFileSet1010 -- Dump file info ) CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1020 FOR sys.ku$_JobStatus1020;
CREATE TYPE sys.ku$_JobStatus1120 IS OBJECT ( job_name VARCHAR2(30), -- Name of the job operation VARCHAR2(30), -- Current operation job_mode VARCHAR2(30), -- Current mode bytes_processed NUMBER, -- Bytes so far total_bytes NUMBER, -- Total bytes for job percent_done NUMBER, -- Percent done degree NUMBER, -- Of job parallelism error_count NUMBER, -- #errors so far state VARCHAR2(30), -- Current job state phase NUMBER, -- Job phase restart_count NUMBER, -- #Job restarts worker_status_list ku$_WorkerStatusList1120, -- For (non-idle) -- job worker processes files ku$_DumpFileSet1010 -- Dump file info ) CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1120 FOR sys.ku$_JobStatus1120;
CREATE TYPE sys.ku$_JobStatus1210 IS OBJECT ( job_name VARCHAR2(30), -- Name of the job operation VARCHAR2(30), -- Current operation job_mode VARCHAR2(30), -- Current mode bytes_processed NUMBER, -- Bytes so far total_bytes NUMBER, -- Total bytes for job percent_done NUMBER, -- Percent done degree NUMBER, -- Of job parallelism error_count NUMBER, -- #errors so far state VARCHAR2(30), -- Current job state phase NUMBER, -- Job phase restart_count NUMBER, -- #Job restarts worker_status_list ku$_WorkerStatusList1210, -- For (non-idle) -- job worker processes files ku$_DumpFileSet1010 -- Dump file info ) CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1210 FOR sys.ku$_JobStatus1210; CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus FOR ku$_JobStatus1210;
ジョブ記述タイプは、パラメータ設定やダンプ・ファイル・セットのメンバーなど、ジョブに関するすべての環境情報を保管します。いくつかの下位タイプも指定する必要があります。
ジョブ記述タイプは次のように定義します。
CREATE TYPE sys.ku$_JobDesc1010 IS OBJECT ( job_name VARCHAR2(30), -- The job name guid RAW(16), -- The job GUID operation VARCHAR2(30), -- Current operation job_mode VARCHAR2(30), -- Current mode remote_link VARCHAR2(4000), -- DB link, if any owner VARCHAR2(30), -- Job owner instance VARCHAR2(16), -- The instance name db_version VARCHAR2(30), -- Version of objects creator_privs VARCHAR2(30), -- Privs of job start_time DATE, -- This job start time max_degree NUMBER, -- Max. parallelism log_file VARCHAR2(4000), -- Log file name sql_file VARCHAR2(4000), -- SQL file name params ku$_ParamValues1010 -- Parameter list ) CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc1010 FOR sys.ku$_JobDesc1010;
CREATE TYPE sys.ku$_JobDesc1020 IS OBJECT ( job_name VARCHAR2(30), -- The job name guid RAW(16), -- The job GUID operation VARCHAR2(30), -- Current operation job_mode VARCHAR2(30), -- Current mode remote_link VARCHAR2(4000), -- DB link, if any owner VARCHAR2(30), -- Job owner platform VARCHAR2(101), -- Current job platform exp_platform VARCHAR2(101), -- Export platform global_name VARCHAR2(4000), -- Current global name exp_global_name VARCHAR2(4000), -- Export global name instance VARCHAR2(16), -- The instance name db_version VARCHAR2(30), -- Version of objects exp_db_version VARCHAR2(30), -- Export version scn NUMBER, -- Job SCN creator_privs VARCHAR2(30), -- Privs of job start_time DATE, -- This job start time exp_start_time DATE, -- Export start time term_reason NUMBER, -- Job termination code max_degree NUMBER, -- Max. parallelism log_file VARCHAR2(4000), -- Log file name sql_file VARCHAR2(4000), -- SQL file name params ku$_ParamValues1010 -- Parameter list ) CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc1020 FOR sys.ku$_JobDesc1020;
CREATE TYPE sys.ku$_JobDesc1210 IS OBJECT ( job_name VARCHAR2(30), -- The job name guid RAW(16), -- The job GUID operation VARCHAR2(30), -- Current operation job_mode VARCHAR2(30), -- Current mode remote_link VARCHAR2(4000), -- DB link, if any owner VARCHAR2(30), -- Job owner platform VARCHAR2(101), -- Current job platform exp_platform VARCHAR2(101), -- Export platform global_name VARCHAR2(4000), -- Current global name exp_global_name VARCHAR2(4000), -- Export global name instance VARCHAR2(16), -- The instance name db_version VARCHAR2(30), -- Cur. server software version exp_db_version VARCHAR2(30), -- Export svr. software version job_version VARCHAR2(30), -- Negotiated data version scn NUMBER, -- Job SCN creator_privs VARCHAR2(30), -- Privs of job start_time DATE, -- This job start time exp_start_time DATE, -- Export start time term_reason NUMBER, -- Job termination code max_degree NUMBER, -- Max. parallelism timezone VARCHAR2(64), -- Cur. server timezone exp_timezone VARCHAR2(64), -- Exp. server timezone tstz_version NUMBER, -- Cur. server timezone version exp_tstz_version NUMBER, -- Exp. server timezone endianness VARCHAR2(16), -- Cur. platform's endianness exp_endianness VARCHAR2(16), -- Exp. platform's endianness -- endianness is 'BIG' or 'LITTLE' charset VARCHAR2(28), -- Cur. server charset exp_charset VARCHAR2(28), -- Exp. server charset ncharset VARCHAR2(28), -- Cur. server national charset exp_ncharset VARCHAR2(28), -- Exp. server national charset log_file VARCHAR2(4000), -- Log file name sql_file VARCHAR2(4000), -- SQL file name params ku$_ParamValues1010 -- Parameter list ) CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc1210 FOR sys.ku$_JobDesc1210; CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc FOR ku$_JobDesc1210;
ステータス・タイプは、定義済の以前のタイプをいくつか集めたもので、GET_STATUS
コールに対する戻り値です。マスク属性は、コール元に戻される情報のタイプを示します。クライアントのシャドウ・プロセスによって、ステータス・キューから取得される情報、あるいはマスター表から直接作成されます。
エラーの場合は、ku$_LogEntry
が戻され、ログ行が適切な出力順に並べられています。つまり、元のku$_LogEntry
オブジェクトが、最も外側のコンテキストから最も内側のコンテキストの順に並べられています。
ステータス・タイプは次のように定義します。
CREATE TYPE sys.ku$_Status1010 IS OBJECT ( mask NUMBER, -- Status types present wip ku$_LogEntry1010, -- Work in progress job_description ku$_JobDesc1010, -- Complete job description job_status ku$_JobStatus1010,-- Detailed job status error ku$_LogEntry1010 -- Multi-level context errors ) CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1010 FOR sys.ku$_Status1010; CREATE TYPE sys.ku$_Status1020 IS OBJECT ( mask NUMBER, -- Status types present wip ku$_LogEntry1010, -- Work in progress job_description ku$_JobDesc1020, -- Complete job description job_status ku$_JobStatus1020,-- Detailed job status error ku$_LogEntry1010 -- Multi-level context errors ) CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1020 FOR sys.ku$_Status1020; CREATE TYPE sys.ku$_Status1120 IS OBJECT ( mask NUMBER, -- Status types present wip ku$_LogEntry1010, -- Work in progress job_description ku$_JobDesc1020, -- Complete job description job_status ku$_JobStatus1120,-- Detailed job status error ku$_LogEntry1010 -- Multi-level context errors ) CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1120 FOR sys.ku$_Status1120; CREATE TYPE sys.ku$_Status1210 IS OBJECT ( mask NUMBER, -- Status types present wip ku$_LogEntry1010, -- Work in progress job_description ku$_JobDesc1210, -- Complete job description job_status ku$_JobStatus1210,-- Detailed job status error ku$_LogEntry1010 -- Multi-level context errors ) CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1210 FOR sys.ku$_Status1210; CREATE OR REPLACE PUBLIC SYNONYM ku$_Status FOR ku$_Status1210;
表47-1 DBMS_DATAPUMPパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
エクスポート、インポートまたはSQL_FILEの各操作に使用するダンプ・ファイル・セットにダンプ・ファイルを追加します。このプロシージャに提供されている |
|
定義中、実行中、アイドルまたは停止などの状態にあるデータ・ポンプ・ジョブにアクセスするために使用します。 |
|
取得する行に制限を指定します。 |
|
データベースからエクスポートされるとき、またはデータベースにインポートされるときにその列データに適用される変換を指定します。 |
|
ユーザーがこれ以上ハンドルを使用しないことを指定します。 |
|
指定したダンプ・ファイルの情報を取り出します。 |
|
ジョブのステータスを監視するか、ジョブの完了あるいはAPIエラーの詳細を待機します。 |
|
ログ・ファイルにメッセージを挿入します。 |
|
ジョブに含まれる項目を制限するためのフィルタを提供します。 |
|
指定したジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される再マッピングを指定します。 |
|
指定されたジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される変換を指定します。 |
|
データ・ポンプAPIを使用する新規ジョブを宣言します。戻されるハンドルは、その他すべてのプロシージャをコールするパラメータとして使用されます( |
|
ジョブ内の並列度を調整します。 |
|
ジョブ処理オプションを指定します。 |
|
ジョブの実行を開始または再開します。 |
|
ジョブを終了しますが、オプションでジョブの状態を保存します。 |
|
正常に完了するか、またはなんらかの理由で停止するまでジョブを実行します。 |
このプロシージャは、エクスポート、インポートまたはSQL_FILEの各操作に使用されるダンプ・ファイル・セットにファイルを追加します。あるいは、SQL_FILE操作に使用されるログ・ファイルまたは出力ファイルを指定します。
構文
DBMS_DATAPUMP.ADD_FILE ( handle IN NUMBER, filename IN VARCHAR2, directory IN VARCHAR2, filesize IN VARCHAR2 DEFAULT NULL, filetype IN NUMBER DEFAULT DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE, reusefile IN NUMBER DEFAULT NULL);
パラメータ
表47-2 ADD_FILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ジョブのハンドル。現行のセッションは、 |
|
追加されるファイルの名前。 |
|
|
|
追加されるダンプ・ファイルのサイズ。バイト数、キロバイト数(Kを後に付ける場合)、メガバイト数(Mを後に付ける場合)、ギガバイト数(Gを後に付ける場合)、テラバイト数(Tを後に付ける場合)で指定できます。エクスポート操作では、指定したバイト数のみがファイルに書き込まれます。一杯になった時点でファイルは閉じます。指定したバイト数を書き込む領域がデバイスに不足している場合、エクスポート操作は失敗しますが、また再開できます。サイズを指定しない場合、 |
|
追加されるファイルのタイプ。有効な値は次のとおりで、
|
|
0(ゼロ)を指定すると、すでにファイルが存在する場合にエラーになります。1を指定すると、既存のファイルは上書きされます。NULLを指定すると、そのファイル・タイプに対するデフォルトのアクションが適用されます(つまり、ダンプ・ファイルは上書きされません)。このパラメータでは、ダンプ・ファイルに対してNULL以外の値を指定する必要があります。 |
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_ARGVAL
。無効な値が入力パラメータに指定されました。
INVALID_STATE
。ジョブが再定義中であるか、ジョブがインポート・ジョブまたはSQL_FILEジョブの定義中の状態を過ぎている、あるいはジョブがLOGファイルおよびSQLファイルの定義中の状態を過ぎています。
INVALID_OPERATION
。ダンプ・ファイルがネットワーク・インポート操作またはESTIMATE_ONLY
エクスポート操作に指定されています。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
データ・ポンプ・ジョブにファイルを追加します。ジョブには3種類のファイルを追加でき、ダンプ・ファイルには移動中のデータが格納され、ログ・ファイルには操作に関連するメッセージが記録され、SQLファイルにはSQL_FILE操作の出力が記録されます。ログ・ファイルおよびSQLファイルは、既存のファイルを上書きします。ダンプ・ファイルが、既存のファイルを上書きすることはありません。そのかわりに、エラーが発生します。
インポート操作およびSQL_FILE操作では、ジョブの定義フェーズの間にすべてのダンプ・ファイルを指定する必要があります。エクスポート操作では、いつでもダンプ・ファイルを追加できます。たとえば、エクスポート中にファイル領域が少なくなっていることが判明した場合は、このAPIを使用してさらにダンプ・ファイルを追加できます。指定したダンプ・ファイルがすでにエクスポート操作用に存在し、reusefile
が1に設定されていない場合は、エラーが戻されます。
エクスポート操作では、並列度設定を、ダンプ・ファイル・セット内のダンプ・ファイルの数以下にする必要があります。十分な数のダンプ・ファイルが存在しない場合、ジョブはSET_PARALLEL
プロシージャを使用して指定された値まで並列度を最大化することができません。
インポート操作でも、並列度設定は、ダンプ・ファイル・セット内のダンプ・ファイルの数以下にする必要があります。十分な数のダンプ・ファイルが存在しない場合、複数の実行スレッドが1つのダンプ・ファイルにアクセスを試みるため、パフォーマンスが最適になりません。
ファイル名に置換変数(%U
)が含まれる場合は、ADD_FILE
への1つのコールで複数のダンプ・ファイルを指定できます。エクスポート操作では、必要に応じて新規ダンプ・ファイルが作成されます。SET_PARALLEL
の現行値で指定されたすべてのプロセスをアクティブにするのに十分な数のダンプ・ファイルが作成されます。1つのダンプ・ファイルが一杯になると、そのダンプ・ファイルは閉じられ、そのかわりとなる新しいダンプ・ファイルが(新しく生成された名前で)作成されます。置換変数を含む複数のADD_FILE
がジョブ内の複数のダンプ・ファイルに指定されている場合は、ラウンド・ロビン法でダンプ・ファイルを生成するために使用されます。たとえば、並列度が6のジョブに対してexpa%U
、expb%U
およびexpc%U
を指定した場合、作成される初期ダンプ・ファイルはexpa01
、expb01
、expc01
、expa02
、expb02
、expc02
のようになります。
ダンプ・ファイル指定(expa%U
、expb%U
およびexpc%U
)が指定されている場合、インポート操作またはSQL_FILE操作は、ダンプ・ファイル(expa01
、expb01
およびexpc01
)を開こうとすると開始されます。マスター表を含むダンプ・ファイルがこのセット内に見つからない場合は、置換変数を増加させてダンプ・ファイルの検索対象が拡大され、新規ファイル名(expa02
、expb02
、expc02
など)が検索されます。データ・ポンプAPIでは、マスター表を含むダンプ・ファイルが見つかるまで検索対象を拡大し続けます。データ・ポンプAPIは、何度繰り返してもダンプ・ファイルが存在しないか、または現行のダンプ・セットの一部ではないと判断した場合、データ・ポンプAPIは、エラーとなったダンプ・ファイル指定について置換変数の増加を停止します。マスター表が見つかった場合は、このマスター表を使用して、ダンプ・ファイル・セット内のすべてのダンプ・ファイルがいつ検出されたかを確認します。
このファンクションは、以前に作成されたジョブにアクセスします。
構文
DBMS_DATAPUMP.ATTACH( job_name IN VARCHAR2 DEFAULT NULL, job_owner IN VARCHAR2 DEFAULT NULL) RETURN NUMBER;
パラメータ
表47-3 ATTACHファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ジョブの名前。デフォルトは、 |
|
最初にジョブを開始したユーザー。NULLの場合、値はデフォルトで現行セッションの所有者に設定されます。ジョブ所有者を自分以外に指定するには、 |
戻り値
ジョブに対する曖昧なハンドル。このハンドルを入力として使用できるプロシージャは、ADD_FILE
、DATA_FILTER
、DETACH
、GET_STATUS
、LOG_ENTRY
、METADATA_FILTER
、METADATA_REMAP
、METADATA_TRANSFORM
、SET_PARALLEL
、SET_PARAMETER,START_JOB
、STOP_JOB
およびWAIT_FOR_JOB
です。
例外
INVALID_ARGVAL
。無効な値が入力パラメータに指定されました。
OBJECT_NOT_FOUND
。指定したジョブが存在しないか、または他のスキーマが所有するジョブを指定したが、指定を行ったユーザーにDATAPUMP_EXP_FULL_DATABASE
またはDATAPUMP_IMP_FULL_DATABASE
ロールがありません。
SUCCESS_WITH_INFO
。このファンクションは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
ジョブが停止状態の場合、そのジョブはアイドル状態に置かれます。ATTACH
がいったん成功すると、ジョブの進捗の監視や、ジョブの制御ができます。GET_STATUS
プロシージャによって戻されたKU$_STATUS_WIP
メッセージおよびKU$_STATUS_JOB_ERROR
メッセージのストリームは、クライアントが連結した時間の前後に開始される新しい連結ジョブに戻されます。クライアントがジョブに連結する前に処理されたステータス・メッセージおよびエラー・メッセージは繰り返されません。
ジョブへの2回目の連結は、別のセッションから行う必要があります。
ATTACH
が失敗した場合は、その後のGET_STATUS
へのコールでNULLハンドルを使用して、失敗に関する詳細情報を入手します。
このプロシージャは、取得する行に制限を指定します。
構文
DBMS_DATAPUMP.DATA_FILTER ( handle IN NUMBER, name IN VARCHAR2, value IN NUMBER, table_name IN VARCHAR2 DEFAULT NULL, schema_name IN VARCHAR2 DEFAULT NULL); DBMS_DATAPUMP.DATA_FILTER( handle IN NUMBER, name IN VARCHAR2, value IN VARCHAR2, table_name IN VARCHAR2 DEFAULT NULL, schema_name IN VARCHAR2 DEFAULT NULL); DBMS_DATAPUMP.DATA_FILTER( handle IN NUMBER, name IN VARCHAR2, value IN CLOB, table_name IN VARCHAR2 DEFAULT NULL, schema_name IN VARCHAR2 DEFAULT NULL);
例外
INVALID_ARGVAL
。このメッセージに関しては、次のような複数の理由があります。
不適切なフィルタ名が指定されました。
TRANSPORTABLE
モードのため、データ・フィルタがサポートされません。
指定した表が存在しません。
このフィルタは、指定値schema_name
およびtable_name
に対してすでに設定されています。
INVALID_STATE
。ジョブが定義中の状態ではないときに、ユーザーがDATA_FILTER
をコールしました。
INCONSISTENT_ARGS
。value
パラメータが存在しないか、そのデータ・タイプがフィルタ名と一致しません。あるいはスキーマ名が指定されましたが、表の名前が指定されていません。
PRIVILEGE_ERROR
。スキーマ名が指定されましたが、ユーザーにはDATAPUMP_EXP_FULL_DATABASE
ロールまたはDATAPUMP_IMP_FULL_DATABASE
ロールがありませんでした。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
それぞれのデータ・フィルタは、各表につき1回ずつ(たとえば、1つの表に複数のSUBQUERY
フィルタは指定できません)あるいは各ジョブにつき1回ずつのみ表示できます。同じ名前を使用する異なるフィルタが、特定の表とジョブ全体の両方に適用された場合、特定の表に指定されたフィルタ・パラメータが優先されます。
INCLUDE_ROWS
フィルタの例外を除き、データ・フィルタは、ネストした表が含まれる表やドメイン索引が定義された表ではサポートされません。データ・フィルタは、トランスポータブル表領域モードで実行されるジョブではサポートされません。
表47-5に、選択可能なデータ・フィルタを示します。
表47-5 データ・フィルタ
名前 | データ・タイプ | フィルタをサポートする操作 | 説明 |
---|---|---|---|
|
|
エクスポート、インポート |
0(ゼロ)以外に設定すると、このフィルタは、指定された表のユーザー・データがジョブに含まれるように指定します。デフォルトは1です。 |
|
|
エクスポート、インポート |
エクスポート・ジョブでは、これらのフィルタによって、データベースからアンロードされるパーティションを指定します。インポート・ジョブでは、データベースにロードされる表パーティションを指定します。パーティション名が設定式に準拠する( パーティション名を囲む二重引用符は、パーティション名に特殊文字が含まれる場合のみ必要です。
デフォルトでは、すべてのパーティションが処理されます。 |
|
|
エクスポート、インポート |
エクスポート・ジョブの場合は、移動するデータ・ブロックをサンプリングする割合を指定します。このフィルタを使用すると、大きい表のサブセットをテスト用に抽出できます。 |
|
|
エクスポート、インポート |
表の |
このプロシージャは、データベースからエクスポートされるとき、またはデータベースにインポートされるときにその列データに適用される変換を指定します。
構文
DBMS_DATAPUMP.DATA_REMAP( handle IN NUMBER, name IN VARCHAR2, table_name IN VARCHAR2, column IN VARCHAR2, remap_function IN VARCHAR2), schema IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-6 DATA_REMAPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
現行ジョブのハンドル。現行のセッションは、 |
|
再マップの名前。 |
|
再マップ対象の列が含まれる表。 |
|
再マップ対象の列の名前。 |
|
名前の値によって意味が異なります。使用可能な名前については、表47-7を参照してください。 |
|
再マップ対象の列が含まれるスキーマ。NULLの場合、指定した表が含まれるジョブに移動したすべてのスキーマに再マップが適用されます。 |
例外
INVALID_ARGVAL
。トランスポータブル・モード(データの変更がサポートされません)か、またはジョブにデータが含まれないように指定されています。無効な再マップ名が指定されました。
INVALID_OPERATION
。データの再マップは、エクスポート操作およびインポート操作でのみサポートされています。
INVALID_STATE
。ジョブの開始後に、DATA_REMAP
プロシージャがコールされました(つまり、ジョブは定義中の状態ではありませんでした)。
NO_SUCH_JOB
。ジョブ・ハンドルが有効ではありません。
使用上の注意
DATA_REMAP
プロシージャは、エクスポート操作およびインポート操作のみでサポートされています。これを使用すると、エクスポートまたはインポートするユーザー・データを操作できます。再マップのname
によって、実行される再マップ操作が決定されます。
エクスポート操作で、ダンプ・ファイルからクレジット・カード番号などの機密データが簡単に特定されないようにデータの再マップを定義し、残りのデータは読み取ることができるようにそのままの状態にしておく場合があります。これを実現するには、再マップによって、一意の各ソース番号を個別に生成された番号に変換する必要があります。ダンプ・ファイル・セットで一貫したマッピングとなるように、クレジット・カード番号が含まれるすべての列に対し、同じファンクションをコールする必要があります。
インポート操作で、競合する主キーを含む既存の表にデータがマージされるときに、主キーを設定しなおすためにデータの再マップを定義する場合があります。再マップの一貫性を保つために、主キーを定義または参照するすべての列に対して、単一の再マップ・ファンクションを指定する必要があります。
注意: コールしたファンクションでパッケージ状態の変数が使用される場合、すべての表で一貫した再マップが実行されるように、SET_PARALLELの値が1の状態でジョブを実行し、再起動操作を実行しないようにする必要があります。 |
表47-7に、データの再マップ・ファンクションを示します。
このプロシージャは、ユーザーがこれ以上ハンドルを使用しないことを指定します。
このプロシージャは、指定したダンプ・ファイルの情報を取り出します。
構文
DBMS_DATAPUMP.GET_DUMPFILE_INFO( filename IN VARCHAR2, directory IN VARCHAR2, info_table OUT ku$_dumpfile_info, filetype OUT NUMBER);
例外
GET_DUMPFILE_INFO
プロシージャは、データ・ポンプ・ジョブのコンテキストの外部で動作するユーティリティ・ルーチンです。このプロシージャでは、データ・ポンプ・ジョブに関連付けられているプロシージャとは異なる方法で例外が処理されます。完全な例外スタックを直接使用できますが、この場合、GET_STATUS
プロシージャをコールして詳細情報を取り出す必要はありません。このプロシージャの例外は、次のとおりです。
NO_DUMPFILE_INFO
。指定したダンプ・ファイル情報を取り出せません。
使用上の注意
GET_DUMPFILE_INFO
プロシージャを使用すると、特定のファイルの情報を要求できます。ファイルがいずれのタイプのダンプ・ファイルとしても認識されない場合は、filetypeに0(ゼロ)が戻され、ダンプ・ファイルのinfo_tableは空になります。
filetype値が1の場合は、データ・ポンプ・ダンプ・ファイルを示します。filetype値が2の場合は、元のエクスポート・ダンプ・ファイルを示します。filetype値が3の場合は、外部表のダンプ・ファイルを示します。いずれの場合も、ダンプ・ファイルのinfo_tableには、ダンプ・ファイル・ヘッダーから取り出された情報が格納されます。この表の行は、項目コードと値のペアで構成されていて、項目コードは情報のタイプを示し、値列は、実際のデータ(場合によっては文字列に変換される)を含むVARCHAR2
になります。表を定義する方法は、次のとおりです。
CREATE TYPE sys.ku$_dumpfile_item IS OBJECT ( item_code NUMBER, -- Identifies header item value VARCHAR2(2048) -- Text string value)/ GRANT EXECUTE ON sys.ku$_dumpfile_item TO PUBLIC; CREATE OR REPLACE PUBLIC SYNONYM ku$_dumpfile_item FOR sys.ku$_dumpfile_item; CREATE TYPE sys.ku$_dumpfile_info AS TABLE OF sys.ku$_dumpfile_item/ GRANT EXECUTE ON sys.ku$_dumpfile_info TO PUBLIC; CREATE OR REPLACE PUBLIC SYNONYM ku$_dumpfile_info FOR sys.ku$_dumpfile_info;
項目コードは、必要に応じて詳細情報を提供できるように簡単に拡張できます。表47-10に、現在定義されている項目コードを示します(パッケージ名のDBMS_DATAPUMP
.が前に付加されています)。これらの項目コードについて、次のことを念頭に置いてください。
特に明記しないかぎり、すべての項目コードはOracle Data Pumpと外部表のダンプ・ファイル(filetype1と3)でのみ戻されます。
特に明記しないかぎり、すべての項目コードはOracle Database 10gリリース2(10.2)以降で使用可能です。
表47-10 DBMS_DATAPUMP.GET_DUMPFILE_INFOプロシージャの項目コード
項目コード | 説明 |
---|---|
|
ダンプ・ファイルの内部ファイル・バージョン。 |
|
ダンプ・ファイルにデータ・ポンプのマスター表が存在する場合、この項目コードの値は1になります。存在しない場合は、値は0になります。filetype1でのみ戻されます。 |
|
ダンプ・ファイルを生成したデータ・ポンプ・エクスポート・ジョブまたは外部表のアンロード・ジョブに割り当てられた一意の識別子。複数ファイル・ダンプ・セットの場合、セット内の各ファイルで、この項目コードは同じ値になります。 |
|
ダンプ・ファイルに割り当てられている数値識別子。複数ファイル・ダンプ・セットの各ダンプ・ファイルには、そのダンプ・セット内でのみ一意である固有の識別子が割り当てられます。 |
|
ダンプ・ファイルの作成時に、ソース・システムで使用していたキャラクタ・セットを表す数値コード。 すべてのfiletypeで戻されます。 |
|
ダンプ・ファイルの作成日時。 |
|
内部フラグ値。 |
|
ダンプ・ファイルを作成したエクスポート・ジョブに割り当てられた名前。 filetype1でのみ戻されます。 |
|
ダンプ・ファイルが作成されたソース・システムのオペレーティング・システム名。 |
|
ダンプ・ファイルが作成されたソース・システムのインスタンス名。 |
|
エクスポート・ダンプ・ファイルが作成されたソース・システムのキャラクタ・セットに対応する言語名。 |
|
ダンプ・ファイルのバイト単位のブロック・サイズ。 |
|
ダンプ・ファイルの作成時にダイレクト・パス・モードを使用した場合、この項目コードの値は1になります。使用していない場合は、値は0になります。 filetype2でのみ戻されます。 |
|
システム・メタデータが圧縮形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。圧縮形式で格納されていない場合は、値は0になります。 filetype1でのみ戻されます。 |
|
ダンプ・ファイルの作成に使用するデータベース・ジョブ・バージョン。 すべてのfiletypeで戻されます。 |
|
データ・ポンプのマスター表は複数の行断片に分割して、1ファイル当たり1行断片ずつ、セット内の複数のダンプ・ファイルに書き込めます。この項目コードで戻される値は、マスター表の行断片が保存されているダンプ・ファイルの数を示します。この項目コードの値は、項目コード filetype1でのみ戻されます。 Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。 |
|
データ・ポンプのマスター表は複数の行断片に分割して、1ファイル当たり1行断片ずつ、セット内の複数のダンプ・ファイルに書き込めます。この項目コードで戻される値は、ダンプ・ファイル内にマスター表のどの行断片が含まれているかを示します。この項目コードの値は、項目コード filetype1でのみ戻されます。 Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。 |
|
表データが圧縮形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。圧縮形式で格納されていない場合は、値は0になります。 Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。 |
|
システム・メタデータが暗号化形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。暗号化形式で格納されていない場合は、値は0になります。 filetype1でのみ戻されます。 Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。 |
|
表データが暗号化形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。暗号化形式で格納されていない場合は、値は0になります。 Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。 |
|
暗号化された列データが暗号化形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。暗号化形式で格納されていない場合は、値は0になります。 filetype1でのみ戻されます。 Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。 |
|
この暗号化モードは、ダンプ・ファイルに書き込まれるデータを暗号化するためにユーザー指定のパスワードやOracle Encryption Walletが使用されたかどうかを示します。この項目コードの戻り値は、次のとおりです。
Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。 |
|
システム・メタデータまたは表データ(あるいはその両方)を、圧縮形式でダンプ・ファイルに書き込むときに使用される圧縮アルゴリズム。この項目コードの戻り値は、次のとおりです。
Oracle Database 12cリリース1(12.1)以降でのみ使用可能です。 |
このプロシージャは、ジョブのステータスを監視、あるいはジョブの完了を待機します。
構文
DBMS_DATAPUMP.GET_STATUS( handle IN NUMBER, mask IN BINARY_INTEGER, timeout IN NUMBER DEFAULT NULL, job_state OUT VARCHAR2, status OUT ku$_Status);
パラメータ
表47-11 GET_STATUSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ジョブのハンドル。現行のセッションは、 |
|
次の4種類の中でどの情報が戻るかを示すビット・マスク。
それぞれのステータスに数値が設定されています。値を違う組合せで一緒に追加することにより、複数の種類の情報を要求できます。「データ構造: オブジェクト・タイプ」を参照してください。 |
|
ユーザーに情報を戻すまでに待機する最大秒数。値0(ゼロ)は、即座に戻すことを要求します。値-1は、無限に待機することを要求します。 |
|
ジョブの現在の状態。ジョブの状態のみが必要な場合は、 |
|
ku$_Statusが戻されます。ku$_Statusマスクは、含まれている情報の種類を示します。 |
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_VALUE
。マスクあるいはタイムアウトに無効な値が含まれています。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
GET_STATUS
プロシージャは、進行中のジョブの進捗を監視し、エラー通知を受信するために使用します。maskパラメータを使用して、様々な情報を要求できます。KU$_STATUS_JOB_DESC
およびKU$_STATUS_JOB_STATUS
の値は同期情報として分類されますが、これは、これらの情報がマスター表に常駐するためです。KU$_STATUS_WIP
およびKU$_STATUS_JOB_ERROR
の値は非同期情報として分類されますが、これはこれらのタイプの情報を表現するメッセージが、いつでもデータ・ポンプ・アーキテクチャ内の各種レイヤーによって生成できるからです。
同期情報のみ
が要求された場合、インタフェースはtimeoutパラメータを無視し、単に要求された情報を戻します。
非同期情報が要求された場合、インタフェースはタイムアウトの最大
秒数を待機してからクライアントに戻します。要求された非同期情報タイプのメッセージが受信された場合、そのコールはタイムアウトの秒数が尽きる前に完了します。同期情報も要求されていた場合、その情報はプロシージャが戻るたびに戻されます。
GET_STATUS
によって戻されたjob_state
が終了ジョブを示していない場合にも、ジョブは、GET_STATUS
への次のコールの前に終了する可能性があります。この場合、INVALID_HANDLE
例外が発生します。また、GET_STATUS
へのコール中にこのジョブが終了する可能性もあり、この場合はNO_SUCH_JOB
例外が発生します。コール元は、これらの場合に対処する準備をしておく必要があります。
エラー処理
GET_STATUS
プロシージャを使用して処理する必要があるエラー・シナリオには次の2種類があります。
他のプロシージャ・コールの結果として起こるエラー: たとえばSET_PARAMETER
プロシージャによってINCONSISTENT_ARGS
例外が発生する可能性があります。クライアントはただちに、mask=8
(エラー)およびtimeout=0
を設定してGET_STATUS
をコールする必要があります。戻されるku$_Status.errorには、非一貫性をより詳細に説明するku$_LogEntryが含まれます。
クライアントに対して非同期なイベントの結果として発生するエラー: たとえば、表を作成しようとしたときに表示される「表は
すでに
存在しています
」などがあります。ku$_Status.error
には、エラーに関するコンテキストを追加した処理中の全レイヤーから取得されたすべてのエラー行が、ku$_LogEntry
に適切な順序で並べられて保存されます。
ジョブが開始すると、通常、クライアントの主要な処理ループは、KU$_STATUS_WIP
メッセージおよびKU$_STATUS_JOB_ERROR
メッセージについて無限タイムアウト(-1)のリスニングを設定したGET_STATUS
へのコールで構成されます。ステータスが要求された場合は、その要求の中にJOB_STATUS
情報も含まれます。
ku$_Statusを解釈するときは、次のガイドラインに従う必要があります。
ku$_Status.ku$_JobStatus.percent_done
は、ジョブ内で処理されたデータ量のみが対象となります。メタデータは計算で考慮されません。次の式を使用して決定されます。
エクスポートまたはネットワーク・インポート: (bytes_processed/estimated_bytes) * 100
インポート: (bytes_processed/total_expected_bytes) * 100
SQL_FILEあるいは見積りのみのエクスポート: 完了していない場合は0.00
、完了している場合は100
.00
QUERY
データ・フィルタおよびPARTITION_EXPR
データ・フィルタの効果は、percent_done
の計算には考慮されません。
戻されるステータスは、コール元によって、さらにわかりやすいステータスに変換させることができます。たとえば、完了した割合が0(ゼロ)以外の場合の見積り完了時間は、次の式で求められます。
((SYSDATE - start time) / ku$_Status.ku$_JobStatus.percent_done) * 100
コール元は、ku$_Status.ku$_JobStatus.percent_done
を使用して、ジョブが完了したかどうかを判断できません。コール元は、job_state
で検出されたジョブの状態のみを参照して、この判断を行うことができます。
このプロシージャは、ログ・ファイルにメッセージを挿入します。
構文
DBMS_DATAPUMP.LOG_ENTRY( handle IN NUMBER, message IN VARCHAR2 log_file_only IN NUMBER DEFAULT 0);
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
このメッセージはログ・ファイルに追加されます。log_file_only
が0(ゼロ、デフォルト値)の場合は、GET_STATUS
プロシージャにより、ジョブに連結しているすべてのユーザーに対しても、KU$_STATUS_WIP
メッセージとしてブロードキャストされます。
LOG_ENTRY
プロシージャを使用すると、アプリケーションでログ・ストリームを調整して、アプリケーションで提供される形式と一致させることができます。たとえば、コマンドライン・インタフェースでは、ユーザーが定義したINCLUDE
パラメータおよびEXCLUDE
パラメータがサポートされています。これらの値を、基礎となるMETADATA_FILTER
プロシージャへのコールとして指定すると、ユーザーを混乱させることになります。そこでかわりに、コマンドライン・インタフェースでは、INCLUDE
パラメータおよびEXCLUDE
パラメータの設定を説明するテキストをログに入力します。
LOG_ENTRY
からログ・ストリームに入力された行には、";;;
"という接頭辞が付きます。
このプロシージャは、ジョブに含まれる項目を制限するためのフィルタを提供します。
構文
DBMS_DATAPUMP.METADATA_FILTER( handle IN NUMBER, name IN VARCHAR2, value IN VARCHAR2, object_path IN VARCHAR2 DEFAULT NULL); DBMS_DATAPUMP.METADATA_FILTER( handle IN NUMBER, name IN VARCHAR2, value IN CLOB, object_path IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-13 METADATA_FILTERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
フィルタ名。使用可能なフィルタの説明は、表47-14を参照してください。 |
|
フィルタ値。 |
|
フィルタが適用されるオブジェクト・パス。デフォルトを使用した場合、フィルタは適用可能なすべてのオブジェクトに適用されます。各モードでサポートされるオブジェクト・パスのリストは、 インポート操作では、オブジェクト・パスはインポートに使用されるモードではなく、ダンプ・ファイルの作成に使用されるモードを参照します。 |
表47-14では、METADATA_FILTER
プロシージャで使用可能なフィルタの名前、オブジェクト・タイプ、および意味について説明します。すべてのフィルタのデータ・タイプはテキスト式です。すべての操作ですべてのフィルタがサポートされています。
表47-14 METADATA_FILTERプロシージャによって提供されるフィルタ
名前 | オブジェクト・タイプ | 意味 |
---|---|---|
|
名前付きオブジェクト |
ジョブに含めるオブジェクト名を定義します。オブジェクト・タイプのパラメータを使用して、フィルタの適用を特定のオブジェクト・タイプに制限します。 表モードでは、処理対象の表を指定します。 |
|
スキーマ・オブジェクト |
ジョブの対象は、式に準拠した書式のスキーマ名を持つオブジェクトに制限されます。 表モードでは、1つの スキーマ・モードでは、処理対象のユーザーを指定します。 |
|
|
ジョブの対象は、式に準拠した書式の名前を持つ表領域に保存されたオブジェクトに制限されます。 表領域モードでは、処理対象の表領域を指定します。オブジェクトのパーティションが表領域に保存されている場合は、オブジェクト全体がジョブに追加されます。 トランスポータブル・モードでは、処理対象の表領域を指定します。表に表領域セット内のパーティションが1つある場合、この表領域セットにはすべてのパーティションが存在する必要があります。索引のすべてのパーティションが表領域セットに含まれる場合を除き、索引は表領域セットには含まれません。ドメイン索引のすべてのセカンダリ・オブジェクトが表領域セットに含まれる場合を除き、ドメイン索引は表領域セットには含まれません。 |
|
すべて |
ジョブに含めるオブジェクト・パスあるいはジョブから除外するオブジェクト・パスを定義します。これらのフィルタを使用して、データベースまたはダンプ・ファイル・セットから特定のオブジェクト・タイプのみを選択します。条件を満たすパスを持つオブジェクトが、操作に含まれる( |
|
|
表がエクスポートされないことを指定します。 |
|
|
表としてエクスポートされる、次のような形式のカンマ区切りのビュー・リストです。 [schema_name.]view_name[:table_name] このフィルタは、複数の値を追加するときに、あるいはリストに値を追加するたびに何回でも呼び出せます。リスト内のすべてのビューは、表としてエクスポートされます。 |
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_ARGVAL
。この例外は、次のいずれかの状態を示します。
INCLUDE_PATH_EXPR
フィルタまたはEXCLUDE_PATH_EXPR
フィルタに対してobject_path
が指定されました。
指定されたobject_path
は、現行のモードではサポートされません。
SCHEMA_EXPR
フィルタにより、表モードのジョブに対して複数のスキーマが指定されました。
INVALID_STATE
。ジョブが定義中の状態を過ぎた後で、METADATA_FILTER
プロシージャをコールしました。
INCONSISTENT_ARGS
。フィルタの値のデータ・タイプが間違っているか、値がありません。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
メタデータ・フィルタは、データ・ポンプ操作に含めるか、データ・ポンプ操作から除外するオブジェクトの集合を特定します。EXCLUDE_PATH_EXPR
フィルタおよびINCLUDE_PATH_EXPR
フィルタ以外のフィルタで特定されたオブジェクトに依存するオブジェクトは、特定されたオブジェクトとともに処理されます。たとえば、フィルタにより索引が操作対象に含められる場合、このフィルタによってその索引に対する権限付与も操作対象となります。同様に、フィルタによって表が除外された場合、その表に関する索引、制約、権限付与およびトリガーもフィルタによって除外されます。
フィルタごとに2つのバージョン(SQL式およびリスト)がサポートされています。SQL式バージョンのフィルタでは、オブジェクトを柔軟に指定できます(たとえば、LIKEを使用するとワイルドカードを使用できます)。式フィルタの名前は、次のとおりです。
NAME_EXPR
SCHEMA_EXPR
TABLESPACE_EXPR
INCLUDE_PATH_EXPR
EXCLUDE_PATH_EXPR
リスト・バージョンのフィルタでは、フィルタを最大限に検証できます。フィルタ内のいずれかの要素がソース・データベース内にない場合(エクスポートおよびネットワークベースのジョブの場合)、またはダンプ・ファイルにない場合(ファイルベースのインポートおよびSQLFILEジョブの場合)は、エラーがレポートされます。リスト・フィルタの名前は、次のとおりです。
NAME_LIST
SCHEMA_LIST
TABLESPACE_LIST
INCLUDE_PATH_LIST
EXCLUDE_PATH_LIST
フィルタを使用することにより、ジョブに含まれる項目を制限できます。たとえば、パッケージ仕様部またはパッケージ本体を除いた全体のエクスポートを要求できます。
1つのオブジェクト・タイプに複数のフィルタが指定された場合は、暗黙的にこれらのフィルタについてAND処理が行われます(つまり、ジョブに参加するオブジェクトは、そのオブジェクト・タイプに適用されるすべてのフィルタを通過する必要があります)。
1つのジョブ内には、同じフィルタ名を複数回指定できます。たとえば、表モードのエクスポートについてNAME_EXPR as '!=''EMP'''
とNAME_EXPR as '!=''DEPT'''
を指定すると、EMP
およびDEPT
以外のすべての表が含まれるファイル・セットが作成されます。
このプロシージャは、指定したジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される再マッピングを指定します。
構文
DBMS_DATAPUMP.METADATA_REMAP ( handle IN NUMBER, name IN VARCHAR2, old_value IN VARCHAR2, value IN VARCHAR2, object_type IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-15 METADATA_REMAPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
現行ジョブのハンドル。現行のセッションは、 |
|
再マップの名前。使用可能な再マップについては、表47-16を参照してください。 |
|
|
|
再マップに使用するパラメータの値。 |
|
再マップが適用されるオブジェクト・タイプを指定します。各モードでサポートされるオブジェクト・タイプのリストは、 デフォルトでは、再マップはジョブ内の利用可能なすべてのオブジェクトに適用されます。 |
表47-16に、METADATA_REMAP
プロシージャによって提供される再マップを示します。
表47-16 METADATA_REMAPプロシージャによって提供される再マップ
名前 | データ・タイプ | オブジェクト・タイプ | 意味 |
---|---|---|---|
|
|
スキーマ・オブジェクト |
権限を付与されているユーザーは、スキーマの再マップを無制限に実行できます。 権限を付与されていないユーザーは、スキーマが再マップのターゲット・スキーマの場合にのみそれらのスキーマを再マップできます。 たとえば、 |
|
|
|
|
|
|
|
|
|
|
|
|
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_ARGVAL
。このメッセージは、次のいずれかの状態を示します。
このジョブのモードには、指定されたobject_type
が含まれていません。
この再マップは、指定されたold_value
およびobject_type
についてすでに指定されています。
INVALID_OPERATION
。再マップは、SQL_FILE操作およびインポート操作でのみサポートされています。このジョブの操作はエクスポートであるため、メタデータの再マップはサポートされません。
INVALID_STATE
。ジョブの開始後に、ユーザーがMETADATA_REMAP
をコールしました(つまり、ジョブは定義中の状態ではありませんでした)。
INCONSISTENT_ARGS
。value
の値が指定されていないか、再マップに適切なデータ・タイプではありません。
PRIVILEGE_ERROR
。権限を付与されていないユーザーが、別のユーザーのスキーマに対してREMAP_SCHEMA
またはREMAP_DATAFILE
を実行しようとしました。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
METADATA_REMAP
プロシージャは、インポート操作およびSQL_FILE操作のみでサポートされています。このプロシージャを使用すると、あらかじめ共通定義された再マップを、転送機能の一部としてオブジェクトの定義に適用できます。このプロシージャ内でサポートされない再マップが必要な場合は、先にSQL_FILE操作を実行して、該当するダンプ・ファイル・セットに対応するSQLスクリプトを作成します。DDLを直接編集してから実行することにより、必要な再マッピングを作成できます。
データ・ポンプAPIの変換とは、DBMS_METADATA
.SET_TRANSFORM_PARAMETER
APIによって実装される再マップのサブセットです。1つのジョブには複数の再マップを定義できます。ただし、個々の再マップの定義内容は、パラメータごとに一意である必要があります。つまり、競合したり重複する2つの再マップを指定することはできません。
このプロシージャは、指定されたジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される変換を指定します。
構文
DBMS_DATAPUMP.METADATA_TRANSFORM ( handle IN NUMBER, name IN VARCHAR2, value IN VARCHAR2, object_type IN VARCHAR2 DEFAULT NULL);
DBMS_DATAPUMP.METADATA_TRANSFORM ( handle IN NUMBER, name IN VARCHAR2, value IN NUMBER, object_type IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-17 METADATA_TRANSFORMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
現行ジョブのハンドル。現行のセッションは、 |
|
変換名。使用可能な変換については、表47-18を参照してください。 |
|
変換に使用するパラメータの値。 |
|
変換が適用されるオブジェクト・タイプを指定します。各モードでサポートされるオブジェクト・タイプのリストは、 デフォルトでは、変換はジョブ内の利用可能なすべてのオブジェクトに適用されます。 |
表47-18に、METADATA_TRANSFORM
プロシージャによって提供される変換を示します。
表47-18 METADATA_TRANFORMプロシージャによって提供される変換
名前 | データ・タイプ | オブジェクト・タイプ | 意味 |
---|---|---|---|
|
|
|
インポート時に、指定されたオブジェクト・タイプのアーカイブ・ログを無効にするかどうかを指定します。 ゼロ( ゼロ以外( 注意: データベースが |
|
|
|
インポートでゼロ以外の値( インポートでゼロの値( 注意: |
|
|
|
この変換を指定した場合、データ・ポンプでは、DDLにIM句を含む、インポート対象のすべてのオブジェクトに対して、文字列の内容をIM句として使用します。この変換は、ダンプ・ファイルのオブジェクトのIM句を優先する必要がある場合に有効です。 注意: |
|
|
|
LOBセグメント用の記憶域タイプを指定します。オプションは次のとおりです。
この変換を指定すると、マテリアライズド・ビューを格納する表を含む、ジョブ内のすべての表のLOB記憶域が変更されます。 |
|
|
|
0(ゼロ)の場合は、タイプまたは表の作成時に、エクスポートしたOIDの割当てを禁止します。この場合、新しいOIDが割り当てられます。 オブジェクト表でこの変換を使用すると、この表を指すREF列でブレークが発生します。 デフォルトは1です。 |
|
|
|
エクステント割当ておよびデータファイルのサイズの変更に使用する百分率の乗数を指定します。大きい表領域をテスト用に縮小する場合に使用します。 デフォルトは100です。 |
|
|
|
0(ゼロ)以外( デフォルトは1です。 |
|
|
|
0(ゼロ)以外( 値が デフォルトは0(ゼロ)以外( |
|
|
|
デフォルトは0(ゼロ)以外( |
|
|
|
表の作成時に使用する表の圧縮句( 表の圧縮句を省略する場合は、 この変換を指定すると、マテリアライズド・ビューを格納する表を含む、ジョブ内のすべての表の圧縮タイプが変更されます。 表の圧縮オプションと構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_ARGVAL
。このメッセージは、次のいずれかの状態を示します。
トランスポータブル・モードのため、変換はサポートされません。
このジョブのモードには、指定されたobject_type
が含まれていません。
この変換は、指定されたvalue
およびobject_type
についてすでに指定されています。
INVALID_OPERATION
。変換は、SQL_FILE操作およびインポート操作でのみサポートされています。このジョブの操作はエクスポートであるため、メタデータの変換はサポートされません。
INVALID_STATE
。ジョブの開始後に、ユーザーがMETADATA_TRANSFORM
をコールしました(つまり、ジョブは定義中の状態ではありませんでした)。
INCONSISTENT_ARGS
。value
の値が指定されていないか、変換に適切なデータ・タイプではありません。
PRIVILEGE_ERROR
。権限を付与されていないユーザーが、別のユーザーのスキーマに対してREMAP_SCHEMA
またはREMAP_DATAFILE
を実行しようとしました。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
METADATA_TRANSFORM
プロシージャは、インポート操作およびSQL_FILE操作のみでサポートされています。このプロシージャを使用すると、あらかじめ共通定義された変換を、転送機能の一部としてオブジェクトの定義に適用できます。このプロシージャ内でサポートされない変換が必要な場合は、先にSQL_FILE操作を実行して、該当するダンプ・ファイル・セットに対応するSQLスクリプトを作成します。DDLを直接編集してから実行することにより、必要な変換を作成できます。
データ・ポンプAPIの変換とは、DBMS_METADATA
.SET_TRANSFORM_PARAMETER
APIによって実装される変換のサブセットです。1つのジョブには複数の変換を定義できます。ただし、個々の変換の定義内容は、パラメータごとに一意である必要があります。つまり、競合したり重複する2つの変換を指定することはできません。
このファンクションは、データ・ポンプAPIを使用して新規ジョブを設定するために使用します。戻されるハンドルは、他のすべてのプロシージャをコールするパラメータとして使用します(ATTACH
ファンクションを除く)。
構文
DBMS_DATAPUMP.OPEN ( operation IN VARCHAR2, job_mode IN VARCHAR2, remote_link IN VARCHAR2 DEFAULT NULL, job_name IN VARCHAR2 DEFAULT NULL, version IN VARCHAR2 DEFAULT 'COMPATIBLE') RETURN NUMBER;
パラメータ
表47-19 OPENファンクションのパラメータ
パラメータ | 意味 |
---|---|
|
実行する操作のタイプ。表47-20に、有効な操作のタイプを示します。 |
|
実行する操作の有効範囲。表47-21に、有効なモードを示します。NULLを指定すると、エラーになります。 |
|
このパラメータの値がNULL以外の場合、現行ジョブのデータおよびメタデータのソースになるリモート・データベースへのデータベース・リンクの名前が使用されます。 |
|
ジョブの名前。名前は30文字に制限され、30文字を超える場合は、その部分が切り捨てられます。名前には、印刷可能な文字および空白を使用できます。ジョブの名前は、 この名前は、API内でジョブを特定するときと、リソース不足でジョブが一時停止した場合に デフォルトのジョブ名は、 |
|
抽出されるデータベース・オブジェクトのバージョン。このオプションは、エクスポート、ネットワーク・インポートおよびSQL_FILEの各操作のみで有効です。このバージョンと互換性のないデータベース・オブジェクトまたは属性は抽出されません。このパラメータに指定できる値は次のとおりです。
|
表47-20に、OPEN
ファンクションで有効な操作タイプを示します。
表47-20 OPENファンクションで有効な操作タイプ
操作 | 説明 |
---|---|
|
データおよびメタデータをダンプ・ファイル・セットに保存します。または操作に必要なデータの見積りサイズを取得します。 |
|
データおよびメタデータをダンプ・ファイル・セットあるいはデータベース・リンクからリストアします。 |
|
ダンプ・ファイル・セット内あるいはネットワーク・リンクからのメタデータをSQLスクリプトとして表示します。SQLスクリプトの場所は、 |
表47-21に、OPEN
ファンクションで有効なモードを示します。
表47-21 OPENファンクションで有効なモード
モード | 説明 |
---|---|
|
Oracle Databaseの内部スキーマを除く、全データベースまたは全ダンプ・ファイル・セットで動作します。(Oracle Databaseの内部スキーマ内にある一部の表は、インポート時のメタデータの一貫性を保つために、エクスポートとインポートの全動作の対象として登録されている場合があります。) 全データベースのエクスポート時には、 |
|
選択された一連のスキーマで動作します。デフォルトは現行のユーザーのスキーマです。選択されたスキーマ内のすべてのオブジェクトが処理されます。 |
|
選択された一連の表で動作します。デフォルトは、現行のユーザーのスキーマ内のすべての表です。表およびその表が依存するオブジェクトのみが処理されます。 |
|
選択された一連の表領域で動作します。デフォルトはありません。指定された表領域内に記憶域を持つ表が、表モードと同じ方法で処理されます。 |
|
選択された一連の表領域内の表(およびその表が依存するオブジェクト)に関するメタデータで動作し、トランスポータブル表領域のエクスポートおよびインポートを実行します。 |
戻り値
ジョブに対する曖昧なハンドル。このハンドルを入力として使用できるプロシージャは、ADD_FILE
、CREATE_JOB_VIEW
、DATA_FILTER
、DETACH
、GET_STATUS
、LOG_ENTRY
、LOG_ERROR、METADATA_FILTER
、METADATA_REMAP
、METADATA_TRANSFORM
、SET_PARALLEL、SET_PARAMETER
、START_JOB、STOP_JOB
およびWAIT_FOR_JOB
です。
例外
INVALID_ARGVAL
。無効なoperation
パラメータまたはmode
パラメータが指定されました。入力パラメータにNULLまたは無効な値が指定されています。該当のパラメータはエラー・メッセージのテキストで示されます。
JOB_EXISTS
。指定したジョブ名の表は、すでに存在しています。
PRIVILEGE_ERROR
。ユーザーには指定したモードを使用する必要な権限またはロールがありません。
INTERNAL_ERROR
。ジョブが不適切なスキーマで作成されたか、マスター表の書式が不適切です。
SUCCESS_WITH_INFO
。このファンクションは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
ジョブが作成されると、コール元のデフォルト表領域内のスキーマのもとで、そのジョブのマスター表が作成されます。ジョブを参照するハンドルが戻され、現行セッションがこのジョブに連結されます。いったん連結されると、明示的または暗黙的に連結が解除されるまで、このハンドルは保持されます。ハンドルは、コール元のセッションでのみ有効です。ATTACH
ファンクションを使用すると、同じジョブに対して異なるセッションから別のハンドルを連結できます。
OPEN
ファンクションへのコールが失敗した場合は、GET_STATUS
プロシージャがNULLハンドルを使ってコールすると、この失敗に関する詳細を参照できます。
このプロシージャは、ジョブ内の並列度を調整します。
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_OPERATION
。SET_PARALLEL
プロシージャは、エクスポート操作およびインポート操作のみで有効です。
INVALID_ARGVAL
。無効な値が入力パラメータに指定されました。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
SET_PARALLEL
プロシージャは、Oracle DatabaseのEnterprise Editionでのみ使用できます。
SET_PARALLEL
プロシージャは、ジョブに連結されたどのセッションでも実行できます。ジョブは、定義中、アイドル、実行中のいずれかの状態でなければなりません。
並列度を下げた場合の影響は遅れて現れることがありますが、これは実行中の作業が正しい完了ポイントを見つけてからSET_PARALLEL
を有効にする必要があるためです。
並列度を下げても、ジョブに関連付けられたワーカー・プロセス数は減少しません。任意の指定時間に実行されるワーカー・プロセス数が減少するだけです。
並列度を上げた場合の影響は、並列して実行できる作業があればすぐに現れます。
ユーザーが要求する並列度は、リソース・マネージャの設定に基づいて下げるか、あるいはinit
.ora
ファイルに含まれるPROCESSES
またはSESSIONS
の各初期化パラメータによって設定される制限を使用して下げることができます。
エクスポート・ジョブをn
度まで並列化するには、ダンプ・ファイル・セット内にn
個のファイルを指定するか、ファイル指定で置換変数を指定する必要があります。この指定を行わない場合、ファイルの待機中に一部のワーカー・プロセスがアイドルになります。
SQL_FILE操作は常に1度で動作します。トランスポータブル・モードで実行されるジョブは常に1度で動作します。
このプロシージャは、ジョブ処理オプションの指定に使用します。
構文
DBMS_DATAPUMP.SET_PARAMETER( handle IN NUMBER, name IN VARCHAR2, value IN VARCHAR2); DBMS_DATAPUMP.SET_PARAMETER ( handle IN NUMBER, name IN VARCHAR2, value IN NUMBER);
パラメータ
表47-23 SET_PARAMETERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ジョブのハンドル。現行のセッションは、 |
|
パラメータの名前。有効なパラメータの名前は、表47-24を参照してください。 |
|
指定したパラメータの値。 |
表47-24に、SET_PARAMETER
プロシージャのname
パラメータに有効なオプションを示します。
表47-24 SET_PARAMETERプロシージャのnameパラメータに有効なオプション
パラメータ名 | データ・タイプ | サポートされる操作 | 意味 |
---|---|---|---|
|
|
すべて |
クライアント・パースペクティブで現行の操作を表した不透明文字列。コマンドライン・プロシージャはこの文字列を使用して、ジョブの開始に使用したオリジナル・コマンドを保存します。 |
|
|
エクスポート |
ダンプ・ファイル・セットのサイズとエクスポート操作およびインポート操作の実行に要する時間は、トレードオフの関係にあります。
デフォルトは |
|
|
エクスポート |
ダンプ・ファイル・データを圧縮する際に使用する圧縮アルゴリズムを示します。選択肢は次のようになります。
この機能を使用するには、 この機能では、Oracle Advanced Compressionオプションを有効にする必要があります。 |
|
|
エクスポートおよびインポート |
デフォルトのメソッドがなんらかの理由で動作しない場合に、データのアンロードの別のメソッドを指定できます。選択肢は |
|
NUMBER |
エクスポートおよびインポート |
ジョブを処理するための特別なオプションを指定するビット・マスク。指定可能な値は次のとおりです。
エクスポートでは、 注意: Oracle Database 12cリリース1(12.1)から、 インポートでは、 インポートでは、 このパラメータを使用するには、 デフォルトは0(ゼロ)です。 |
|
|
エクスポート |
次のように、ダンプ・ファイル・セットで暗号化する対象を指定します。
このパラメータには、11.1以上のジョブ・バージョンが必要です。 デフォルト値は、使用される暗号化関連パラメータの組合せによって異なります。暗号化を有効にするには、
注意: エクスポート対象のデータに暗号化が必要なSecureFilesが含まれている場合は、 |
|
|
エクスポート |
暗号化の実行に使用する必要のある暗号化アルゴリズムを指定します。設定可能な値は、
このパラメータには、11.1以上のジョブ・バージョンが必要です。 デフォルトは |
|
|
エクスポート |
暗号化および復号化で使用するセキュリティ・タイプを指定します。値は次のとおりです。
デフォルト・モードは、使用されるその他の暗号化関連パラメータによって異なります。 |
|
|
エクスポートおよびインポート |
エクスポート操作では、 |
|
|
エクスポートおよびインポート |
表のサイズの見積りメソッドが、ジョブの開始前に実行されるように指定します。
デフォルトは |
|
|
エクスポート |
エクスポート・ジョブの見積り部分のみが実行されるように指定します。このオプションは、エクスポートのサイズが不明の場合にダンプ・ファイルのサイズを見積もる場合に役立ちます。 |
|
|
エクスポートおよびネットワーク・インポート |
ユーザー・データを読み取るためのトランザクション一貫性ポイントとして機能するシステム変更番号(SCN)。 |
|
|
エクスポートおよびネットワーク・インポート |
ユーザー・データを読み取るための一貫性ポイントの決定で使用される日付と時間、あるいは
|
|
|
エクスポートおよびインポート |
0(ゼロ)以外に設定すると、ユーザー表のデータとともにオブジェクトのメタデータが移動します。 0(ゼロ)に設定すると、オブジェクトのメタデータは移動しません。このパラメータは、エクスポート操作をユーザー・データのアンロードに変換し、インポート操作をユーザー・データのロードに変換します。
デフォルトは1です。 |
|
|
エクスポートおよびインポート |
正常に完了したデータ・ポンプ・ジョブの最後に、マスター表を削除するか、または保持するかを指定します。ジョブが正常に完了しなかった場合、マスター表は自動的に保持されます。 デフォルトは0です。 |
|
|
エクスポートおよびインポート |
エクスポート操作中およびインポート操作中に表示されるメッセージに、タイムスタンプを設定するように指定します。有効なオプションは次のとおりです。
|
|
|
インポート |
マスター表の内容を確認できるように、マスター表のみをインポートしてジョブを停止するかどうかを示します。 デフォルトは0です。 |
|
|
エクスポートおよびインポート |
ジョブに関する詳細情報をデータ・ポンプ・ログ・ファイルに記録するかどうかを示します。 デフォルトは0です。 |
|
|
インポート |
インポート操作中に、パーティション化された表を処理する方法を指定します。オプションは次のとおりです。
このパラメータには、11.1以上のジョブ・バージョンが必要です。 デフォルトは |
|
|
インポート |
インポート・ジョブで、表領域の作成に既存のデータ・ファイルを再利用するかどうかを指定します。 デフォルトは0です。 |
|
|
インポート |
0(ゼロ)以外に設定すると、使用できない索引が含まれる表に行が挿入されます。 デフォルトは1です。 |
|
|
エクスポートおよびネットワーク・インポート |
エクスポートおよびネットワーク・インポートのためにアンロードするオブジェクトを決定するために使用されるアプリケーション・エディション。 |
|
|
インポート |
エクスポート・ダンプ・ファイル内に存在するStreamsメタデータをインポートするかどうかを指定します。 デフォルトは1です。 |
|
|
インポート |
既存の表にデータがロードされるときに実行されるアクションを指定します。指定可能なアクションは、
外部キー制約で参照される表に対して
インポートにメタデータが含まれる場合のデフォルトは、 |
|
|
インポート |
トランスポータブル表領域セット内のデータファイルに対して完全なファイル指定を指定します。
|
|
|
インポート |
インポートおよびネットワーク・インポートのためにオブジェクトをロードする場所を決定するために使用されるアプリケーション・エディション。 |
|
|
エクスポート(およびネットワーク・インポートまたはフル・モード・インポート) |
このオプションは、表モードで実行されるエクスポート操作用です。また、フル・モード・インポートとネットワーク・インポートでも利用されます。トランスポータブル表領域を使用したデータ移動を可能にします。 親スキーマ(表)に関連付けられていない移動済の表領域の表モードの記憶域セグメントは、インポート時に再要求されます。個々のパーティションが表モードのジョブで選択された場合、これらのパーティションで参照される表領域のみが移動します。インポート中、移動したパーティションは、
表モードでは、 このパラメータに指定できる値は次のとおりです。
このパラメータには、11.1以上のジョブ・バージョンが必要です。 ジョブ・モードがFULLの場合、このパラメータには、12.1以上のジョブ・バージョンが必要です。 デフォルトは |
|
|
エクスポート |
0(ゼロ)以外に設定すると、トランスポータブル表領域セットがこのセット以外のオブジェクトに対して依存性(具体的にはINポインタ)がなく、セットのほうでもこのオブジェクトに対して依存性がないことが検証されます。トランスポータブル・モードのエクスポートでのみ有効です。 デフォルトは0(ゼロ)です。 |
|
|
エクスポートおよびネットワーク・インポート |
スキーマ・モードの操作では、0(ゼロ)以外に設定すると、ユーザーのスキーマを作り直すメタデータ(エクスポートされたスキーマへの権限付与など)も操作の一部として指定されます。設定ユーザーは、このパラメータを設定する権限を明示的に与えられている必要があります。
ユーザーが |
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_ARGVAL
。この例外は、次のいずれかの原因によるものです。
入力パラメータに無効な名前が指定されました。
value
に不適切なデータ・タイプが使用されています。
value
が指定されていません。
指定したvalue
は、指定のパラメータ名では許可されていません。
フラッシュバック・パラメータが設定されていますが、別のフラッシュバック・パラメータがすでに設定されています。
複製定義をサポートしないパラメータが指定されました。
INVALID_OPERATION
。指定された操作は、このコンテキストでは無効です。
INVALID_STATE
。指定されたジョブは、定義中の状態にありません。
INCONSISTENT_ARGS
。指定されたパラメータは現行の操作タイプでサポートされていないか、現行のモードでサポートされていません。
PRIVILEGE_ERROR
。このユーザーには、指定されたパラメータに必要なDATAPUMP_EXP_FULL_DATABASE
ロールまたはDATAPUMP_IMP_FULL_DATABASE
ロールがありません。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
このプロシージャは、ジョブの実行を開始または再開します。
構文
DBMS_DATAPUMP.START_JOB ( handle IN NUMBER, skip_current IN NUMBER DEFAULT 0, abort_step IN NUMBER DEFAULT 0, cluster_ok IN NUMBER DEFAULT 1, service_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表47-25 START_JOBプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ジョブのハンドル。現行のセッションは、 |
|
0(ゼロ)以外に設定すると、前回ジョブを実行したときに進行中だったアクションは、ジョブの再開時にスキップされます。スキップは、インポート・ジョブのみで有効です。この仕組みにより、致命的なバグを引き起こし、ジョブの不完全終了の原因となるアクションをスキップできます。再開時には複数のアクションをスキップできます。スキップされたアクションは、ログ・ファイルで特定できます。前回ドメイン索引を処理中だった場合は、ドメイン索引のサブコンポーネントのみでエラーが発生した場合でも、再開時にはドメイン索引のすべての部分がスキップされます。 スキップされたアクションに関する説明は、ログ・ファイルに記録されます。 0(ゼロ)に設定した場合は、再開時に失われるデータやメタデータはありません。 |
|
値は0にする必要があります。この引数に0以外の値を挿入すると、意図しない結果が発生します。 |
|
0の場合、すべてのワーカーは現在のインスタンスで開始されます。それ以外の場合、ワーカーはジョブで使用できるインスタンスで開始されます。 |
|
指定すると、ジョブを特定のインスタンスまたは特定のリソース・グループに制約するために使用されるサービス名を示します。 |
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID_STATE
。この例外の原因は、次のいずれかです。
エクスポート・ジョブ、ネットワーク以外のインポート・ジョブまたはSQL_FILEジョブに対してファイルがまったく定義されていません。
SQL_FILE
ジョブに出力を定義するためのADD_FILE
プロシージャがコールされていません。
トランスポータブル・モードのインポート・ジョブにTABLESPACE_DATAFILE
パラメータが定義されていません。
トランスポータブル・モードまたは表領域モードのエクスポート・ジョブまたはネットワーク・ジョブにTABLESPACE_EXPR
メタデータ・フィルタが定義されていません。
インポート・ジョブまたはSQL_FILEジョブのダンプ・ファイル・セットが不完全であるか、マスター表の指定がありません。
INVALID_OPERATION
。ダンプ・ファイル・セットからマスター表をリストアできません。
INTERNAL_ERROR
。ジョブの開始時に非一貫性が検出されました。詳細は、GET_STATUS
プロシージャを使用して参照できます。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
該当するジョブの開始または再開を要求するためにこのプロシージャがコールされると、ジョブの状態が定義中またはアイドルから実行中に変わります。
SET_PARALLEL
プロシージャがSTART_JOB
プロシージャの前にコールされていない場合は、ジョブで使用される並列度の初期値は1になります。ジョブの開始前にSET_PARALLEL
がコールされた場合は、最後のSET_PARALLEL
コールで指定されたdegree
によってジョブの並列度が決定されます。再開時のジョブの並列度は、別のSET_PARALLEL
コールが優先されない限り、前回の並列度設定によって決定されます。
停止したジョブを再開する場合は、START_JOB
プロシージャを実行する前にATTACH
ファンクションを実行する必要があります。
このプロシージャはジョブを終了させますが、オプションでジョブの状態を保存できます。
構文
DBMS_DATAPUMP.STOP_JOB ( handle IN NUMBER, immediate IN NUMBER DEFAULT 0, keep_master IN NUMBER DEFAULT NULL, delay IN NUMBER DEFAULT 60);
パラメータ
表47-26 STOP_JOBプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ジョブのハンドル。現行のセッションは、 |
|
0(ゼロ)以外に設定すると、ワーカー・プロセスは即座に中断されます。これによって、ジョブは速く停止しますが、将来ジョブを再開する場合にジョブの一部の再実行が必要になります。 0(ゼロ)に設定すると、ワーカー・プロセスは終了する前に現行の作業項目(メタデータまたは表データ)を完了できます。現行の作業を終了中、ジョブは停止保留中の状態になります。 |
|
0(ゼロ)以外に設定すると、ジョブの停止時にマスター表が保存されます。0(ゼロ)に設定すると、ジョブの停止時にマスター表が削除されます。マスター表が削除されると、ジョブを再開できなくなります。エクスポート・ジョブの最中にマスター表が削除された場合、作成されたダンプ・ファイルは削除されます。 |
|
連結している他のセッションが強制的に連結を解除されるまでに待機する秒数。遅延を利用して、このジョブに連結している他のセッションに対して、停止が実行されたことを通知できます。すべてのクライアントが連結を解除するか遅延が完了するまで、ジョブの稼働状態が保たれます。遅延を指定しない場合、デフォルトの遅延は60秒です。遅延をあまり短く指定すると、クライアントが |
例外
INVALID_HANDLE
。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。
INVALID
STATE
。ジョブはすでに停止状態または完了状態にあります。
SUCCESS_WITH_INFO
。このプロシージャは成功しましたが、GET_STATUS
プロシージャを使用するとさらに詳しい情報が得られます。
NO_SUCH_JOB
。指定されたジョブは存在しません。
使用上の注意
このプロシージャは、該当ジョブの実行停止を要求するために使用します。
実行中状態のジョブを終了するには、正常な方法で完了するために数分かかることがあります。
定義中、アイドル、完了中の状態にあるジョブの場合、このプロシージャの機能はDETACH
プロシージャの機能と同じになります。
いったん停止したジョブは、マスター表とダンプ・ファイル・セットが元の状態で残されているかぎり、ATTACH
ファンクションおよびSTART_JOB
プロシージャを使用して再開できます。
KEEP_MASTER
パラメータを指定しない場合で、ジョブが定義中の状態にあるかトランスポータブル・モードの場合、マスター表は削除されます。それ以外の場合、マスター表は保持されます。