中山テック 代表の中山です。
さて、前回の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つのみ指定可能なオプション
※青文字・・・共通オプション
システム開発において、ログファイルとエクスポートファイル、ディレクトリは指定すると思います。
また、レコード取得したいだけであればテーブル名を指定する位で十分かと思われます。
- zabbixをVMWareのゲストOSに構築~ブラウザからファイアウォール通過してアクセス~
- JBoss管理クライアントの使い方
- zabbixをAPI経由で障害を通知する
- 共有されたGoogleスプレッドシートで個別にフィルタを作成しソートする方法
- 短い動画なら30分程度でできる!スマホで動画を編集してYouTubeにアップ
- VBAの基礎構文について~変数定義やif文、for文、内部関数の定義方法を備忘的に残します~
- ウォーターフォール方式開発とプログラミング
- PostgreSQLのバックアップとリストア~pg_basebackupを駆使して主系副系復帰を目指す~
- CentOSでインストール不可?mirrorlist.centos.orgがアクセスできない件
- 【JavaScript】ボタン押してダイアログ表示する方法~外タップで閉じる方法も~
SQLの指定
expではいともたやすく行われてましたが、実はexpdpでもいともたやすく行えます。
構文としては、どこでもいいのでquery=\"where句\"を入れてください。
※説明するまでもないですが、「¥」はエスケープ文字です
例)
query=\"where DELETE_FLAG = \'0\'\"
※論理削除フラグが立っていないレコードを対象とする、という具合に
ちなみに、条件は指定できてもレコードの指定はできません。
スピード感
どのぐらいの速さでエクスポート出来るのでしょうか。
それに関する質問は、当然ですが環境により異なります。
ですが、このご時世にユーザーが使用するサーバのスペックが低いようでは意味がありません。
ですので、1000万件あったとしても10分は掛からずエクスポート出来るのではないでしょうか。
私が経験したのは、そこまで良いスペックでなくても400万件のレコードをエクスポートするのに1分でした。
まとめ
確かに、普段使用していたexpに比べて高速であることはわかりました。
ただ、少ない件数であればサポートが切れているとはいえexpで十分とも感じています。
ちなみにメリット・デメリットが
■メリット
・expdp・・・高速である
・exp・・・使いやすい(イメージ的に)
■デメリット
・expdp・・・expに使い慣れている場合は使いにくい
・exp・・・expdpに比べると遅い
多少面倒な部分もありますが、是非使用してみてください。