タイトル
TOPOracle → This Page

エクスポート(EXPORT)

概要

EXPORTはOracleが標準で提供するユーティリティ。
データベースのオブジェクトやデータをエクスポート・ダンプ・ファイルに出力することができる。
出力したエクスポート・ダンプ・ファイルはIMPORTユーティリティで取り込むことが可能。
(別のデータベースに取り込むことも可能)

お手軽ですが、Oracle 10g からは Data Pump Export/Import の使用が推奨されています

コマンド

EXPORTは exp コマンドで実行可能
実行方法は以下の3つがある。

exp
順に問い合わせされるパラメータを入力していく対話方式。

exp パラメータ名=パラメータ値 [,パラメータ名=パラメータ値,...]
コマンドの後ろに各種パラメータを付加して実行する。

exp parfile=パラメータファイル
前もってパラメータを記述したファイルを指定して実行する。

モード

モードには以下の4つがある。

・全体モード
 データベース全体のエクスポート
 ただし、SYSスキーマが所有するトリガーはエクスポートされない
・表領域モード
 指定表領域のエクスポート
・ユーザ・モード
 指定ユーザのスキーマにある全てのオブジェクトをエクスポート
・表モード
 指定表およびパーティションのエクスポート

権限

実行には CREATE SESSION 権限が必要。
実行モードを全体モードで実行する場合は EXP_FULL_DATABASE ロールも必要。
実行モードを表領域モードで実行する場合は EXP_FULL_DATABASE ロールも必要。
実行モードをユーザ・モード、かつ別ユーザのオブジェクトをエクスポートする場合は EXP_FULL_DATABASE ロールも必要。

パラメータ一覧

パラメータ
(※1)
デフォルト説明
BUFFER NUMBER ※2 データを取り出すために使用するバッファのバイト数
COMPRESS y/n y 表データの初期エクステントの管理方法
y:インポート時に表データを1つの初期エクステントにまとめる
(IMPORTユーティリティで使われるフラグ)
CONSISTENT y/n n 読取り一貫性をエクスポート操作全体で保証するかどうか
ただし、SYSユーザ、または AS SYSDBA を使用している場合は CONSISTENT=y はサポートされない
CONSTRAINTS y/n y 表制約をエクスポートするかどうか
DIRECT y/n n ダイレクト・パス・エクスポートを使用するかどうか
データを直接エクスポート・クライアントに転送するため、従来型パス・エクスポートに比べて高速
表領域モードの場合は DIRECT=y はサポートされない
FEEDBACK NUMBER 0 指定した値の行数をエクスポートする毎に「.」を表示
FILE STRING expdat.dmp エクスポート・ダンプ・ファイル名(出力先ファイル名)
半角カンマ区切りで複数ファイルの指定も可能
(FILESIZEパラメータと組み合わせて使用する)
FILESIZE NUMBER - 指定したバイト数を超えるとFILEパラメータで指定した次のファイルに出力する
キロバイト指定も可能(10KBなど)
FULL y/n n FULL=y を指定すると全体モードでのエクスポートとなる
FULL=y を指定する場合は OWNER、TABLES、TABLESPACES パラメータは無効となる
GRANTS y/n y 権限をエクスポートするかどうか
HELP y/n - HELP=Y でヘルプ表示
INDEXES y/n y 索引をエクスポートするかどうか
LOG STRING - ログ出力する場合の出力ログファイル名
OWNER STRING - エクスポート対象となるオブジェクトを所有するユーザ
指定するとユーザ・モードでのエクスポートとなる
FULL=y を指定する場合は無効となる
PARFILE STRING - パラメータファイル名
QUERY STRING - 表モードの場合、TABLESパラメータで指定された表に適用されるSELECT文のWHERE句
TABLESパラメータに複数の表を指定した場合は、指定した全ての表に適用される
DIRECT=y を指定する場合は無効となる
ROWS y/n y 表のデータ行をエクスポートするかどうか
STATISTICS ESTIMATE
COMPUTE
NONE
ESTIMATE データベース・オプティマイザ統計情報のタイプ
STATISTICS=NONE を指定すると出力されない
TABLES STRING - エクスポートの対象となる表名、パーティション名を指定
半角カンマ区切りで複数指定可能
指定すると表モードでのエクスポートとなる
FULL=y を指定する場合は無効となる
TABLESPACES STRING - エクスポートの対象となる表領域名を指定
半角カンマ区切りで複数指定可能
指定すると表領域モードでのエクスポートとなる
FULL=y を指定する場合は無効となる
TRANSPORT_TABLESPACE y/n n トランスポータブル表領域のメタデータをエクスポートするかどうか
TRIGGERS y/n y トリガーをエクスポートするかどうか
USERID STRING - エクスポート処理を実行するユーザーの接続情報
username/password[@instance][ AS SYSDBA] 形式で指定
※1 NUMBER:数値、STRING:文字列、y/n:yまたはn
※2 OSによって異なる
※ 他にもパラメータはありますが独断と偏見で「あまり使わない」と判断したものは省略しています

実行例

全体モードでエクスポート
exp usr1/pass1@db1 file=c:\full.dmp full=y

ユーザ・モードでエクスポート
exp usr2/pass2@db2 file=c:\usr2.dmp owner=usr2

表モードでエクスポート
exp usr3/pass3@db3 file=c:\tbl.dmp rows=y tables=(tbl1, tbl2)

表モードでダイレクト・パス・エクスポート
exp usr4/pass4@db4 file=c:\tbl.dmp rows=y tables=tbl1 direct=y

ユーザ・モードでファイル100MBのサイズで分けてエクスポート
exp usr5/pass5@db5 file=usr5_1.dmp, usr5_2.dmp, usr5_3.dmp owner=usr5 filesize=100M

リンク

更新履歴

2012/03/08 「STATISTICS」を追加
2012/02/01 実行例を追加
2010/02/11 新規作成


TOPOracle → This Page