パラメータ | EXP | IMP | デフォルト値 | 説明 |
FULL | ○ | ○ | N | データベース全体エキスポート/インポートを行う場合は「Y」。 |
OWNER | ○ | なし | スキーマ単位モードエキスポート/インポートを行う場合は「Y」。 | |
TABLES | ○ | ○ | なし | テーブル単位モードエクスポート/インポートを行う場合、対象テーブル名を指定する。 <指定方法> TABLES=AAA ←基本 TABLES=('AAA','BBB') ←複数テーブル TABLES=('AAA%') ←正規表現もできちゃう! TABLES=('AAA:200012') ←パーティションテーブルの一部を指定 |
USERID | ○ | ○ | なし | 処理実行ユーザを指定する。 |
PARFILE | ○ | ○ | なし | パラメータファイルモード時にパラメータ記述ファイルを指定する。。 |
FILE | ○ | ○ | expdat.dmp | 処理対象ダンプファイルを指定。複数指定も可能。 |
LOG | ○ | ○ | なし | ログファイル出力先。指定すべき。 |
DIRECT | ○ | N | ダイレクトパスを利用(「Y」)した方が、従来型パスより早くなる可能性が高い。 | |
ROWS | ○ | ○ | Y | 表データ移行フラグ。 表定義のみエキスポートしたいなら「N」。 |
INDEXES | ○ | ○ | Y | 索引移行フラグ。 |
GRANTS | ○ | ○ | Y | オブジェクト権限移行フラグ。 |
CONSTRAINTS | ○ | ○ | Y | 表制約移行フラグ。 |
TRIGGERS | ○ | Y | トリガー移行フラグ。 | |
STATISTICS | ○ | ○ | EXP:ESTIMATE IMP:ALWAYS |
統計情報の移行方法を指定。統計情報をコピーしたくない場合は「NONE」。 |
COMPRESS | ○ | Y | エクステント圧縮フラグ。 Y:データを1つの初期エクステントに統合しようとする。 N:セグメントの記憶パラメータ設定に従う。 | |
CONSISTENT | ○ | N | データの一貫性を保障したいなら「Y」。 ただし、エクスポート実行時に更新量が多いとロールバックセグメント消費量が大きくなる。 更新の発生しない時間帯に利用するなら「Y」でOK。 | |
COMPILE | ○ | N | パッケージ/プロシージャなどをインポート時にコンパイルするかどうかを指定。 | |
IGNORE | ○ | N | オブジェクト作成エラーの処理方法。 「Y」を指定するとエラーは無視される。 表の定義情報を変更したい場合、あらかじめ作成しておいてインポートというテクニックが有効。 | |
FROMUSER | ○ | N | エキスポート元ユーザを指定。 | |
TOUSER | ○ | N | インポート先ユーザを指定。 | |
FEEDBACK | ○ | ○ | 0 | 指定した行数の処理完了ごとにピリオドを表示できる。 大量データを対象に処理する時に、進捗把握のために利用すると便利。 |
BUFFER | ○ | ○ | OS固有 | 1回あたりの行フェッチバッファサイズ。 対象データ量が多い場合に大きくすると早くなる場合あり。 基本的にでかいほどパフォーマンス効果高いが、SGA圧迫しない程度にね。ex.10485760(=10M) |
RECORDLENGTH | ○ | ○ | OS固有 | 1回あたりの行フェッチバッファサイズ。 BUFFERと同義。ダイレクトパスエクスポート時は、このパラメータでの指定が必要。 インポートに関しては常にBUFFER指定でいいみたい。インポートで使う機会なし? |
COMMIT | ○ | N | 「Y」を指定すると各行の挿入後にコミット処理。「N」の場合は表単位にコミット処理。 RBSが極端に大きくなることをふせぎ、大容量インポート時のパフォーマンスが向上する。 なんで、デフォルト「Y」とちゃうのやろ? | |
FILESIZE | ○ | ○ | OS依存 | ダンプファイルの最大サイズ制限(ex.2G)がOSによってはある。 このパラメータにてサイズをしてしておくことで、FILEにて指定した複数ファイルへ分割出力できる。 |
VOLSIZE | ○ | ○ | OS依存 | FILESIZEのテープ使用時バージョン。 |
INDEXFILE | ○ | なし | 指定したファイルに索引作成用SQL文が生成される。 CONSTRAINTS にy を設定しておくと表制約も同時に生成。 | |
SHOW | ○ | N | エクスポートファイルの内容が画面に表示される。インポートは実行されない。 |
いくつか記載しとこう。
例1)表モードでのエクスポート
$ exp system/***** parfile=params1.dat
log=20040601.log
-- params.dat
--
file=expdat.dmp
tables=(scott.emp,blake.dept)
grants=y
direct=y
---------------
scottのテーブルempとblakeのテーブルdeptをファイルexpdat.dmpにエクスポートする。
記述しなかったパラメータについては、デフォルト値が採用される。
logの指定のように、コマンドとパラメータを混ぜて記述することも可能。
例2)表モードでのインポート
$
imp system/***** parfile=params2.dat
--- params2.dat
---
file=expdat.dmp
fromuser=scott
touser=blake
tables=(*)
---------------
ファイルexpdat.dmpを利用して、scottのテーブル全て(例1引継ぎならempのみ)をblakeへインポートする。
エクスポート/インポートについて雰囲気は伝わったでしょうか?
あとは、オプションを変更するなどして、いろいろ試してみよう♪
エラーが出た場合、まずはログ確認で!