ORACLE DATABASE の従来型エクスポート/インポート
従来型コマンドである EXP / IMP コマンドの方が、一般に知られている。(最新の某SQLリファレンス本にも古い従来型コマンドが紹介されている)
従来型コマンドには以下の特徴がある。
・ユーザープロセスで実行される
・コマンドとして取り回しがしやすい
・『警告』時の戻り値がゼロ(UNIX系)
・ORACLE 10g 以降からは『非推奨』とされている(案外と知らない人がいる)
Oracle Data Pump テクノロジー
ORACLE 10g 以降から推奨されているエクスポート/インポート ( EXPDP / IMPDP ) 機能。
以下のような特徴がある。
・Oracleサーバープロセスとして実行される
・対象ファイルの格納ディレクトリを『ORACLEオブジェクト』として定義する必要がある(シェルスクリプト等の中からパス指定ができない)
・対象ファイルの格納ディレクトリの書き込み権限がORACLEプロセス側から書き込み可能になっている必要がある
・ORACLE公称で従来型よりも、エクスポートで2倍以上、インポートで10数倍 - 数10倍、高速である
・戻り値:正常時ゼロ、成功だがエラー(おそらく警告)時5、異常時1
参考リンク
備考
今回は、とりあえず備忘録としてメモ。筆者の職場でも従来型コマンドしか知らないメンバーが、ORACLE 11g で開発を完了させていた例があった。
実際に、新しい(と言っても10gからあったが)コマンドでスクリプトを作り替えてテストをしてみたところ、エクスポートでも10倍以上、処理時間が高速になった。