0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

オラクルのexpdp/impdpについて

Last updated at Posted at 2021-02-05

目的

expとimpは公式に非推奨となり、expdp/impdpのパフォーマンスが比較的によいのため、
expdpとimpdpに変更して、
という、上司からの**「簡単」**な指示があった。

実際の作業で、expdp/impdpのメリットは全然体験できず、
デメリットしか記憶に残っていないので、この記事は同じようにexpdp/impdpを検討している人に参考になればと思う。

コマンドのサンプル

expdp USER/Pass@DB directory=DATA_PUMP_DIR dumpfile=test01.dmp logfile=test01_exp.log tables=tbl01 reuse_dumpfiles=yes
impdp USER/Pass@DB directory=DATA_PUMP_DIR dumpfile=test01.dmp logfile=test01_imp.log table_exists_action=truncate query='where id=1'

注意事項

expdpとimpdpの最大の変更はダンプファイルの場所であると思う。
(場合によっては厄介になる)
expではダンプファイルがクライアント側に保存されるが、
expdpではDB側に保存される。
※具体的には、DBサーバに定義されているDIRECTORYというロジック場所に保存される。
 ネット上の共有フォルダなどを使用しない限り、DIRECTORYは基本的にDBサーバにある。

簡単に言うと、
expは
①ダンプファイルを直接に指定の場所に作成、というone-stepであったが、
expdpは
①ダンプファイルをDB側に作成
②DBサーバからダンプファイルを取ってくる
のようなtwo-stepになった。

※impdpは逆に、ローカルからDBサーバにダンプファイルをコピーしてからインポートする必要がある。
 もしexpdpで作成したダンプファイルはそのまま使う場合(ダンプファイルがDBサーバのDIRECTORYに残っている)は、コピー作業が発生しないので、この場合のみはexp/impより便利になると思う。

このため、バックアップや移行など時に、expdpの抽出性能が上がっても、expと比べてDB側からクライアント側や保存したい場所にダンプファイルやexpのログをコピー・移動する作業が発生する。
特に、クライアント側はWindow、DBサーバはLinuxの場合は、ネット上でDIRECTORYの物理フォルダを共有したり、SMBを構築したり、(特に企業の場合)ADドメインに追加したり、色んな追加作業・知識が必要。

余計な話

「抽出と取込の性能のみで判断」という前提があれば、expdp/impdpはよいかもしれないが、
作業は単純なものでなく、色んな状況を考えないといけない。
個人業務には影響少ないと考えられるが、会社や企業の作業にはやはり影響は大きい。
「ダンプファイルのコピーだけが増えるじゃない?」と言われるかもしれないが、
会社や企業でのファイルコピーに対して、
①各環境(Win・Linux・ActiveDirectoryなど)のユーザ・アカウント・権限の追加と変更
②抽出・取込変更後の動作確認
③抽出・取込変更前とのパフォーマンスの比較
④ログもDB側に出力されるため、ログの解析が必要な場合ログのコピーも必要になる
など色々作業が発生するので、十分の工数を予め確保したほうがよいと思う。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?