10gがもたらす福音(13)〜DataPump。
データのロード、アンロードと言えば、これまではexp/impでした。
10gでは、expdp/impdpというユーティリティが導入されている(従来のエクスポート/インポートもある)。
以下のとおり、DataPampは構成されており、従来のものとの互換性はない。
従来のexp/impよりも高速とされている。
DataPumpAPI
DataPumpの基本インターフェース。
このAPIと、expdp/impdpが会話をする。
そして、この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も同じ。