HOME > IMPORT(impdp)編
IMPORT(impdp)
impdpはOracle10gから導入された新しいインポートユーティリティです。
以前のimpと比べ、パフォーマンスが向上して高速にインポートができます。
Oracle11g以降では、以前のコマンドである impは非推奨になっています。
impdpの構文
impdpの構文は以下の通りです。
- impdp構文
- impdp <ユーザ>/<パスワード>@<接続文字列> <オプション>
impdpのオプション
impdpのオプションには以下のようなものがあります。
ここで取り上げたものは、よく使われる主要なオプションのみです。
パラメータ | 説明 |
---|---|
full | データベース全体をインポートする時にyを指定する (例)full=y |
tablespaces | 対象表領域単位でインポートする時に指定する (例)tablespaces=tbs01 |
schemas | スキーマ単位でインポートする時に指定する (例)schemas=taro |
tables | テーブル単位でインポートする時に指定する ※複数指定する場合はカンマで区切ってください。 (例)tables=taro.m_test tables=m_test1,m_test2 |
remap_schema | 異なるスキーマへインポートする場合に指定する (例)remap_schema=jiro:taro |
remap_tablespace | 異なる表領域へインポートする場合に指定する (例)remap_tablespace=tbs01:tbs02 |
remap_schemaとremap_tablespaceは同時指定可です。
パラメータ | 説明 |
---|---|
directory | インポートファイルが置いてあるディレクトリを、DIRECTORYオブジェクト名で指定する ※実パスは指定不可 |
dumpfile | インポートファイルのファイル名を指定する (例)data.dmp |
logfile | インポート時のログファイル名を指定する (例)data.log ※未指定時は「import.log」となります。 ※ログ出力有無は、nologfileの設定によります |
content | インポート対象を指定する data_only:表のデータのみ metadata_only:オブジェクト定義のみ all:定義とデータ(デフォルト) |
exclude | インポートから除外したいのオブジェクトを指定する (例)インデックスを除外する場合 exclude=INDEX |
parfile | パラメータファイルを指定する ※パラメータファイルは、パラメータをファイルに箇条書きしたものです。下記例をご覧ください。 |
table_exists_action | インポート先に既に定義やデータが存在した場合の動きを指定する truncate:既存データをtruncateしてからインポートする replace:既存の定義をdropしてからインポートする append:既存のデータはそのままにインポートする skip:既存の定義とデータはそのままで、次のオブジェクトのインポートに移る |
transform | メタデータの変換の指定 (例)transform=OID:n ※インポート時にORA-02304が発生する場合はOID:nを指定すると出なくなります。 |
nologfile | インポート実行時のログを出力するかどうか YES:ログファイルを出力しない NO:ログファイルを出力する(デフォルト) |
他のユーザーが作成したDMPファイルをインポートする場合は、
IMP_FULL_DATABASEロールが必要です。
impdp文の例
(例)データベース全体をインポートする
- 【データベース全体】
- C:¥>impdp taro/pass@db01 full=y directory=dir01 table_exists_action=replace dumpfile=data.dmp logfile=data.log
(例)表領域単位でインポートする
- 【表領域単位】
- C:¥>impdp taro/pass@db01 tablespaces=tbs01 directory=dir01 table_exists_action=replace dumpfile=data.dmp logfile=data.log
(例)スキーマ単位でインポートする
- 【スキーマ単位】
- C:¥>impdp taro/pass@db01 schemas=taro directory=dir01 table_exists_action=replace dumpfile=data.dmp logfile=data.log
(例)テーブル単位でインポートする
- 【テーブル単位】
- C:¥>impdp taro/pass@db01 tables=m_test1,m_test2 directory=dir01 table_exists_action=replace dumpfile=data.dmp logfile=data.log
(例)DMPファイルとは異なるスキーマへインポートする
- 【スキーマ単位(異なるスキーマ)】
- C:¥>impdp taro/pass@db01 schemas=taro directory=dir01 dumpfile=data.dmp logfile=data.log remap_schema=taro:jiro
この例では、taroスキーマからjiroスキーマへインポートされます。
(例)DMPファイルとは異なる表領域へインポートする
- 【スキーマ単位(異なる表領域)】
- C:¥>impdp taro/pass@db01 schemas=taro directory=dir01 dumpfile=data.dmp logfile=data.log remap_tablespace=tbs01:tbs02
(例)DMPファイルとは異なるスキーマ/表領域へスキーマ単位でインポートする
- 【スキーマ単位(異なるスキーマ/表領域)】
- C:¥>impdp taro/pass@db01 schemas=taro directory=dir01 dumpfile=data.dmp logfile=data.log remap_schema=jiro:taro remap_tablespace=tbs01:tbs02
(例)DMPファイルとは異なるスキーマ/表領域へテーブル指定でインポートする
- 【テーブル単位(異なるスキーマ/表領域)】
- C:¥>impdp taro/pass@db01 directory=dir01 dumpfile=data.dmp logfile=data.log table_exists_action=truncate remap_schema=jiro:taro remap_tablespace=tbs01:tbs02 tables=jiro.tab1,jiro.tab2
(例)オプションをパラメータファイルで指定してインポートする
- 【パラメータファイルでインポート】
- C:¥>impdp taro/pass@db01 parfile=parameters.par
- パラメータファイル例(parameters.par)
- schemas=taro directory=dir01 dumpfile=data.dmp logfile=data.log ...
directoryは事前に作成しておく必要があります。
詳しくは DIRECTORY編 をご覧ください。