中山テック 代表の中山です。
さて、前回のOracleのDataPumpの使い方(基礎編)では
DataPumpのコマンドを打つまでの手順、構文をお伝えしました。
今回は応用編となりますが、実際はオプションの使い方のご説明となります 汗
1つのみ指定可能なオプションと、共通オプションがあります。
前者は4つあるうちから1つのみ選べます。
一つ指定可能なオプション
①full:データベース全体をエクスポート
②tablespaces:対象表領域単位でエクスポート
③schemas:スキーマ単位でエクスポート
④tables:テーブル単位でエクスポート(複数指定時はカンマ区切り)
共通オプション
①directory:エクスポートファイルを作成するディレクトリを指定できる
②dumpfile:エクスポートしたデータのファイル名を指定できる
③logfile:エクスポート時のログファイル名を指定できる
④content:エクスポート対象を指定できる
(data_only:表データのみ、metadata_only:オブジェクト定義のみ、all:定義とデータ)
⑤estimate_only:エクスポートを実行せず、ディスク容量の見積だけを行う
⑥exclude:エクスポートから除外したいオブジェクトを指定する
⑦parfile:パラメータファイルを指定する
例)
expdp userid/password@dbname tables=USER_TABLE directory=DIRECTORY dumpfile=dumfile.dmp logfile=logfile.log content=data_only statistics=none
※赤文字・・・1つのみ指定可能なオプション
※青文字・・・共通オプション
システム開発において、ログファイルとエクスポートファイル、ディレクトリは指定すると思います。
また、レコード取得したいだけであればテーブル名を指定する位で十分かと思われます。
- viエディタの基礎コマンド一覧~入力モード・コマンドモード~
- CRUD図の作り方と必要性について
- CentOSでインストール不可?mirrorlist.centos.orgがアクセスできない件
- EclipseでWildFlyサーバが選択できない場合
- vbsで文字数カウンタツールを作る
- XSERVERでads.txtの設定を行う
- プログラミングの勉強でやっておきたい課題3選~何をプログラムしようと悩んでいる方へ~
- Excel(エクセル)で関数や計算式入ったセルを編集できないようにする方法
- 【PostgreSQL】えっ!?レプリカセットで3台以上を!?~PRIMARY基準に構築する~
- 冗長構成されたサーバがダウンした時の動作確認~ロードバランス機能も含めたテストを行う~
SQLの指定
expではいともたやすく行われてましたが、実はexpdpでもいともたやすく行えます。
構文としては、どこでもいいのでquery=\"where句\"を入れてください。
※説明するまでもないですが、「¥」はエスケープ文字です
例)
query=\"where DELETE_FLAG = \'0\'\"
※論理削除フラグが立っていないレコードを対象とする、という具合に
ちなみに、条件は指定できてもレコードの指定はできません。
スピード感
どのぐらいの速さでエクスポート出来るのでしょうか。
それに関する質問は、当然ですが環境により異なります。
ですが、このご時世にユーザーが使用するサーバのスペックが低いようでは意味がありません。
ですので、1000万件あったとしても10分は掛からずエクスポート出来るのではないでしょうか。
私が経験したのは、そこまで良いスペックでなくても400万件のレコードをエクスポートするのに1分でした。
まとめ
確かに、普段使用していたexpに比べて高速であることはわかりました。
ただ、少ない件数であればサポートが切れているとはいえexpで十分とも感じています。
ちなみにメリット・デメリットが
■メリット
・expdp・・・高速である
・exp・・・使いやすい(イメージ的に)
■デメリット
・expdp・・・expに使い慣れている場合は使いにくい
・exp・・・expdpに比べると遅い
多少面倒な部分もありますが、是非使用してみてください。