Oracleデータベースのインポート

インポートとは、エクスポートしたファイル内のデータをデータベースに読み込んでデータを復元することである。

インポートのコマンド

Oracleデータベースにインポートするコマンドには次のものがある。

インポートのコマンド
コマンド 説明
imp インポート・ユーティリティ (後方互換性のために残されている古いコマンド)
impdp インポート・ユーティリティ

impdp

impdpはexpdpコマンドでエクスポートしたファイルからデータをOracleデータベースに読み込ませるインポート・ユーティリティである。

$ impdp tsuka/mellon directory=data_pump_dir dumpfile=exp.dmp tables=emp

impdpでインポートを行う場合、ディレクトリ・オブジェクトの作成と権限の付与が必要である。

SQL> CREATE OR REPLACE DIRECTORY data_pump_dir AS '/home/datapump';
SQL> GRANT READ, WRITE ON DIRECTORY data_pump_dir TO tsuka;

imp

impとは、expコマンドでエクスポートしたファイルからデータをOracleデータベースに読み込ませるインポート・ユーティリティである。

imp [user/password] keyword=value ...
user

ユーザ名を指定する。「USERID=user/password」で指定してもよい。

password

パスワードを指定する。「USERID=user/password」で指定してもよい。

keyword=value

キーワードと、その値を指定する。空白で区切って、複数指定できる。

impコマンドに指定できるキーワード
キーワード 説明
USERID ユーザ名/パスワード
BUFFER バッファのサイズをバイト単位で指定する。
デフォルトは4096バイトであるが、この値は小さすぎてインポートに時間がかかるため、大きな値を指定した方がよい。
FILE 入力ファイル
SHOW ファイル内容の表示のみ
IGNORE インポートするオブジェクトが既に存在していた場合の対応
y: インポートする。
n: エラーを報告して、インポートをスキップする。
GRANTS 権限のインポート
INDEXES 索引のインポート
LOG 画面出力のログファイル
ROWS y: 既に存在するテーブルにレコードをインポートする。
FULL ファイル全体のインポート
FROMUSER 所有するユーザのリスト
TOUSER ユーザ名リスト
TABLES 表名のリスト
RECORDLENGTH I/Oレコードの長さ
INCTYPE 増分インポートの種類
COMMIT 配列挿入時のコミット
PARFILE パラメータファイル名
CONSTRAINTS 制約のインポート
DESTROY 表領域データファイルの上書き
INDEXFILE 指定ファイルの表/索引情報の書き込み
SKIP_UNUSABLE_INDEXES 使用不可の索引のメンテナンスをスキップ
FEEDBACK n行ごとに進行状況を表示
TOID_NOVALIDATE 指定したタイプIDの検証をスキップ
FILESIZE 各ダンプファイルの最大サイズ
STATISTICS 計算済み統計情報のインポート
RESUMABLE 領域関連のエラーが発生すると一時停止する
RESUMABLE_NAME 再開可能文の指定に使用するテキスト文字列
RESUMABLE_TIMEOUT RESUMABLEの待機時間

既に存在するテーブルにレコードをインポートする。

$ imp tsuka/mellon file=/home/tsuka/emp.dmp rows=y ignore=y tables=emp buffer=1048576

関連記事