exp コマンドで Oracle のデータをエクスポートできる。
exp のエクスポートモード
exp には次の4種類のエクスポートモードがある。
- 全体: データベース全体をエクスポートする
- 表領域: 指定した表領域をエクスポートする(使ったことがないので詳しいことはわからない)
- ユーザー: 指定したユーザーが所有するすべてのオブジェクトをエクスポートする
- 表: 指定した表をエクスポートする
exp の構文
exp の基本的な構文は次のとおり。
exp 〈ユーザー/パスワード〉 〈エクスポートモード〉 〈ダンプファイル〉 〈そのほかの引数〉
データベース全体をエクスポートする
データベース全体をエクスポートするには全体モードを使う。
exp のエクスポートモードには full=y を指定する。
exp scott/tiger full=y file=/path/to/dumpfile.dmp
表領域をエクスポートする
表領域をエクスポートするには表領域モードを使う。
exp のエクスポートモードには tablespaces=〈エクスポートする表領域名〉 を指定する。
exp scott/tiger tablespaces=tablespace file=/path/to/dumpfile.dmp
ユーザーをエクスポートする
ユーザーが所有するオブジェクトをすべてエクスポートするには、ユーザーモードを使う。
所有するオブジェクトとは、表・権限・索引・ストアドプロシージャ―などを指す。
exp のエクスポートモードには owner=〈エクスポートするユーザー名〉 を指定する。
exp scott/tiger owner=scott file=/path/to/dumpfile.dmp
表をエクスポートする
指定したテーブルをエクスポートするには表モードを使う。
exp のエクスポートモードには tables=〈テーブル名〉 を指定する。
複数のテーブルを指定する場合はカンマ区切りで指定する。また、テーブルのリストを括弧で囲む。
exp scott/tiger tables=\(TBL1, TBL2, TBL3\) file=/path/to/dumpfile.dmp
ファイルの出力先を指定する
ダンプファイルの出力先は file= に指定する。
余談
exp は『オリジナルのエクスポート・ユーティリティ」と呼ばれる。
exp は Oracle 11g からは原則としてサポートされなくなった。
Oracle 11g からは exp ではなくデータ・ポンプ・エクスポート(expdp)の使用が推奨されている。
とは言っても expdp はサーバー側で処理が実行され、ダンプファイルもサーバーに保存されるため、微妙に使いにくい(と思っている)。