• Oracle Database10g から導入されたユーティリティです
• Data Pump テクノロジを使用すると、
データおよびメタデータをデータベース間で非常に高速に 移動できます
利用方法
• expdp/impdp コマンド
• Oracle Enterprise Manager
• DBMS_Data Pump PL/SQL パッケージ
• その他、外部表などのエンジンとして内部利用
Data Pump
Data Pump のここがすごい !
ダイレクトパス API の改善による処理速度向上
• エクスポート:オリジナルの Export に比べて 2 倍高速
• インポート:オリジナルの Import に比べて 15 ~ 40 倍高速
Data Pump
を使用したら 速くなった!Data Pump
は、大量データを扱う大きなジョブ向き!Data Pump では、マスター表を作成するためのオーバー
ヘッドによって小さなジョブは遅くなりますが、大量のデー タを高速に処理することは、中・大規模なジョブにとって 大きなメリットとなります!
Data Pump
Export/Import – 出力先ディレクトリの指定
• Data Pump
ではクライアントではなくサーバーにより書き込みが行われるため、処理を行うディレクトリ位置が特定されている必要があります
•
ダンプファイルを出力するディレクトリに対して、DB上でディレクトリオブジェクトを作成 します実行時には、ディレクトリオブジェクトをDIRECTORY
パラメータで指定します•
パラメータでディレクトリを指定していない場合、OS環境変数「DATA_PUMP_DIR」、なければ ディレクトリオブジェクト「DATA_PUMP_DIR」が参照されます
Data Pump
SQL > CREATE DIRECTORY DPUMP_DIR1 AS ‘/home/oracle/oradata/dpump_dir’;
SQL > GRANT READ, WRITE ON DIRECTORY dpump_dir1 TO scott;
COMMAND > expdp scott/tiger tables=emp,dept directory=dpump_dir1
権限付与
ディレクトリオブジェクト作成
環境変数の設定 COMMAND > set DATA_PUMP_DIR=DPUMP_DIR1; export DATA_PUMP_DIR
COMMAND > expdp scott/tiger schemas=scott
Tips
• Oracle RAC
構成でData Pump
または外部表を使用するには、ディレクトリ・オブジェクトのパスが
クラスタ・ファイル・システム上に存在するようにする必要があります
•
この目的で使用できる共有ストレージが構成内にない場合にも並列処理 が必要であれば、CLUSTER=no
パラメータを使用して、すべてのワー カー・プロセスを、Data Pumpジョブが開始されたインスタンスのみに置く ことができます• ASM
を使用可能にした場合のディレクトリ・オブジェクトの使用方法SQL> CREATE or REPLACE DIRECTORY dpump_dir as '+DATAFILES/‘;
•
ログ・ファイル用の個別のディレクトリ・オブジェクトの作成SQL> CREATE or REPLACE DIRECTORY dpump_log as
'/homedir/user1/‘;
•
使用例> expdp hr DIRECTORY=dpump_dir DUMPFILE=hr.dmp
Data Pump
Export – Data Pump –
オリジナルの
export
と同様の操作性をもった エクスポートユーティリティモード 機能説明 パラメータ
フル データベース全体のエクスポート
FULL=y
スキーマ 指定したスキーマ全体のエクスポート
SCHEMAS=schema[, …]
テーブル 指定したテーブル全体のエクスポート
TABLES=table[, …]
テーブルスペース 指定したテーブルスペース全体のエク スポート
TABLESPACES=tablespace[, …]
expdp
で利用可能なモード例
1: > expdp scott/tiger full=y
例
2: > expdp scott/tiger dumpfile=exp.dmp tables=emp,dept
フルモード
テーブルモード
Export Utility
expdp
Data Pump
フィルタ処理を行います
エクスポートの対象から除外するオブジェクトを
EXCLUDE
パラメータで指定しますCOMMAND > expdp scott/tiger exclude=index:¥”LIKE ¥’EMP%¥’¥”
LIKE
やIN
を指定す ることも可能です※空白等を区切り文字にしないためにダブルクオーテーションが
必要ですが、OS
によってはエスケープ文字が必要となります従っ て、通常はパラメータを記述したファイルを読み込ませると便利で すCOMMAND > expdp scott/tiger include=index
フィルタ処理を行い、エクスポートの対象となるオブジェクトを 細かく設定することができます
INCLUDE / EXCLUDE
Data Pump
エクスポートの対象オブジェクトを
INCLUDE
パラメータで指定しますCOMMAND > expdp scott/tiger include=table
データのフィルタ処理を行います Data Pump
フィルタ処理を行い、エクスポートの対象となるデータを細かく設定 することができます
エクスポート対象表のセットから行のサブセットを選択できます
例:職種が
SALESMAN
で、給与が1600
より少ない従業員のみをエクスポートする場合COMMAND > expdp scott/tiger TABLES=emp QUERY=¥"WHERE job=¥'SALESMAN¥' and sal ¥<1600¥"
サンプリングしてソース・データベースからアンロードするデータ行の割合を指定できます 例