Oracleのexp, impコマンド

ダンプ・ファイルの作成に使用したexpより前のバージョンのimpは使用できないので、注意すること。

エクスポート

エクスポートには、expコマンドを使用する。

ヘルプオプション
$ exp help=y



データベース全体をEXPORT
EXP_FULL_DATABASEロールを付与されているユーザでないと、データベース全体をEXPORTできない。

例)$ exp system/manager fully=y



表領域をEXPORT
表領域をEXPORTするには、TABLESPACESオプションを指定する。指定した表領域内のオブジェクトは、全てEXPORTされる。

例)$ exp system/manager tablespaces=tbls



ユーザーをEXPORT
ユーザー単位にEXPORTするには、OWNERオプションを指定する。指定したユーザーが保有するオブジェクトは、全てEXPORTされる。

例)$ exp usr01/passwd owner=usr01



テーブルをEXPORT
テーブル単位にEXPORTするには、TABLESオプションを指定する。

例1)テーブル「emp1」と「emp2」をEXPORTする
 $ exp usr01/passwd tables=emp1,emp2
 
例2)テーブル「emp」のパーティション「prt01」をEXPORTする
 $ exp usr01/passwd tables=emp:prt01



EXPORTするレコードの条件を指定
QUERYオプションで、SQL文のWHERE句を指定する。

例)テーブル「emp」の、列「salary」 >= 200 のレコードをEXPORTする
 $ exp usr01/passwd tables=emp query=\"where salary >= 200 \"



EXPORTするファイルを指定
エクスポートするファイルを指定するには、FILEオプションを指定する。デフォルトのエクスポートファイル名はカレントディレクトリの「expdat.dmp」となる。

例)$ exp usr01/passwd tables=emp file=emp.dmp



パラメータ・ファイルの使用
コマンドラインパラメータをファイルで指定するには、PARFILEオプションを指定する。

例)ファイル「emp.para」に設定されたパラメータでエクスポートする。
 $ exp usr01/passwd parfile=export.par 
 
 export.parファイルの内容
 
  # Export tables.
  #
  TABLES=usr01.table1,usr01.table2
  #
  # default filename is expdat.dmp
  FILE=expdat.dmp
  #
  GRANTS=y
  INDEXES=y
  CONSISTENT=y
  #
  # log output
  LOG=export.log



インポート

インポートには、impコマンドを使用する。

ヘルプオプション
$ imp help=y



データベース全体をIMPORT
データベース全体をIMPORTするには、FULLオプションを指定する。IMP_FULL_DATABASEロールを付与されているユーザでないと、データベース全体をIMPORTできない。

例)$ imp system/manager fully=y



表領域をIMPORT
表領域をIMPORTするには、TABLESPACESオプションを指定する。指定した表領域内のオブジェクトは、全てIMPORTされる。

例)$ imp system/manager tablespaces=tblsp01



ユーザーをIMPORT
ユーザー単位にIMPORTするには、OWNERオプションを指定する。指定したユーザーが保有するオブジェクトは、全てIMPORTされる。

例)$ imp usr01/passwd owner=usr01



テーブルをIMPORT
テーブル単位にIMPORTするには、TABLESオプションを指定する。

例1)テーブル「emp」をIMPORTする
 $ imp usr01/passwd tables=emp
 
例2)テーブル「emp」のパーティション「prt01」をIMPORTする
 $ imp usr01/passwd tables=emp:prt01



EXPORTしたユーザと異なるユーザーにIMPORT
EXPORTしたユーザーをFROMUSERオプション、IMPORTするユーザーをTOUSERオプションで指定する。IMP_FULL_DATABASEロールが付与されているユーザーでないと、実効できない。

例)$ imp system/manager tables=emp fromuser=usr01 touser=user99



既に存在するオブジェクトを上書きIMPORT
IMPORT先に既に存在するオブジェクトに上書きIMPORTするには、IGNORE=Yオプションを指定する。IGNORE=Yが指定されてなく、IMPORT先に同名のオブジェクトがある場合、エラーとなる。

例)$ imp usr01/passwd tables=emp ignore=y



IMPORTするファイルを指定
インポートするファイルを指定するには、FILEオプションを指定する。デフォルトのインポートファイル名はカレントディレクトリの「expdat.dmp」となる。

例)$ imp usr01/passwd tables=emp file=emp.dmp



パラメータ・ファイルの使用
コマンドラインパラメータをファイルで指定するには、PARFILEオプションを指定する。

 $ imp usr01/passwd parfile=import.par
 
 import.parファイルの内容
 
  # Import tables.
  #
  # default filename is expdat.dmp
  FILE=expdat.dmp
  #
  TABLES=(*)
  #
  # log output
  LOG=import.log