ORACLE/IMPORT(impdp)編

オラクルちょこっとリファレンス

HOME > IMPORT(impdp)編

IMPORT(impdp)

impdpはOracle10gから導入された新しいインポートユーティリティです。

以前のimpと比べ、パフォーマンスが向上して高速にインポートができます。

Oracle11g以降では、以前のコマンドである impは非推奨になっています。

IMPORT概念図

impdpの構文

impdpの構文は以下の通りです。

impdp構文
impdp <ユーザ>/<パスワード>@<接続文字列> <オプション>

impdpのオプション

impdpのオプションには以下のようなものがあります。

ここで取り上げたものは、よく使われる主要なオプションのみです。

【いずれか1つ指定可能なオプション】
パラメータ説明
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編 をご覧ください。


ToTop