Data Pumpの実践

Pocket

オラクルシルバーを勉強してData Pumpという機能をはじめて知りました。
まー、関係ないやー。と思っていたのですが、
業務で高速にDBエクスポートを行いたい事案があったので、
少し調べてみました。

【1】
・exp/impユーリティが非推奨になっており、
今後はData Pumpに移行されていく。

【2】
・exp/impユーリティが存在する端末で実行できたのに対し、
Data PumpではDBサーバ上で実行するようです。
当然出力されるファイルもDbサーバ上となります。

【3】
・exp/impユーリティに比べてエクスポート/インポートが高速に実行可能。

【2】に関しては、使い悪さしか思い浮かばないです。
サーバマシンに対して気軽にエクスポートできなくなったといえます。

【前提条件】
まとめ:Oracle 11g XEでテスト環境を作成を参照し、
テスト環境の作成を行っておくこと。
Oracleの公式ドキュメントを参考にしています。
英語ですが、結構詳しく書いているのでお勧めです。

それでは始めます。
端末を起動して下記のコマンドを打ち、フォルダを作成します。
mkdir /usr/lib/oracle/xe/tmp

SQL Plusを起動し、SYSTEMユーザでログインします。
sqlplus SYSTEM/password

ディレクトリオブジェクトを作成します。
CREATE OR REPLACE DIRECTORY dmpdir AS ‘/usr/lib/oracle/xe/tmp’;

作成したディレクトリオブジェクトに対して、
読み込みと書き込みの権限をtestユーザに与えます。
GRANT READ,WRITE ON DIRECTORY dmpdir TO test;
フォルダの権限を変更する。
chmod 777 /usr/lib/oracle/xe/tmp/

※ここではまりました。
フォルダの権限とかオラクルを実行している
ユーザとかよくわからなかったので苦労しました。
本来ならセキュリティ上ちゃんとしないといけないのでしょうが、
今回は勘弁してください。

Data Pumpのエクスポートコマンドを実行します。
expdp SYSTEM/password SCHEMAS=hr DIRECTORY=dmpdir DUMPFILE=schema.dmp LOGFILE=expschema.log
これで実行できるはずです。

タイトルとURLをコピーしました