datapump とは
datapump は、oracle10g より導入されたユーティリティであり、データベースに
格納されているデータやオブジェクトのメタデータのインポートやエクスポートが可能。
従来の export/import ユーティリティと比較すると、処理性能が向上している。
「データポンプ」や「データパンプ」と呼び方はまちまちだが、
Oracle のマニュアルで、カタカナ表記の場合は「データポンプ」となっているので、
正確にはデータポンプなのだろう。 Oracle エンジニア同士の会話では、
「データパンプ」の方が多いけれども。
Oracle9i まで主力であった export/import ユーティリティは、
11g 以降でも利用することは可能だが、非推奨となっている。
将来的に廃止される運命にあるため、これから使うなら datapump を利用した方がよい。
バージョンアップの度に新機能が追加されており、現在主力の Oracle 12c はもちろん、
最新 Oracle18c においても実装されているので、覚えておきたいコマンド。
ディレクトリオブジェクトの登場
datapump を利用する場合、export/import ユーティリティでは
存在しなかった「ディレクトリオブジェクト」が必要になる。
これは名の通りオブジェクトの一種として扱われるため、
テーブルやインデックスなどと同様に権限も必要となる。
インポート時はダンプファイルの読込先となり、
エクスポート時はダンプファイルの出力先となる。
コマンドも exp/imp から、expdp/impdp に変わっている。
datapump に必要な権限
最低限、これだけの権限が必要。
他のスキーマオブジェクトが対象の場合は、別途権限が必要となるため、
可能であればロールを付与して、 read, write on directory を追加する。
ディレクトリオブジェクトの作成
create or replace directory
<ディレクトリオブジェクト名> as ‘<対象ディレクトリパス>‘;
注意点
権限付与コマンド
grant read, write on directory
<ディレクトリオブジェクト名> to <ユーザ名>;