Oracle exp/impコマンドでデータのバックアップ・移植

2009/04/10 14:58Update
TAGS: oracle | exp | imp | データ | バックアップ | 移植 | エクスポート | インポート

Oracle exp/impコマンドでデータのバックアップ・移植を行う方法について学びます。

データ・エクスポート(バックアップ)


■expコマンド:
概要:データのエクスポートを行うためのコマンド。
1)全データをエクスポート
2)特定のテーブルだけエクスポート
3)名称や更新日時にマッチするテーブルエクスポート

形式:
exp ユーザ/パースワード@サービス名 file=保存するファイルパス log=ログファイル名 ...


例:
--すべてをエクスポート
exp myuser/mypassword@myservice file=c:\mydb.dmp log=c:\mydbdmp.log full=y

--特定のテーブルだけをエクスポート
exp myuser/mypassword@myservice file=c:\mydb.dmp log=c:\mydbdmp.log full=y tables=(DAT_XXXX_XXXX, DAT_OOOO_OOOO)

--テーブル名の先頭がDATのテーブルをエクスポート
exp myuser/mypassword@myservice file=c:\mydb_DATs.dmp log=c:\mydbdmp.log full=y tables=(DAT%)

--テーブル名の先頭がDATかつ更新日時が過去1ヶ月以内のテーブルをエクスポート
--以下の場合、テーブルにupdate_datetimeというtimestamp型のフィールドが存在していると想定します。
exp myuser/mypassword@myservice file=c:\mydb.dmp log=c:\mydbdmp.log full=y tables=(DAT%) query=\"where update_datetime > add_months(sysdate, -1) \"


データ・インポート


■impコマンド:
概要:expコマンドでエクスポートしたデータをインポートするためのコマンド。

形式:
imp ユーザ/パースワード@サービス名 file=保存するファイルパス log=ログファイル名 fromuser=エクスポート時のユーザ touser=インポート時のユーザ rows=y ignore=y


例:
--エクスポートしたデータをインポート
imp myuser/mypassword@myservice file=mydb.dmp log=import.log fromuser=myuser touser=myuser2 rows=y ignore=y


注意していただくこと:
※インポートするテーブルは事前に削除する必要がある
※インデックスやPKなどはインポート時に自動的に作成される
※インポート先の表領域はエクスポート時の表領域と同じ場所にインポートされる
※表領域が不足の場合、手動で拡張する必要がある。

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

☆☆☆

1 - Syboos.jp編集長 2009/09/11 11:06

ローカルからリモートマシンのOracleデータをエクスポート/インポートの場合:
exp ユーザ/パースワード@OracleサーバのIP/サービス名 file=ファイルパス

imp ユーザ/パースワード@OracleサーバのIP/サービス名 file=ファイルパス  fromuser=エクスポート時のユーザ touser=インポート時のユーザ