The Dragon Scroll

Be just and fear not.

10gがもたらす福音(13)〜DataPump。

データのロード、アンロードと言えば、これまではexp/impでした。
10gでは、expdp/impdpというユーティリティが導入されている(従来のエクスポート/インポートもある)。


以下のとおり、DataPampは構成されており、従来のものとの互換性はない。
従来のexp/impよりも高速とされている。

DataPumpAPI

DataPumpの基本インターフェース。
このAPIと、expdp/impdpが会話をする。
そして、このAPIから、ダイレクトパスAPIメタデータAPI、又は外部表APIとの
会話が発生する。

ダイレクトパスAPI

データの解析・変換にかかる時間を、最小限に抑えるためのインターフェース。

メタデータAPI

オブジェクト定義を取得するためのインターフェース。

外部表API

ORACLE_LOADERという、SQL*LOADERを使用した読み込み専用のインターフェースがある。


expdp/impdp ⇒ DataPumpAPI ⇒ ダイレクトパスAPI/メタデータAPI/外部表API
expdp/impdp ⇒ ダイレクトパスAPI
sql*loader  ⇒ ORACLE_LOADER

実際の例

expdp hoge/hoge directory=dump_dir dumpfile=20061202.dmp full=y


directoryでは、ディレクトリオブジェクトを指定する。
ディレクトリオブジェクトとは、ファイルパスをOracleの世界で、定義した
オブジェクトである。
 create directory dump_dir as '/home/oracle/dump'


モードは以下のとおり。

  • full DB全体。
  • shemas スキーマ単位。
  • tables テーブル単位。
  • tablespaces 表領域単位。
  • transport_tablespaces トランスポータブル表領域としてエクスポート。

 *impdpも同じ。