
中山テック 代表の中山です。
さて、前回の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つのみ指定可能なオプション
※青文字・・・共通オプション
システム開発において、ログファイルとエクスポートファイル、ディレクトリは指定すると思います。
また、レコード取得したいだけであればテーブル名を指定する位で十分かと思われます。
- UNION ALLの使い方(構文)は非常にシンプル
- PostgreSQLのレプリケーションセットの記事はnoteに移動しました【リンクあり】
- 【JavaScript】画面開いた時プルダウンメニューを動的に作る方法
- ファイル名を検索・置換(リネーム)ブログはnoteに移動しました【リンクあり】
- リモート会議がかんたんに出来る!Google Meetの使い方を伝授
- 【DIVER】広告を追従させる~パソコン、スマホ~
- 「Brabio!」の使い方~タスク・スケジュール管理が便利なフリークラウドツール~
- 【JavaScript×CSS】×ボタン押したら広告を削除する方法~画像代用も可~
- Chromeで全画面キャプチャする方法~スクロール必要画面でもらくらく撮れる~
- 代表の技術経歴をご紹介!~UNIX系OS編~
SQLの指定
expではいともたやすく行われてましたが、実はexpdpでもいともたやすく行えます。
構文としては、どこでもいいのでquery=\"where句\"を入れてください。
※説明するまでもないですが、「¥」はエスケープ文字です
例)
query=\"where DELETE_FLAG = \'0\'\"
※論理削除フラグが立っていないレコードを対象とする、という具合に
ちなみに、条件は指定できてもレコードの指定はできません。
スピード感
どのぐらいの速さでエクスポート出来るのでしょうか。
それに関する質問は、当然ですが環境により異なります。
ですが、このご時世にユーザーが使用するサーバのスペックが低いようでは意味がありません。
ですので、1000万件あったとしても10分は掛からずエクスポート出来るのではないでしょうか。
私が経験したのは、そこまで良いスペックでなくても400万件のレコードをエクスポートするのに1分でした。
まとめ
確かに、普段使用していたexpに比べて高速であることはわかりました。
ただ、少ない件数であればサポートが切れているとはいえexpで十分とも感じています。
ちなみにメリット・デメリットが
■メリット
・expdp・・・高速である
・exp・・・使いやすい(イメージ的に)
■デメリット
・expdp・・・expに使い慣れている場合は使いにくい
・exp・・・expdpに比べると遅い
多少面倒な部分もありますが、是非使用してみてください。