Oracle DB へのエクスポート
エクスポートとは、簡単に言うと「データベースから外部ファイルからデータを出力すること」。Oracle DB からエクスポートポートを行う際、 datapump ユーティリティを使用するのが一般的。expdp コマンドで dmp (ダンプファイル)が出力される。
expdp の出力先は、directory で指定したディレクトリオブジェクトに、dumpfile パラメータで指定したファイル名で出力される。 対象は業務データそのものだけではなく、メタデータ(データディクショナリで管理される定義情報)も扱える。
旧 exp コマンドに比べはるかに高速になり、対象データ単位やエクスポート時の変更など、
オプション・パラメータを使い分けることで柔軟な対応が可能となっている。
バージョンアップの度に新機能が追加されており、現在主力の Oracle 12c はもちろん、
最新 Oracle18c においても実装されているので、覚えておきたいコマンド。
export単位
データベース全体
expdp ユーザ/パスワード directory=datapumpディレクトリ dumpfile=dmpファイル full=y
表領域モード
expdp ユーザ/パスワード directory=datapumpディレクトリ dumpfile=dmpファイル tablespaces=表領域
スキーマモード
expdp ユーザ/パスワード directory=datapumpディレクトリ dumpfile=dmpファイル schemas=スキーマ
テーブルモード
expdp ユーザ/パスワード directory=datapumpディレクトリ dumpfile=dmpファイル tables=スキーマ.テーブル ※ 自己所有テーブルの場合は、tables オプションにスキーマ名は指定しなくても良い。
トランスポータブル表領域モード
expdp ユーザ/パスワード directory=datapumpディレクトリ dumpfile=dmpファイル transport_tablespaces=表領域
トランスポートは、単純な export & import より高速のため、大容量の表領域移送に適している。ただし色々と制限事項もあるため、特殊な移行要件でなければ上記4つのモードから選択するのが一般的。
主なオプション
上記 export 単位のコマンドに続けて「オプション名 = 値」のように指定する。
デフォルト値が未記載のオプションを使用する場合は、任意の値を入力可能。
logfile オプション
ディレクトリオブジェクトのパスがログファイルの出力先となる。
対象ディレクトリオブジェクトの権限がある場合は、ディレクトリ名も省略可能。
nologfile オプション
ログファイルを出力しない。
ログファイルを出力する。
content オプション
定義とデータ両方をエクスポートする。
定義だけをエクスポートする。
データだけをエクスポートする。
estimate_only オプション
ディスク領域見積もりだけ行う(エクスポートは行わない)。
通常のエクスポートと同等。
exclude オプション
expdp exclude に指定することで、エクスポート対象から除外する。
オブジェクトタイプには、table や index をはじめ、constraint (制約) や、grant (オブジェクト・システム権限) なども指定可能。更に、指定したタイプから除外対象を絞り込む場合、以下のように指定する。
exclude=table:\”= \’hoge\’\”
exclude=table:\”like \’hoge%\’\”
cluster オプション
Real Application Clusters (RAC) 環境のオプション。
各インスタンスで分散して実行する。オーバーヘッドが掛かるが、対象が大容量データであれば、パフォーマンスの向上が見込める。
通常のエクスポートと同等。
compression オプション
全体を圧縮して dmp ファイルをエクスポートする。
※ Enterprise Edition で Advanced Compression オプションライセンスが必要。
データのみを圧縮して dmp ファイルをエクスポートする。
※ Enterprise Edition で Advanced Compression オプションライセンスが必要。
メタデータのみを圧縮して dmp ファイルをエクスポートする。
圧縮が無効。通常のエクスポートと同等。
encryption_password オプション
暗号化データを対象とする場合のセキュリティ強化に使用する。
パスワード長は最大 128 Byte。インポートする際の暗号化キーとなる。
※ Enterprise Edition で Advanced Security オプションライセンスが必要。
reuse_dumpfiles オプション
既存の dmp ファイルを初期化・再利用する。
既存の dmp ファイルを使用しない。
flashback_scn オプション
scn(システム変更番号)を指定することで、その scn までフラッシュバックする。
Oracle12cR2 からは、ビッグ scn を使用することも可能。
※ flashback_time オプションとは併用できない。
flashback_time オプション
指定した日時に最も近い scn までフラッシュバックする。
to_timestamp(’03-02-2019 14:55:30′, ‘DD-MM-YYYY HH24:MI:SS’) のように指定する。
※ flashback_scn オプションとは併用できない。
logtime オプション
タイムスタンプを記録しない。
表示メッセージとログメッセージに、タイムスタンプを記録する。
表示メッセージに、タイムスタンプを記録する。
ログメッセージに、タイムスタンプを記録する。
※ 2019/7/29 logtimeオプションの記載不備を修正しました。
T様、ご指摘有難うございました。