27 オリジナルのインポート
オリジナルのインポート・ユーティリティ(imp
)は、オリジナルのエクスポート・ユーティリティ(exp
)を使用して作成されたダンプ・ファイルをインポートします。
オリジナルのエクスポート・ユーティリティはサポートされなくなりました。
- インポート・ユーティリティとは
オリジナル・インポート・ユーティリティ(imp
)は、オリジナル・エクスポート・ユーティリティ(exp
)によって作成されたダンプ・ファイルからオブジェクト定義および表データを読み込みます。 - 表オブジェクト: インポートの順序
表オブジェクトは、エクスポート・ダンプ・ファイルから読み取られた順序でインポートされます。 - インポート・ユーティリティを使用する前に
元のインポート・ツールを使用する前に実行する内容について説明します。 - 既存の表へのインポート
これらの項では、既存の表にデータをインポートする場合に考慮する必要がある点について説明します。 - インポート操作上のスキーマおよびデータベース・トリガーの影響
特定のスキーマに対するDDLイベントまたはデータベースに対するDDL関連イベントで実行するように定義されているトリガーは、システム・トリガーです。 - インポート・ユーティリティの起動
オリジナルのインポート・ユーティリティを起動してパラメータを指定するには、異なる3つの方法のいずれかを使用します。 - インポート・ユーティリティのモード
インポート・ユーティリティには、次の4種類の操作モードがあります。 - インポート・パラメータ
これらの項では、インポート・コマンドライン・パラメータについて説明します。 - インポート・セッションの例
これらの項では、インポート・セッションの例をいくつか取り上げ、パラメータ・ファイル方式およびコマンドライン方式の使用方法を示します。 - 終了コードによる結果の検査と表示
インポート・ユーティリティでは、操作の完了後、すぐに結果が表示されます。プラットフォームによっては、実行結果はプロセス終了コードに通知され、ログ・ファイルにも記録されます。 - インポート中のエラー処理
これらの項では、データベース・オブジェクトのインポート時に発生する可能性があるエラーについて説明します。 - 表レベル・インポートおよびパーティション・レベル・インポート
表、パーティションおよびサブパーティションをインポートできます。 - 索引作成およびメンテナンスの制御
これらの項では、索引作成およびメンテナンスに関連するインポート・ユーティリティの動作について説明します。 - オリジナルのインポート・ユーティリティでOracle Netを使用する際のネットワーク考慮事項
ネットワーク経由でインポートを実行する場合は、Oracle NetでOracle Data Pumpのオリジナルのインポート・ユーティリティ(imp
)を使用できます。 - 文字セットおよびグローバリゼーション・サポートに関する考慮点
これらの項では、ユーザー・データおよびデータ定義言語(DDL)の文字セット変換に関連するインポート・ユーティリティのグローバリゼーション・サポートの動作について説明します。 - インスタンス親和性の使用方法
インスタンス親和性を使用して、インポートおよびエクスポートするデータベース内のインスタンスにジョブを関連付けることができます。 - データベース・オブジェクトのインポートに関する考慮点
これらの項では、特定のデータベース・オブジェクトをインポートする場合の制限事項および考慮点について説明します。 - ファイングレイン・アクセス・コントロールに対するサポート
ファイングレイン・アクセス・コントロール・ポリシーをリストアするには、ファイングレイン・アクセス・コントロール・ポリシーが使用可能な表を含むエクスポート・ファイルからインポートするユーザーが、表のセキュリティ・ポリシーを回復するためのDBMS_RLS
パッケージに対するEXECUTE
権限が必要です。 - スナップショットおよびスナップショット・ログ
特定の状況、特にデータ・ウェアハウスに関連する場合、スナップショットは、マテリアライズド・ビューと呼ばれます。これらの項では、そのような場合でもスナップショットという用語を使用します。 - トランスポータブル表領域
トランスポータブル表領域機能は、一連の表領域を、あるOracle Databaseから他のOracle Databaseに移動できる機能です。 - 記憶域パラメータ
デフォルトでは、表は元の表領域にインポートされます。 - 読取り専用表領域
読取り専用表領域はエクスポート可能です。インポートでは、表領域がターゲット・データベース内に存在しない場合、読取り/書込み表領域として表領域が作成されます。 - 表領域を削除する方法
インポート前に、オブジェクトに別の表領域を使用するように再定義すると、表領域を削除できます。imp
コマンドの発行時には、IGNORE=y
を指定します。 - 表領域を再編成する方法
ユーザーの割当て制限で許可される場合、そのユーザーの表はエクスポート元と同じ表領域にインポートされます。 - 統計情報のインポート
統計情報がエクスポート時に必要で、表にアナライザ統計が利用できる場合、表の統計情報の再計算に使用されるANALYZE
文が、エクスポートによってダンプ・ファイルに含まれます。 - エクスポート・ユーティリティおよびインポート・ユーティリティを使用したデータベース移行のパーティション化
エクスポート・ユーティリティおよびインポート・ユーティリティを使用して大規模データベースを移行する場合、移行を複数のエクスポート・ジョブおよびインポート・ジョブにパーティション化するとより効率的です。 - インポート操作のチューニングに関する考慮点
これらのセクションでは、インポート操作のパフォーマンスを向上させるためのいくつかの方法について説明します。 - リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用
これらのセクションでは、リリースが異なるエクスポート・ユーティリティおよびOracle Databaseの使用に関連した互換性の問題について説明します。
親トピック: その他のユーティリティ
27.1 インポート・ユーティリティとは
オリジナル・インポート・ユーティリティ(imp
)は、オリジナル・エクスポート・ユーティリティ(exp
)によって作成されたダンプ・ファイルからオブジェクト定義および表データを読み込みます。
ノート:
オリジナルのエクスポートは、Oracle Database 11gからは原則としてサポートされなくなりました。Oracle Database 11g以降のリリースでサポートされているオリジナルのエクスポートの使用方法は、XMLType
データのOracle Database 10gリリース2 (10.2)以前への下位移行のみです。新しいOracle Data Pumpエクスポートおよびインポート・ユーティリティを使用することをお薦めします。このガイドラインの唯一の例外は、元のエクスポートおよびインポートが必要な次の状況です。
- オリジナルのエクスポート・ユーティリティ(
exp
)を使用して作成されたファイルをインポートする必要がある。 - オリジナルのインポート・ユーティリティ(
imp
)を使用してインポートされるファイルをエクスポートする必要がある。このような例として考えられるのは、Oracle Database 10gからデータをエクスポートし、それより前のデータベース・リリースにインポートする場合です。
元のインポートを使用する場合、次の条件がtrueである必要があります。
- ダンプ・ファイルはOracleのバイナリ形式になっており、オリジナルのインポートを使用した場合のみ読取りが可能です。
- ダンプ・ファイルの作成に使用したエクスポート・ユーティリティより前のバージョンのインポート・ユーティリティは使用できません。
親トピック: オリジナルのインポート
27.2 表オブジェクト: インポートの順序
表オブジェクトは、エクスポート・ダンプ・ファイルから読み込まれたとおりにインポートされます。
ダンプ・ファイルには、次の順序でオブジェクトが格納されています。
-
型定義
-
表定義
-
表データ
-
表索引
-
整合性制約、ビュー、プロシージャおよびトリガー
-
ビットマップ索引、ファンクション索引およびドメイン索引
インポートの順序は次のとおりです。まず、新しい表が作成されます。次にデータがインポートされ、索引が作成されます。その後トリガーがインポートされ、整合性制約が新しい表で使用可能になり、ビットマップ索引、ファンクション索引またはドメイン索引(あるいはそれらのすべて)が作成されます。このようにインポートされると、表のインポート順序が原因でデータが拒否されることがなくなります。また、同じデータについて、トリガーが重複して2回(最初の挿入時に1回、インポート中に1回)起動することもなくなります。
親トピック: オリジナルのインポート
27.3 インポート・ユーティリティを使用する前に
元のインポート・ツールを使用する前に実行する内容を学習します。
- インポート準備の概要
インポートを準備するために、必要に応じてスクリプトが実行されていること、およびアクセス権があることを確認してください - catexp.sqlまたはcatalog.sqlの実行
インポート・ユーティリティを使用するには、データベースを作成するかまたは新しいバージョンに移行した後で、スクリプトcatexp.sql
または(catexp.sql
を実行する)catalog.sql
を実行する必要があります。 - インポート操作のアクセス権の確認
インポートを使用するには、Oracle Databaseに対するCREATE SESSION
権限を持っている必要があります。この権限は、データベースの作成時に設定されるCONNECT
ロールに含まれます。 - 処理上の制限事項
インポート・ユーティリティを使用してデータを処理する場合、制限が適用されます。
親トピック: オリジナルのインポート
27.3.1 インポート準備の概要
インポートを準備するために、必要に応じてスクリプトが実行されていること、およびアクセス権があることを確認してください
インポートの使用を開始する前に、次の事項に注意してください
-
データベースを手動で作成した場合は、
catexp.sql
またはcatalog.sql
スクリプトが実行されたことの確認。Database Configuration Assistant(DBCA)を使用してデータベースを作成した場合は、これらのスクリプトを実行する必要はありません。 -
必要なアクセス権限を所有していることの確認
親トピック: インポート・ユーティリティを使用する前に
27.3.2 catexp.sqlまたはcatalog.sqlの実行
インポート・ユーティリティを使用するには、データベースを作成するかまたは新しいバージョンに移行した後で、スクリプトcatexp.sql
または(catexp.sql
を実行する)catalog.sql
を実行する必要があります。
データベースに対して、catexp.sql
またはcatalog.sql
を実行するのは1回のみです。スクリプトを実行すると、次の処理が行われ、データベースはエクスポートおよびインポート操作に備えて調整されます。
-
データ・ディクショナリへの必要なインポート・ビューの作成
-
EXP_FULL_DATABASE
ロールおよびIMP_FULL_DATABASE
ロールの作成 -
EXP_FULL_DATABASE
およびIMP_FULL_DATABASE
ロールへのすべての必要な権限の割当て -
DBA
ロールへのEXP_FULL_DATABASE
およびIMP_FULL_DATABASE
の割当て -
インストールされている
catexp.sql
のバージョンの記録
親トピック: インポート・ユーティリティを使用する前に
27.3.3 インポート操作のアクセス権の確認
インポート・ユーティリティを使用するには、Oracle Databaseに対するCREATE SESSION
権限が必要です。この権限は、データベースの作成時に設定されるCONNECT
ロールに含まれます。
他のユーザーが作成したエクスポート・ファイルをインポートすることもできます。ただし、EXP_FULL_DATABASE
ロールを所有するユーザーが作成したエクスポート・ファイルをインポートするには、IMP_FULL_DATABASE
ロールが必要です。通常、データベース管理者(DBA)にはこれらの両方のロールが割り当てられています。
- オブジェクトをスキーマにインポートする方法
独自のスキーマにオブジェクトをインポートするには、各オブジェクトに必要な権限を確認します。 - 権限のインポート
他のユーザーに付与されている権限をインポートするには、インポートを開始したユーザーがそのオブジェクトの所有者であるか、オプションWITH GRANT OPTION
付きのオブジェクト権限を所有している必要があります。 - 他のスキーマへのオブジェクトのインポート
オブジェクトを他のユーザーのスキーマにインポートする場合は、IMP_FULL_DATABASE
ロールを使用可能にしておく必要があります。 - システム・オブジェクトのインポート
システム・オブジェクトを全データベース・エクスポート・ファイルからインポートする場合は、IMP_FULL_DATABASE
ロールを使用可能にする必要があります。
親トピック: インポート・ユーティリティを使用する前に
27.3.3.1 オブジェクトをスキーマにインポートする方法
オブジェクトを自分のスキーマにインポートするには、各オブジェクトに必要な権限を確認します。
次の表に、自分のスキーマにオブジェクトをインポートするために必要な権限を示します。これらのすべての権限は、あらかじめRESOURCE
ロールに含まれています。
表27-1 自分のスキーマにオブジェクトをインポートするために必要な権限
オブジェクト | 必要な権限(該当する場合の権限タイプ) |
---|---|
クラスタ |
|
データベース・リンク |
|
表のトリガー |
|
スキーマのトリガー |
|
索引 |
|
整合性制約 |
|
ライブラリ |
|
パッケージ |
|
プライベート・シノニム |
|
順序 |
|
スナップショット |
|
ストアド・ファンクション |
|
ストアド・プロシージャ |
|
表データ |
|
表定義(コメントおよび監査オプションを含む) |
|
ビュー |
実表の場合は |
オブジェクト型 |
|
外部関数ライブラリ |
|
ディメンション |
|
演算子 |
|
索引タイプ |
|
親トピック: インポート操作のアクセス権の確認
27.3.3.2 権限のインポート
他のユーザーに付与されている権限をインポートするには、インポートを開始したユーザーがそのオブジェクトの所有者であるか、オプションWITH GRANT OPTION
付きのオブジェクト権限を所有している必要があります。
次の表に、権限がターゲット・システムで有効となるために必要な条件を示します。
表27-2 権限のインポートに必要な権限
権限 | 条件 |
---|---|
オブジェクト権限 |
オブジェクトがユーザーのスキーマに存在しているか、 ユーザーが
|
システム権限 |
ユーザーが |
親トピック: インポート操作のアクセス権の確認
27.3.3.3 他のスキーマへのオブジェクトのインポート
オブジェクトを他のユーザーのスキーマにインポートする場合は、IMP_FULL_DATABASE
ロールを使用可能にしておく必要があります。
親トピック: インポート操作のアクセス権の確認
27.3.3.4 システム・オブジェクトのインポート
システム・オブジェクトを全データベース・エクスポート・ファイルからインポートする場合は、IMP_FULL_DATABASE
ロールを使用可能にする必要があります。
パラメータFULL
を指定すると、次のシステム・オブジェクトがインポート対象に含まれます。
-
プロファイル
-
パブリック・データベース・リンク
-
パブリック・シノニム
-
ロール
-
ロールバック・セグメント定義
-
リソース・コスト
-
外部関数ライブラリ
-
コンテキスト・オブジェクト
-
システム・プロシージャ・オブジェクト
-
システム監査オプション
-
システム権限
-
表領域定義
-
表領域割当て制限
-
ユーザー定義
-
ディレクトリ別名
-
システム・イベント・トリガー
親トピック: インポート操作のアクセス権の確認
27.3.4 処理上の制限事項
インポート・ユーティリティを使用してデータを処理する場合、制限が適用されます。
具体的には次のとおりです。
-
型定義が進化し、その進化した型を参照するデータがエクスポートされた場合、インポート・システムの型定義も同様に進化させる必要があります。
-
エクスポートおよびインポート時には、表およびパーティションの表圧縮属性が保持されます。ただし、インポート処理ではダイレクト・パスAPIが使用されないため、データは、インポート時に圧縮された形式では格納されません。
親トピック: インポート・ユーティリティを使用する前に
27.4 既存の表へのインポート
これらの項では、既存の表にデータをインポートする場合に考慮する必要がある点について説明します。
- データのインポート前に手動で表を作成する方法
データをインポートする前に表を手動で作成できます。 - 参照制約を使用禁止にする方法
参照制約を使用禁止にする方法について説明します。 - 手動によるインポートの順序付け
手動によるインポートの順序付けについて説明します。
親トピック: オリジナルのインポート
27.4.1 データのインポート前に手動で表を作成する方法
データをインポートする前に表を手動で作成できます。
エクスポート・ファイルから表にデータをインポートする前に手動で表を作成する場合は、以前使用した表定義を使用するか、互換性のある形式を使用して表を作成します。たとえば、列幅の増加および列順序の変更はできますが、次のことはできません。
-
NOT NULL
列の追加 -
列のデータ型の互換性のないデータ型への変更(
LONG
からNUMBER
など) -
表で使用されているオブジェクト型定義の変更
-
DEFAULT
列値の変更ノート:
データをインポートする前に表を手動で作成した場合は、表がすでに存在するため、エクスポート・ダンプ・ファイルで
CREATE
TABLE
文を実行するとエラーが発生します。このエラーを回避して、表へのデータのロードを継続するには、インポート・パラメータをIGNORE
=y
に設定します。設定しない場合、表作成エラーが発生し、データは表にロードされません。
親トピック: 既存の表へのインポート
27.4.2 参照制約を使用禁止にする方法
参照制約を使用禁止にする方法について説明します。
通常のインポートの順序では、参照制約はすべての表がインポートされた後にインポートされます。この順序でインポートすることによって、まだインポートされていないデータに対する参照整合性制約が存在する場合に発生するエラーを回避できます。
データが既存の表にロードされる場合に、このようなエラーが発生することがあります。たとえば、表emp
でmgr
列に参照整合性制約が定義されており、その制約によって表emp
内のマネージャ番号が検証される場合、マネージャの行がインポートされていない時点では、従業員の行が基準を満たしていても、参照整合性制約の違反になることがあります。
このようなエラーが発生すると、エラー・メッセージが生成され、失敗した行をバイパスして、引き続き他の行が表にインポートされます。制約を手動で使用禁止にすると、このエラーを回避できます。
複数の表にまたがって参照制約が存在すると、問題になることがあります。たとえば、emp
表の順序がエクスポート・ダンプ・ファイル内でdept
表より先であるにもかかわらず、emp
表からdept
表へ参照チェックが行われると、参照制約違反のため、emp
表のいくつかの行がインポートされないことがあります。
このようなエラーが発生しないようにするには、データを既存の表にインポートするときに、参照整合性制約を使用禁止にします。
親トピック: 既存の表へのインポート
27.4.3 手動によるインポートの順序付け
手動によるインポートの順序付けについて説明します。
インポート後に制約が再び使用可能にされると、表全体がチェックされますが、大きな表の場合はチェックに時間がかかることがあります。表のチェックにかかる時間が長すぎる場合、インポートを手動で順序付ける方が効率的なこともあります。
そのためには、エクスポート・ファイルからのインポートを1回ではなく複数回に分けて実行します。まず、参照チェックのターゲットである表をインポートします。次に、これらの表を参照する表をインポートします。表が循環的に相互参照している場合、および表がその表自体を参照している場合を除き、この方法は有効です。
親トピック: 既存の表へのインポート
27.5 インポート操作上のスキーマおよびデータベース・トリガーの影響
特定のスキーマに対するDDLイベントまたはデータベースに対するDDL関連イベントで実行するように定義されているトリガーは、システム・トリガーです。
これらのトリガーは、特定のインポート操作に悪い影響を与える場合があります。たとえば、表などのデータベース・オブジェクトを正常に再作成できない場合があります。これによって、トリガーが原因で問題が発生したということがわからないエラーが返されます。
データベース管理者およびシステム・トリガーを作成するユーザーは、このようなトリガーによって、ユーザーが、権限を持つデータベースの操作を実行できなくなることがないように確認する必要があります。システム・トリガーをテストするには、次のステップに従います。
-
トリガーを定義します。
-
データベース・オブジェクトを作成します。
-
表モードまたはユーザーモードでオブジェクトをエクスポートします。
-
オブジェクトを削除します。
-
オブジェクトをインポートします。
-
オブジェクトが正常に再作成されていることを確認します。
ノート:
全体エクスポートでは、スキーマ
SYS
が所有するトリガーはエクスポートされません。SYS
トリガーは、全体インポートの前後のいずれかに手動で再作成する必要があります。このトリガーによってインポートの進行を妨げるような処理が定義されないように、インポートの後に再作成することをお薦めします。
親トピック: オリジナルのインポート
27.6 インポートの起動
オリジナルのインポート・ユーティリティを起動してパラメータを指定するには、異なる3つの方法のいずれかを使用します。
オリジナルのインポート・ユーティリティを開始するための3つの方法は次のとおりです。
-
コマンドライン・エントリ
-
パラメータ・ファイル
-
対話方式モード
これらのいずれかの方法を使用する前に、使用可能なパラメータについての説明を必ず読んでください。
- コマンドライン・エントリ
すべての有効なパラメータおよびその値をコマンドラインから指定できます。 - パラメータ・ファイル
パラメータ・ファイルに、すべての有効なパラメータおよびその値を指定できます。 - 対話方式モード
各パラメータの値をプロンプトで入力するには、コマンドラインでimp
を指定するだけです。 - SYSDBAでのインポート・ユーティリティの起動
オリジナルのインポート・ユーティリティをSYSDBA
として起動することは特別な手順であり、特定の状況下でのみ実行する必要があります。 - オンライン・ヘルプの利用
インポート・ユーティリティにはオンライン・ヘルプがあります。インポート・ユーティリティのヘルプを表示するには、imp
help
=y
と入力します。
関連トピック
親トピック: オリジナルのインポート
27.6.1 コマンドライン・エントリ
すべての有効なパラメータおよびその値をコマンドラインから指定できます。
次の構文を使用します(ユーザー名とパスワードの入力を求められます)。
imp PARAMETER=value
または
imp PARAMETER=(value1,value2,...,valuen)
システムでのコマンドラインの最大長を超える数のパラメータは指定できません。
親トピック: インポート・ユーティリティの起動
27.6.2 パラメータ・ファイル
パラメータ・ファイルに、すべての有効なパラメータおよびその値を指定できます。
複数のパラメータを1つのファイルに格納することによって、これらを簡単に変更したり再利用することができます。データベースごとに別のパラメータを使用する場合は、複数のパラメータ・ファイルを作成できるので、それぞれにパラメータ・ファイルを用意すると便利です。
フラット・ファイル用のテキスト・エディタを使用してパラメータ・ファイルを作成します。コマンドライン・オプションPARFILE=
filename
を指定すると、インポート・ユーティリティは、コマンドラインからではなく指定されたファイルからパラメータを読み込みます。たとえば:
パラメータ・ファイルは、次のいずれかの構文を使用して指定します。
PARAMETER=value PARAMETER=(value) PARAMETER=(value1, value2, ...)
次に、パラメータ・ファイル内のリストの一部を示します。
FULL=y FILE=dba.dmp GRANTS=y INDEXES=y CONSISTENT=y
ノート:
パラメータ・ファイルの最大サイズは、オペレーティング・システムによって制限されます。また、パラメータ・ファイル名はオペレーティング・システムのネーミング規則に従います。
ポンド(#)記号を使用すると、パラメータ・ファイルにコメントを追加できます。ポンド(#)の右側にある文字はすべて無視されます。
コマンドラインでのパラメータの入力と同時にパラメータ・ファイルを指定できます。実際、パラメータ・ファイルとコマンドラインの両方に同じパラメータを指定することもできます。コマンドラインでのPARFILE
パラメータと他のパラメータの位置によって、優先されるパラメータが決まります。たとえば、パラメータ・ファイルparams.dat
でパラメータINDEXES=y
を指定し、インポート・ユーティリティを次のコマンドで起動するとします。
imp PARFILE=params.dat INDEXES=n
この場合、INDEXES=n
はPARFILE=params.dat
の後にあるため、パラメータ・ファイルに指定されているINDEXES
パラメータの値は、INDEXES=n
によって上書きされます。
関連項目:
-
リモートのデータベースからのエクスポートの指定方法の詳細は、「ネットワークに関する考慮点」を参照してください。
親トピック: インポート・ユーティリティの起動
27.6.3 対話型モード
各パラメータの値をプロンプトで入力するには、コマンドラインでimp
を指定するだけです。
ユーザー名とパスワードを入力するように要求されます。
その後、一般的に使用されるパラメータが表示されます。デフォルト値を受け入れるか(示された場合)、または異なる値を入力できます。コマンドライン対話方式では、すべての機能に関してプロンプトが表示されるわけではありません。また、コマンドライン対話方式は下位互換用のみに提供されています。
親トピック: インポート・ユーティリティの起動
27.6.4 SYSDBAでのインポート・ユーティリティの起動
オリジナルのインポート・ユーティリティをSYSDBA
として起動することは特別な手順であり、特定の状況下でのみ実行する必要があります。
SYSDBA
は内部的に使用され、一般ユーザーとは異なる特別な役割があります。そのため、通常、次の場合以外は、インポート・ユーティリティをSYSDBA
で起動しないでください。
-
Oracleサポート・サービスから要求された場合
-
トランスポータブル表領域セットをインポートする場合
親トピック: インポート・ユーティリティの起動
27.6.5 オンライン・ヘルプの利用
インポート・ユーティリティでは、オンライン・ヘルプが提供されます。インポート・ユーティリティのヘルプを表示するには、imp
help
=y
と入力します。
親トピック: インポート・ユーティリティの起動
27.7 インポート・モード
インポート・ユーティリティには、次の4種類の操作モードがあります。
具体的には次のとおりです。
-
全体インポート: データベース全体をインポートします。
IMP_FULL_DATABASE
ロールを所有するユーザーのみが使用できます。FULL
パラメータを使用してこのモードを指定します。 -
表領域モード: 特権ユーザーが表領域をOracle Database間で移動できます。
TRANSPORT_TABLESPACE
パラメータを使用してこのモードを指定します。 -
ユーザー・モード: 所有するすべてのオブジェクト(表、権限、索引、プロシージャなど)をインポートできます。特権ユーザーがユーザー・モードでインポートする場合、指定したユーザー・グループのユーザーのスキーマにあるすべてのオブジェクトをインポートできます。このモードを指定するには、
FROMUSER
パラメータを使用します。 -
表モード: 特定の表およびパーティションをインポートできます。特権ユーザーは、インポートする表を含むスキーマを指定して、その表を修飾できます。
TABLES
パラメータを使用してこのモードを指定します。ノート:
表モードを使用して
ANYDATA
型の列を含む表をインポートする場合、次のエラーが発生する場合があります。ORA-22370: メソッドの使用方法が正しくありません。Nonexistent type。
このメッセージは、
ANYDATA
列が、データベースに存在しない他の型に依存することを示します。表モードを使用してANYDATA
型を使用する表をインポートする前に、手動で、ターゲット・データベース内に依存型を作成する必要があります。
IMP_FULL_DATABASE
ロールを持つユーザーは、これらのモードのいずれかを指定する必要があります。指定しない場合、インポートはエラーになります。IMP_FULL_DATABASE
ロールを持たないユーザーがこれらのモードをいずれも指定しない場合は、ユーザー・レベルのインポートが実行されます。
ノート:
Oracle Database 12c リリース2 (12.2)から、インポート・ユーティリティ(imp)では、セキュリティ上の理由から、ユーザーSYS
としてオブジェクトをインポートしなくなりました。ダンプ・ファイルにユーザーSYS
として再作成する必要があるオブジェクトが含まれている場合、impユーティリティでは、かわりにユーザーSYSTEM
としてそれらを再作成することを試みます。ユーザーSYSTEM
によってオブジェクトを再作成できない場合は、インポートが完了した後、ユーザー自身がオブジェクトを手動で再作成する必要があります。
インポート・ジョブがDBA
ロールを持つユーザーによって実行され、一部のオブジェクトをユーザーSYSTEM
によって再作成できない場合、次の警告メッセージがログ・ファイルに書き込まれます。
IMP-00403:
Warning: This import generated a separate SQL file "logfilename_sys" which contains DDL that failed due to a privilege issue.
生成されるSQLファイルには、ユーザーSYSTEM
によって再作成できなかったオブジェクトの失敗したDDLが含まれます。これらのオブジェクトを再作成するには、インポートが終了した後、失敗したDDLを手動で実行する必要があります。
SQLファイルには、LOGパラメータで指定されたファイル名に'_sys.sql'を追加した名前が自動的に付けられます。たとえば、ログ・ファイル名がJulyImport
の場合、SQLファイル名はJulyImport
_sys.sqlとなります。
ログ・ファイルが指定されていない場合、SQLファイルのデフォルト名はimport
_sys.sqlとなります。
ノート: SQLファイルはすべてのインポート・ジョブで生成されるわけではなく、ユーザーDBAとして実行されたジョブによってのみ生成されます。
次の表に、各モードでインポートされるオブジェクトのリストを示します。
表27-3 各モードでインポートされるオブジェクト
オブジェクト | 表モード | ユーザー・モード | 全データベース・モード | 表領域モード |
---|---|---|---|---|
分析クラスタ |
なし |
あり |
あり |
なし |
分析表/統計 |
あり |
あり |
あり |
あり |
アプリケーション・コンテキスト |
なし |
なし |
あり |
なし |
監査情報 |
あり |
あり |
あり |
なし |
Bツリー索引、ビットマップ索引、ドメイン・ファンクション索引 |
あり脚注1 |
あり |
あり |
あり |
クラスタ定義 |
なし |
あり |
あり |
あり |
列コメントおよび表コメント |
あり |
あり |
あり |
あり |
データベース・リンク |
なし |
あり |
あり |
なし |
デフォルト・ロール |
なし |
なし |
あり |
なし |
ディメンション |
なし |
あり |
あり |
なし |
ディレクトリ別名 |
なし |
なし |
あり |
なし |
外部表(データなし) |
あり |
あり |
あり |
なし |
外部関数ライブラリ |
なし |
あり |
あり |
なし |
表の所有者以外のユーザーが所有する索引 |
あり(特権ユーザーのみ) |
あり |
あり |
あり |
索引タイプ |
なし |
あり |
あり |
なし |
JavaリソースおよびJavaクラス |
なし |
あり |
あり |
なし |
ジョブ・キュー |
なし |
あり |
あり |
なし |
ネストした表のデータ |
あり |
あり |
あり |
あり |
オブジェクト権限 |
あり(表および索引のみ) |
あり |
あり |
あり |
表で使用されるオブジェクト型定義 |
あり |
あり |
あり |
あり |
オブジェクト型 |
なし |
あり |
あり |
なし |
演算子 |
なし |
あり |
あり |
なし |
パスワード履歴 |
なし |
なし |
あり |
なし |
インスタンスの事後処理およびオブジェクト |
なし |
なし |
あり |
なし |
スキーマの事後プロシージャ処理およびオブジェクト |
なし |
あり |
あり |
なし |
表の事後処理 |
あり |
あり |
あり |
あり |
表の事後プロシージャ処理およびオブジェクト |
あり |
あり |
あり |
あり |
スキーマの事前プロシージャ・オブジェクトおよび処理 |
なし |
あり |
あり |
なし |
表の事前処理 |
あり |
あり |
あり |
あり |
表の事前プロシージャ処理 |
あり |
あり |
あり |
あり |
プライベート・シノニム |
なし |
あり |
あり |
なし |
プロシージャ・オブジェクト |
なし |
あり |
あり |
なし |
プロファイル |
なし |
なし |
あり |
なし |
パブリック・シノニム |
なし |
なし |
あり |
なし |
参照整合性制約 |
あり |
あり |
あり |
なし |
リフレッシュ・グループ |
なし |
あり |
あり |
なし |
リソース・コスト |
なし |
なし |
あり |
なし |
ロール権限 |
なし |
なし |
あり |
なし |
ロール |
なし |
なし |
あり |
なし |
ロールバック・セグメント定義 |
なし |
なし |
あり |
なし |
表のセキュリティ・ポリシー |
あり |
あり |
あり |
あり |
順序番号 |
なし |
あり |
あり |
なし |
スナップショット・ログ |
なし |
あり |
あり |
なし |
スナップショットおよびマテリアライズド・ビュー |
なし |
あり |
あり |
なし |
システム権限 |
なし |
なし |
あり |
なし |
表制約(主キー制約、一意制約、CHECK制約) |
あり |
あり |
あり |
あり |
表データ |
あり |
あり |
あり |
あり |
表定義 |
あり |
あり |
あり |
あり |
表領域定義 |
なし |
なし |
あり |
なし |
表領域割当て制限 |
なし |
なし |
あり |
なし |
トリガー |
あり |
あり脚注2 |
あり脚注3 |
あり |
他のユーザーが所有するトリガー |
あり(特権ユーザーのみ) |
なし |
なし |
なし |
ユーザー定義 |
なし |
なし |
あり |
なし |
ユーザー・プロキシ |
なし |
なし |
あり |
なし |
ユーザー・ビュー |
なし |
あり |
あり |
なし |
ユーザー・ストアド・プロシージャ、ユーザー・ストアド・パッケージおよびユーザー・ストアド・ファンクション |
なし |
あり |
あり |
なし |
脚注1
非特権ユーザーがエクスポートおよびインポートできるのは、そのユーザー自身が所有する表に関する索引のみです。他のユーザーが所有する表に関する索引や、ユーザー自身が所有する表に関して他のユーザーが作成した索引はエクスポートできません。特権ユーザーは、エクスポートおよびインポート対象に指定したユーザーの表に関する索引が、表の所有者以外のユーザーが作成したものであっても、その索引をエクスポートおよびインポートできます。指定したユーザーが他のユーザーの表に関する索引を所有しているときは、エクスポートするユーザーのリストに表の所有者であるユーザーを指定しないかぎり、その索引はエクスポートされません。
脚注2
特権ユーザーも非特権ユーザーも、そのユーザー自身が所有するすべてのトリガーを(他のユーザーが所有する表に関するトリガーの場合でも)、エクスポートおよびインポートできます。
脚注3
全体エクスポートでは、スキーマSYSが所有するトリガーはエクスポートされません。SYSトリガーは、全体インポートの前後のいずれかに手動で再作成する必要があります。このトリガーによってインポートの進行を妨げるような処理が定義されないように、インポートの後に再作成することをお薦めします。
親トピック: オリジナルのインポート
27.8 インポート・パラメータ
これらの項では、インポート・コマンドライン・パラメータについて説明します。
- BUFFER
BUFFER
インポート・パラメータでは、データ行の転送に使用されるバッファのサイズ(バイト単位)を定義します - COMMIT
COMMIT
インポート・パラメータでは、各配列の挿入後にインポートでコミットを実行するかどうかを指定します - COMPILE
COMPILE
インポート・パラメータでは、インポートでパッケージ、プロシージャおよびファンクションが作成時にコンパイルされるかどうかを指定します。 - CONSTRAINTS
CONSTRAINTS
インポート・パラメータでは、表制約をインポートするかどうかを指定します。 - DATA_ONLY
DATA_ONLY
インポート・パラメータを使用すると、ダンプ・ファイルからのデータのみをインポートできます。 - DATAFILES
DATAFILES
インポート・パラメータを使用すると、データベースに転送するデータ・ファイルをリストできます。 - DESTROY
DESTROY
インポート・パラメータでは、データベースを構成する既存のデータ・ファイルを再利用する必要があるかどうかを指定します。 - FEEDBACK
インポート・ユーティリティのFEEDBACK
パラメータでは、インポート・ユーティリティにプログレス・バー(n
行分のエクスポートを1つのピリオドで示す)を表示するように指定します。 - FILE
FILE
インポート・ユーティリティ・パラメータでは、インポートするエクスポート・ファイルの名前を指定します。 - FILESIZE
FILESIZE
インポート・ユーティリティ・パラメータを使用すると、エクスポート時に指定したサイズと同じ最大ダンプ・ファイル・サイズを指定できます。 - FROMUSER
インポート・ユーティリティのFROMUSER
パラメータを使用すると、複数のスキーマを含むエクスポート・ファイルからスキーマのサブセットをインポートできます。 - FULL
FULL
インポート・ユーティリティ・パラメータでは、エクスポート・ダンプ・ファイル全体をインポートするかどうかを指定します。 - GRANTS
オブジェクト権限をインポートするかどうかを指定します。 - HELP
インポート・ユーティリティのHELP
パラメータを使用すると、インポート・パラメータの説明が表示されます。 - IGNORE
IGNOREインポート・ユーティリティ・パラメータでは、オブジェクト作成エラーをどのように処理する必要があるかを指定します。 - INDEXES
インポート・ユーティリティのINDEXESパラメータでは、索引をインポートするかどうかを指定します。 - INDEXFILE
インポート・ユーティリティのINDEXFILEパラメータでは、索引作成文を受け取るファイルを指定します。 - LOG
情報メッセージおよびエラー・メッセージを受け取るファイル(import.logなど)を指定します。 - PARFILE
インポート・パラメータのリストを格納するファイルのファイル名を指定します。 - RECORDLENGTH
ファイル・レコードの長さをバイト単位で指定します。 - RESUMABLE
RESUMABLE
パラメータは、再開可能な領域割当てを有効または無効にする場合に使用します。 - RESUMABLE_NAME
RESUMABLE_NAME
パラメータの値によって、再開可能な文を識別します。 - RESUMABLE_TIMEOUT
RESUMABLE_TIMEOUT
パラメータの値では、エラー修正までに必要な時間を指定します。 - ROWS
表のデータ行をインポートするかどうかを指定します。 - SHOW
インポートの前に、エクスポート・ファイルの内容を表示します。 - SKIP_UNUSABLE_INDEXES
インポート・ユーティリティとOracleデータベースの両方でSKIP_UNUSABLE_INDEXES
パラメータを指定します。 - STATISTICS
インポート時のデータベース・オプティマイザ統計の処理方法を指定します。 - STREAMS_CONFIGURATION
エクスポート・ダンプ・ファイル内に存在する可能性のあるすべての一般的なGoldenGateレプリケーション・メタデータをインポートするかどうかを指定します。 - STREAMS_INSTANTIATION
エクスポート・ダンプ・ファイル内に存在するStreamsインスタンス化メタデータをインポートするかどうかを指定します。 - TABLES
- TABLESPACES
インポート・ユーティリティのTABLESPACES
パラメータ。 - TOID_NOVALIDATE
TOID_NOVALIDATE
パラメータは、TOIDと比較しない型を指定するために使用します。 - TOUSER
インポートの対象になるスキーマを所有するユーザー名のリストを指定します。 - TRANSPORT_TABLESPACE
y
を指定すると、インポート・ユーティリティはエクスポート・ファイルからトランスポータブル表領域のメタデータをインポートします。 - TTS_OWNERS
TRANSPORT_TABLESPACE
にy
を指定した場合は、このパラメータを使用して一連のトランスポータブル表領域のデータの所有者ユーザーを表示します。 - USERID (ユーザー名/パスワード)
インポートを実行するユーザーのユーザー名、パスワードおよびオプションの接続文字列を指定します。 - VOLSIZE
各テープ・ボリュームのダンプ・ファイルに最大バイト数を指定します。
親トピック: オリジナルのインポート
27.8.1 BUFFER
BUFFER
インポート・パラメータでは、データ行の転送に使用されるバッファのサイズ(バイト単位)を定義します
デフォルト
オペレーティング・システムによって異なります
説明
BUFFER
に指定された整数は、転送したデータ行を格納するバッファのバイト数です。
BUFFER
によって、インポートで挿入される配列の行数が決定します。所定の行配列の挿入に必要なバッファ・サイズは、次のように計算できます。
buffer_size = rows_in_array * maximum_row_size
つまり、バッファ・サイズは、配列内の行に最大行サイズを乗算した値と同じです。
LOB、LONG
、BFILE
、REF
、ROWID
、UROWID
またはTIMESTAMP
の各列が含まれている表には、1回に1行ずつ挿入されます。バッファ・サイズは(LOB
およびLONG
列の場合以外は)、行全体を格納できるだけの容量が必要です。バッファ・サイズが足りずに表の最長の行を格納できない場合、インポート・ユーティリティはさらに大きいサイズのバッファを割り当てようとします。
DATE
列の場合は、バッファの大きさが十分であれば一度に複数の行が挿入されます。
ノート:
このパラメータのデフォルト値については、ご使用のオペレーティング・システム固有のOracleマニュアルを参照してください。
LONG
データ型(LONG
、LONG RAW
、LONG VARCHAR
、LONG VARRAW
)のすべての形式は、Oracle8iリリース8.1.6で非推奨になりました。以降のリリースでは、LONG
データ型は既存のアプリケーションとの下位互換性のために提供されていました。以降のリリースで開発された新しいアプリケーションでは、大量の文字データにCLOB
およびNCLOB
データ型を使用することをお薦めします。
親トピック: インポート・パラメータ
27.8.2 COMMIT
COMMIT
インポート・パラメータでは、各配列の挿入後にインポートでコミットを実行するかどうかを指定します
デフォルト
n
用途
配列を挿入するたびにコミットするかどうかを指定します。デフォルトでは、各表はロードされた後にのみコミットされ、エラーが発生した場合はロールバックを実行してから次のオブジェクトに進みます。
表にネストした表の列または属性が含まれている場合、ネストした表の内容は、それぞれ別の表としてインポートされます。したがって、ネストした表の内容は、常に、外部表をコミットしたトランザクションとは別のトランザクションとしてコミットされます。
パーティション表の場合にCOMMIT=n
,を指定すると、エクスポート・ファイルのそれぞれのパーティションおよびサブパーティションは、別のトランザクションとしてインポートされます。
LOB、LONG
、BFILE
、REF
、ROWID
、UROWID
またはTIMESTAMP
の各列が含まれている表では、配列の挿入は行われません。COMMIT=y
が指定されていると、各行の挿入後に表がコミットされます。
ノート:
LONG
データ型(LONG
、LONG RAW
、LONG VARCHAR
、LONG VARRAW
)のすべての形式は、Oracle8iリリース8.1.6で非推奨になりました。以降のリリースでは、LONG
データ型は既存のアプリケーションとの下位互換性のために提供されていました。以降のリリースで開発された新しいアプリケーションでは、大量の文字データにCLOB
およびNCLOB
データ型を使用することをお薦めします。
親トピック: インポート・パラメータ
27.8.3 COMPILE
COMPILE
インポート・パラメータでは、インポートでパッケージ、プロシージャおよびファンクションが作成時にコンパイルされるかどうかを指定します。
デフォルト
y
用途
パッケージ、プロシージャおよびファンクションを、作成時にインポート・ユーティリティでコンパイルするかどうかを指定します。
COMPILE
=n
の場合、これらのユニットは最初の使用時にコンパイルされます。たとえば、ドメイン索引作成に使用されるパッケージは、ドメイン索引作成時にコンパイルされます。
親トピック: インポート・パラメータ
27.8.4 CONSTRAINTS
CONSTRAINTS
インポート・パラメータでは、表制約をインポートするかどうかを指定します。
デフォルト
y
用途
表の制約をインポートするかどうかを指定します。デフォルトでは、制約をインポートします(y
)。制約をインポートしないようにするには、このパラメータ値をn
に設定します。
IOTおよびオブジェクト表の主キー制約は、常にインポートされます。
親トピック: インポート・パラメータ
27.8.5 DATA_ONLY
DATA_ONLY
インポート・パラメータを使用すると、ダンプ・ファイルからデータのみをインポートできます。
デフォルト
n
用途
データのみ(メタデータなし)をダンプ・ファイルからインポートする場合は、DATA_ONLY=y
を指定します。
DATA_ONLY=y
を指定すると、コマンドライン(またはパラメータ・ファイル)で入力されたインポート・パラメータのうち、メタデータと関連のあるパラメータは無効になります。つまり、ダンプ・ファイルからメタデータはインポートされないことになります。
メタデータに関連するパラメータは、COMPILE
、CONSTRAINTS
、DATAFILES
、DESTROY
、GRANTS
、IGNORE
、INDEXES
、INDEXFILE
、ROWS=n
、SHOW
、SKIP_UNUSABLE_INDEXES
、STATISTICS
、STREAMS_CONFIGURATION
、STREAMS_INSTANTIATION
、TABLESPACES
、TOID_NOVALIDATE
、TRANSPORT_TABLESPACE
、TTS_OWNERS
です。
親トピック: インポート・パラメータ
27.8.6 DATAFILES
DATAFILES
インポート・パラメータを使用すると、データベースに転送するデータ・ファイルをリストできます。
デフォルト
ありません。
用途
TRANSPORT_TABLESPACE
にy
を指定した場合、データベースに転送するデータ・ファイルを、このパラメータを使用して表示します。
関連トピック
親トピック: インポート・パラメータ
27.8.7 DESTROY
DESTROY
インポート・パラメータでは、データベースを構成する既存のデータ・ファイルを再利用する必要があるかどうかを指定します。
デフォルト
n
データベースを構成する既存のデータ・ファイルを再利用するかどうかを指定します。つまり、DESTROY=y
と指定すると、インポートではSQL CREATE TABLESPACE
文のデータ・ファイル句にREUSE
オプションが含められ、これにより、オリジナル・データベースのデータ・ファイルの内容が削除された後に、データ・ファイルが再利用されます。
エクスポート・ファイルには、各表領域内で使用されるデータ・ファイル名が含まれていることに注意してください。DESTROY=y
を指定して、2つ目のデータベースを(テストまたはその他の目的で)同じシステム上に作成しようとすると、インポート・ユーティリティでは、表領域を作成するときに最初のデータベースのデータ・ファイルを上書きします。このような場合には、デフォルトのDESTROY=n
を使用して、表領域が作成されるときにデータ・ファイルがすでに存在する場合、エラーが発生するようにする必要があります。また、オリジナル・データベースにインポートする必要がある場合は、既存のデータ・ファイルを置換しないでデータ・ファイルに追加するように、IGNORE=y
を指定する必要があります。
ノート:
データ・ファイルがRAWデバイスに格納されている場合は、DESTROY=n
を指定しても、ファイルは上書きされます。
親トピック: インポート・パラメータ
27.8.8 FEEDBACK
インポート・ユーティリティのFEEDBACK
パラメータでは、インポート・ユーティリティにプログレス・バー(n
行分のエクスポートを1つのピリオドで示す)を表示するように指定します。
デフォルト: 0
(ゼロ)
n
行分のインポートを1つのピリオドで示すプログレス・バーの表示を指定します。たとえば、FEEDBACK=10
を指定すると、10行分のインポートが終了するたびにピリオドが1つ表示されます。FEEDBACK
値は、インポートされるすべての表に適用されるため、各表に対して個別には設定できません。
親トピック: インポート・パラメータ
27.8.9 FILE
FILE
インポート・ユーティリティ・パラメータでは、インポートするエクスポート・ファイルの名前を指定します。
デフォルト: expdat.dmp
説明
インポートするエクスポート・ファイル名を指定します。デフォルトの拡張子は、.dmp
です。エクスポート・ユーティリティは複数のエクスポート・ファイルをサポートしているため、インポートする複数のファイル名の指定が必要になる場合があります。
エクスポート・ファイルをエクスポートしたユーザーである必要はありません。ただし、そのファイルへの読取りアクセス権限が必要です。自分のユーザーIDでファイルをエクスポートしなかった場合は、IMP_FULL_DATABASE
ロールも付与されている必要があります。
例
imp scott IGNORE=y FILE = dat1.dmp, dat2.dmp, dat3.dmp FILESIZE=2048
親トピック: インポート・パラメータ
27.8.10 FILESIZE
FILESIZE
インポート・ユーティリティ・パラメータを使用すると、エクスポート時に指定したサイズと同じ最大ダンプ・ファイル・サイズを指定できます。
デフォルト: オペレーティング・システムによって異なります。
エクスポート時に指定したサイズと同じ最大ダンプ・ファイル・サイズを指定できます。
ノート:
許容最大サイズは、オペレーティング・システムによって異なります。この最大値については、FILESIZE
を指定する前に、ご使用のオペレーティング・システム固有のOracleマニュアルで確認してください。FILESIZE
の値は、数字にKB(キロバイト数)を付けて指定できます。たとえば、FILESIZE=2KB
は、FILESIZE=2048
と同じです。同様に、MBはメガバイト(1024×1024)を、GBはギガバイト(1024の3乗)を表します。Bはバイトの省略です。この場合、最終的なファイル・サイズの算出に乗算は不要です(FILESIZE=2048B
は、FILESIZE=2048
と同じです)。
親トピック: インポート・パラメータ
27.8.11 FROMUSER
インポート・ユーティリティのFROMUSER
パラメータを使用すると、複数のスキーマを含むエクスポート・ファイルからスキーマのサブセットをインポートできます。
デフォルト: なし
インポートするスキーマをカンマで区切ったリスト。このパラメータは、IMP_FULL_DATABASE
ロールを持つユーザーにのみ関係があります。このパラメータで、複数のスキーマを含むエクスポート・ファイル(たとえば、全体エクスポート・ダンプ・ファイルまたは複数スキーマのユーザー、ユーザー・モードのエクスポート・ダンプ・ファイルなど)からスキーマのサブセットをインポートできます。
ファンクション索引、ファンクション、プロシージャ、トリガー、型本体、ビューなどの内部に表示されるスキーマ名は、FROMUSER
またはTOUSER
の処理には影響されません。影響を受けるのは、オブジェクト名のみです。インポートの完了後、TOUSER
スキーマに含まれる項目が古いスキーマ(FROMUSER
)を参照しているかどうかを手動で確認し、必要に応じて修正する必要があります。
通常は、インポート・パラメータTOUSER
とFROMUSER
を組み合せて使用し、インポートのターゲットとなるスキーマの所有者ユーザー名のリストを指定します。インポート操作の前にターゲット・データベース内にTOUSER
で指定するユーザーが存在している必要があります。存在していない場合、エラーが返されます。
TOUSER
を指定しない場合、インポート操作では次のことが行われます。
-
エクスポート・ファイルが、全データベース・モードのダンプ・ファイル、または複数スキーマ、ユーザー・モードのエクスポート・ダンプ・ファイルの場合、
FROMUSER
のスキーマへオブジェクトをインポートします。 -
エクスポート・ファイルが単一のスキーマで、ユーザー・モードのエクスポート・ダンプ・ファイルが権限のないユーザーに作成された場合、(インポート時に
FROMUSER
スキーマが存在するかどうかにかかわらず)インポートするユーザーのスキーマにオブジェクトを作成します。ノート:
FROMUSER=SYSTEM
を指定しても、システム・オブジェクトはインポートされず、ユーザーSYSTEM
が所有するスキーマ・オブジェクトのみがインポートされます。
親トピック: インポート・パラメータ
27.8.12 FULL
FULL
インポート・ユーティリティ・パラメータでは、エクスポート・ダンプ・ファイル全体をインポートするかどうかを指定します。
デフォルト: y
エクスポート・ダンプ・ファイル全体をインポートするかどうかを指定します。
- 全データベースのエクスポートおよびインポートについての考慮点
全データベースのエクスポートおよびインポートは、データベースの複製およびクリーン・アップに有効です。
親トピック: インポート・パラメータ
27.8.12.1 全データベースのエクスポートおよびインポートについての考慮点
全データベースのエクスポートおよびインポートは、データベースの複製およびクリーンアップに有効です。
ただし、問題が発生しないように、次の点に注意する必要があります。
-
全体エクスポートでは、スキーマ
SYS
が所有するトリガーはエクスポートされません。SYS
トリガーは、全体インポートの前後のいずれかに手動で再作成する必要があります。このトリガーによってインポートの進行を妨げるような処理が定義されないように、インポートの後に再作成することをお薦めします。 -
全体エクスポートでは、デフォルトのプロファイルもエクスポートされません。ソース・データベースでデフォルトのプロファイルを変更した場合(たとえば、スキーマ
SYS
が所有するパスワード確認機能を追加するなど)は、事前に手動でその機能を作成し、インポートの完了後にターゲット・データベースでデフォルトのプロファイルを変更する必要があります。 -
可能な場合、開始前にエクスポートされたデータベースおよびインポートするデータベースの物理コピーを作成します。これによって、誤った操作をやり直すことができます。
-
エクスポートの開始前に、次の情報を含むレポートを作成することをお薦めします。
-
表領域およびデータ・ファイルのリスト
-
ロールバック・セグメントのリスト
-
ユーザーごとの各オブジェクト型(表、索引など)の数
この情報で、表領域がすでに作成され、インポートが正常に完了したことを確認できます。
-
-
エクスポートから完全に新しいデータベースを作成する場合、
SYSTEM
に余分なロールバック・セグメントを作成し、初期化パラメータ・ファイル(init
.ora
)で使用可能にしてからインポートを開始します。 -
インポートの実行時に、正しいインスタンスを指していることを確認します。一部のUNIXシステムでは、サブシェルの入力のみで、インポート操作を行ったデータベースが変更される場合があります。
-
すべての表領域が作成されるまで、複数のデータベースを含むシステムでは全体インポートを行わないでください。全体インポートは、エクスポートされたデータベースと同じデータ・ファイル名を使用して、未定義の表領域を作成します。このため、次のような状況で問題が発生します。
-
データ・ファイルが他のいずれかのデータベースに属する場合、データ・ファイルは破損します。このことは特に、エクスポートされるデータベースが同じシステムに存在する場合に当てはまります(そのデータ・ファイルがインポート先のデータベースによって再利用されるため)。
-
データ・ファイルの名前が既存のオペレーティング・システム・ファイルの名前と同じ場合も問題が発生します。
-
親トピック: FULL
27.8.13 GRANTS
オブジェクト権限をインポートするかどうかを指定します。
デフォルト: y
デフォルトでは、エクスポートされたオブジェクト権限はすべてインポートされます。ユーザー・モードでエクスポートが実行されている場合は、第1レベルのオブジェクト権限(所有者によって付与されているもの)のみがエクスポート・ファイルにインポートされます。
全データベース・モードでエクスポートが実行されている場合は、下位レベルのオブジェクト権限(WITH GRANT OPTION
で権限が付与されたユーザーによって付与されているもの)を含むすべての権限が、エクスポート・ファイルにインポートされます。GRANTS=n
を指定すると、オブジェクト権限はインポートされません(GRANTS=n
を指定しても、システム権限はインポートされます)。
ノート:
エクスポート・ユーティリティでは、セキュリティ上の理由から、インポートに影響するデータ・ディクショナリ・ビューの権限はエクスポートされません。このような権限がエクスポートされると、インポートしたユーザーが気付かないうちに、アクセス権が変更される場合があります。親トピック: インポート・パラメータ
27.8.14 HELP
インポート・ユーティリティのHELP
パラメータを使用すると、インポート・パラメータの説明が表示されます。
デフォルト: なし
インポート・パラメータの説明を表示します。ヘルプの内容を表示するには、コマンドラインでimp
HELP=y
を入力します。
親トピック: インポート・パラメータ
27.8.15 IGNORE
IGNOREインポート・ユーティリティ・パラメータでは、オブジェクト作成エラーをどのように処理する必要があるかを指定します。
デフォルト: n
オブジェクト作成エラーの処理方法を指定します。デフォルトのIGNORE=n
が指定されている場合は、オブジェクト作成エラーがログに記録または表示されて、インポートが続行されます。
IGNORE=y
を指定すると、データベース・オブジェクトの作成時に作成エラーが発生しても、このエラーは無視され、エラーはレポートされずに継続します。
無視されるのはオブジェクト作成エラーのみです。オペレーティング・システム、データベース、SQLなどのエラーは無視されず、場合によっては処理が停止します。
IGNORE=y
が指定され、1つのエクスポート・ファイルから何回もリフレッシュが行われる場合、オブジェクトが何回も作成される場合があります(ただし、各オブジェクトには一意のシステム定義名が付けられます)。特定のオブジェクト(たとえば、制約など)に対しては、CONSTRAINTS=n
を指定してインポートを実行すると、この問題を回避できます。CONSTRAINTS=n
を指定して全インポートを実行すると、表の制約はインポートされません。
表がすでに存在する場合、IGNORE=y
を指定すると、行は既存の表にインポートされ、エラーやメッセージは出力されません。新しい記憶域パラメータを使用するため、またはクラスタにすでに表を作成済であるため、すでに存在する表にデータをインポートする場合があります。
表がすでに存在する場合、IGNORE=n
を指定すると、エラーがレポートされ、表は、行が挿入されないままスキップされます。また、表に依存するオブジェクト(索引、権限、制約など)は作成されません。
ノート:
既存の表へのインポート時に、表の列の索引が一意でない場合、行データが重複することがあります。親トピック: インポート・パラメータ
27.8.16 INDEXES
インポート・ユーティリティのINDEXESパラメータでは、索引をインポートするかどうかを指定します。
デフォルト: y
索引をインポートするかどうかを指定します。LOB索引、OID索引、一意制約索引など、システムによって作成される索引は、このパラメータの指定に関係なく、インポート・ユーティリティによって自動的に再作成されます。
INDEXES=n
を指定すると、すべてのユーザー作成索引をインポートの終了後に作成できます。
インポート時、ターゲット表にすでに索引が存在する場合は、データ挿入時にターゲット表の索引のメンテナンスを実行します。
親トピック: インポート・パラメータ
27.8.17 INDEXFILE
インポート・ユーティリティのINDEXFILEパラメータでは、索引作成文を受け取るファイルを指定します。
デフォルト: なし
索引作成文を受け取るファイルを指定します。
このパラメータを指定すると、指定したモードでの索引作成文は、データベース中に索引を作成するために使用されるのではなく、抽出されて指定のファイルに書き込まれます。データベース・オブジェクトはインポートされません。
インポート・パラメータCONSTRAINTS
にy
を設定している場合、索引ファイルに表制約も書き込まれます。
その後、このファイルを編集して(記憶域パラメータの変更など)、索引を作成するためのSQLスクリプトとして使用できます。
ファイル内で定義されている索引をさらに簡単に識別するために、エクスポート・ファイルのCREATE
TABLE
文およびCREATE
CLUSTER
文がコメントとして含まれます。
この機能を使用するには、次のステップを実行します。
-
INDEXFILE
パラメータを使用してインポートを行い、索引作成文のファイルを作成します。 -
ファイルを編集して、有効なパスワードを
connect
文字列に追加します。 -
INDEXES=n
を指定してインポートを再実行します。(このステップでデータベース・オブジェクトがインポートされますが、エクスポート・ファイルに格納されている索引定義は使用されません。)
-
索引作成文のファイルをSQLスクリプトとして実行し、索引を作成します。
INDEXFILE
パラメータを指定できるのは、FULL=y
、FROMUSER
、TOUSER
またはTABLES
パラメータを指定した場合のみです。
親トピック: インポート・パラメータ
27.8.18 LOG
情報メッセージおよびエラー・メッセージを受け取るファイル(import.logなど)を指定します。
デフォルト: なし
ログ・ファイルを指定すると、端末画面およびログ・ファイルの両方にインポートに関する情報が書き込まれます。
親トピック: インポート・パラメータ
27.8.19 PARFILE
インポート・パラメータのリストを格納するファイルのファイル名を指定します。
デフォルト: なし
パラメータ・ファイルの使用方法の詳細は、「パラメータ・ファイル」を参照してください。
親トピック: インポート・パラメータ
27.8.20 RECORDLENGTH
ファイル・レコードの長さをバイト単位で指定します。
デフォルト
オペレーティング・システムによって異なります。
用途
RECORDLENGTH
パラメータは、異なるデフォルト値を使用する別のオペレーティング・システムにエクスポート・ファイルを転送する場合に指定する必要があります。
このパラメータを指定しない場合、ご使用のプラットフォーム固有のBUFSIZ
の値がデフォルトになります。
RECORDLENGTH
は、ご使用のシステムのBUFSIZ
の値以上の任意の値に設定できます。(最大値は64KBです。)RECORDLENGTH
パラメータの変更により影響を受けるのは、データベースに書き出す前に累積されるデータのサイズのみです。オペレーティング・システム・ファイルのブロック・サイズには影響しません。
このパラメータは、インポート・ユーティリティのI/Oバッファのサイズ指定にも使用できます。
親トピック: インポート・パラメータ
27.8.21 RESUMABLE
RESUMABLE
パラメータを使用して、再開可能な領域割当てを有効または無効にします。
デフォルト
n
用途
このパラメータはデフォルトでは無効なため、関連するRESUMABLE_NAME
およびRESUMABLE_TIMEOUT
を使用するには、RESUMABLE=y
を設定する必要があります。
関連項目:
再開可能な領域割当ての詳細は、『Oracle Database管理者ガイド』を参照してください親トピック: インポート・パラメータ
27.8.22 RESUMABLE_NAME
RESUMABLE_NAME
パラメータの値によって、再開可能な文を識別します。
デフォルト
'User USERNAME (USERID), Session SESSIONID, Instance INSTANCEID'
用途
この値はユーザー定義のテキスト文字列で、USER_RESUMABLE
またはDBA_RESUMABLE
ビューに挿入して、一時停止されている特定の再開可能な文を識別できます。
RESUMABLE
パラメータをy
に設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。
親トピック: インポート・パラメータ
27.8.23 RESUMABLE_TIMEOUT
RESUMABLE_TIMEOUT
パラメータの値では、エラー修正までに必要な時間を指定します。
デフォルト
7200
秒(2時間)
用途
タイムアウト時間内にエラーを修正できない場合は、文の実行が途中で終了します。
RESUMABLE
パラメータをy
に設定して、再開可能な領域割当てを有効にしないかぎり、このパラメータは無視されます。
親トピック: インポート・パラメータ
27.8.24 ROWS
表のデータ行をインポートするかどうかを指定します。
デフォルト
y
用途
ROWS=n
を指定すると、インポート操作の終了後、インポートされたすべての表の統計がロックされます。
親トピック: インポート・パラメータ
27.8.25 SHOW
インポートの前に、エクスポート・ファイルの内容を表示します。
デフォルト
n
構文および説明
SHOW=y
を指定すると、エクスポート・ダンプ・ファイルの内容が画面に表示されますが、インポートは実行されません。エクスポート・ファイルに含まれるSQL文は、インポート・ユーティリティでその文が実行される順序で表示されます。
SHOW
パラメータを指定できるのは、FULL=y
、FROMUSER
、TOUSER
またはTABLES
パラメータを指定した場合のみです。
親トピック: インポート・パラメータ
27.8.26 SKIP_UNUSABLE_INDEXES
SKIP_UNUSABLE_INDEXES
パラメータは、インポート・ユーティリティおよびOracle Databaseの両方で提供されます。
デフォルト: 初期化パラメータ・ファイルで指定した、Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXES
の値
インポート・ユーティリティのSKIP_UNUSABLE_INDEXES
パラメータは、インポート・ユーティリティのコマンドラインで指定します。Oracle DatabaseのSKIP_UNUSABLE_INDEXES
パラメータは、初期化パラメータ・ファイルの構成パラメータとして指定します。相互に与える影響を理解しておく必要があります。
インポート・ユーティリティのコマンドラインでSKIP_UNUSABLE_INDEXES
の値を指定しない場合、初期化パラメータ・ファイルで指定した、SKIP_UNUSABLE_INDEXES
構成パラメータのデータベース設定が使用されます。
インポート・コマンドラインでSKIP_UNUSABLE_INDEXES
の値を指定すると、インポートは、初期化パラメータ・ファイルに指定されているSKIP_UNUSABLE_INDEXES
構成パラメータの値を上書きします。
y
の値を指定すると、(システムまたはユーザーのいずれかによって)索引使用禁止状態に設定されている索引の作成が、インポート・ユーティリティではスキップされます。他の索引(事前に索引使用禁止に設定されていない索引)に対しては、行の挿入時にメンテナンス処理が行われます。
このパラメータを使用すると、選択した索引パーティションに対する索引のメンテナンスを、行データの挿入が完了するまで延期できます。インポート後、影響を受けた索引パーティションの再作成が必要です。
ノート:
一意で使用禁止状態の索引に対しては、索引メンテナンスをスキップできません。したがって、一意の索引はSKIP_UNUSABLE_INDEXES
パラメータの影響を受けません。
INDEXES=n
を指定してINDEXFILE
パラメータを使用すると、索引の再作成を行うSQLスクリプトを作成できます。SKIP_UNUSABLE_INDEXES
パラメータを指定しない場合、行挿入によって使用禁止索引をメンテナンスすると、その行挿入によってエラーが発生します。
親トピック: インポート・パラメータ
27.8.27 STATISTICS
インポート時のデータベース・オプティマイザ統計の処理方法を指定します。
デフォルト: ALWAYS
メニュー項目は次のとおりです。
-
ALWAYS
データベース・オプティマイザ統計に問題があるかどうかにかかわらず、常にインポートします。
-
NONE
データベース・オプティマイザ統計をインポートまたは再計算しません。
-
SAFE
データベース・オプティマイザ統計に問題がない場合のみにインポートします。問題がある場合は、オプティマイザ統計を再計算します。
-
RECALCULATE
データベース・オプティマイザ統計をインポートしません。かわりに、インポート時に再計算します。この場合、ダンプ・ファイルを作成した元のエクスポート操作で、必要な
ANALYZE
文を生成している(STATISTICS=NONE
を指定してエクスポートを実行していない)必要があります。ANALYZE
文は、ダンプ・ファイルに含まれ、インポート操作で表統計の再計算に使用されます。関連項目:
-
オプティマイザおよびオプティマイザが使用する統計の詳細は、『Oracle Database概要』を参照してください。
-
親トピック: インポート・パラメータ
27.8.28 STREAMS_CONFIGURATION
エクスポート・ダンプ・ファイル内に存在する可能性のあるすべての一般的なGoldenGateレプリケーション・メタデータをインポートするかどうかを指定します。
デフォルト: y
親トピック: インポート・パラメータ
27.8.29 STREAMS_INSTANTIATION
エクスポート・ダンプ・ファイル内に存在するStreamsインスタンス化メタデータをインポートするかどうかを指定します。
デフォルト: n
ストリーム環境でインスタンス化の一部としてインポートする場合は、y
を指定します。
親トピック: インポート・パラメータ
27.8.30 TABLES
デフォルト: なし
表モード・インポートでインポートすることを指定します。インポートの対象となる表名、パーティション名およびサブパーティション名をリストとして指定します。表レベル・インポートでは、パーティション表または非パーティション表全体をインポートできます。TABLES
パラメータでは、インポート対象は、表およびその関連オブジェクトに限定されます(「インポート・モード」を参照してください)。TABLES
パラメータでは、次の値を指定できます。
-
tablename
には、インポートされる表の名前を指定します。リストにパーティション表が含まれる場合、パーティション名を指定しないと、すべてのパーティションおよびサブパーティションがインポートされます。エクスポートされたすべての表をインポートするには、アスタリスク(*)のみを表名パラメータとして指定します。tablename
は、任意の数の「%」パターン一致文字を含むことができます。各「%」パターン一致文字は、エクスポート・ファイルの表名の0個以上の文字と一致します。リスト中の固有の表名の指定されたすべてのパターンと一致する名前を持つすべての表が、選択されてインポートされます。すべてのパターン一致文字で構成され、パーティション名を含まないリスト中の表名によって、エクスポートされたすべての表がインポートされます。 -
partition_name
およびsubpartition_name
によって、パーティション表内で指定された1つ以上のパーティションまたはサブパーティションにインポートが制限されます。
構文の形式は、次のとおりです。
tablename:partition_name tablename:subpartition_name
tablename
:
partition_name
を使用する場合、指定された表はパーティション化されている必要があり、partition_name
はそのいずれかのパーティションまたはサブパーティションの名前である必要があります。指定された表がパーティション化されていない場合、partition_name
は無視されて表全体がインポートされます。
一度に指定できる表の数は、コマンドラインの制限によって決まります。
エクスポート・ファイルの処理中、エクスポート・ファイルの各表名は、パラメータで指定された順に、リスト中の各表名と比較されます。あいまいな処理が行われたり、処理時間が極端に長くならないように、固有の表名がリストの始めに表示され、一般的な表名(パターンを使用したもの)がリストの終わりに表示される必要があります。
エクスポート時には表名をスキーマ名(scott
.emp
など)で修飾できますが、インポート時にはできません。次に、間違って指定されたTABLES
パラメータの例を示します。
imp TABLES=(jones.accts, scott.emp, scott.dept)
これらの表をインポートするには、次のように指定します。
imp FROMUSER=jones TABLES=(accts) imp FROMUSER=scott TABLES=(emp,dept)
詳細は、「パターン一致を使用して様々な表をインポートする例」を参照してください。
ノート:
UNIXなど一部のオペレーティング・システムで、カッコなどの特殊文字を使用する場合は、特殊文字として扱われないように、その文字の前にエスケープ文字を使用する必要があります。UNIXでは、次の例に示すように、エスケープ文字としてバックスラッシュ(\)を使用します。
TABLES=\(emp,dept\)
- 表名の制限
インポート・ユーティリティの表名の制限についての説明します。
親トピック: インポート・パラメータ
27.8.30.1 表名の制限
インポート・ユーティリティの表名の制限について説明します。
表名には次の制限があります。
-
デフォルトでは、表名は大文字でデータベースに格納されます。表名が大文字と小文字または小文字のみで表記され、大/小文字を区別する場合、名前を引用符で囲む必要があります。したがって、表名は、データベースに格納されている表名と完全に一致するように指定する必要があります。
ただし、オペレーティング・システムによっては、コマンドラインの引用符自体をエスケープする必要がある場合があります。次に、異なるインポート・モードで大/小文字の区別を保持する方法を示します。
-
コマンドライン・モード
tables='\"Emp\"'
-
対話方式モード
Table(T) to be exported: "Exp"
-
パラメータ・ファイル・モード
tables='"Emp"'
-
-
表名を引用符で囲まないかぎり、コマンドラインで指定する表名にポンド(#)記号は使用できません。同様に、パラメータ・ファイルでは、表名が引用符で囲まれていないかぎり、表名にポンド(#)記号を使用すると、インポート・ユーティリティではポンド(#)記号より右側の文字がコメントとして解釈されます。
たとえば、パラメータ・ファイルに次の行が記述されている場合、インポート・ユーティリティは
emp#
の右側をすべてコメントとして解釈するため、表dept
とmydata
はインポートされません。TABLES=(emp#, dept, mydata)
ただし、次の例では、
emp#
が引用符で囲まれているため、3つの表はすべてインポートされます。TABLES=("emp#", dept, mydata)
ノート:
オペレーティング・システムによっては、一重引用符を使用する必要がある場合と、二重引用符を使用する必要がある場合があります。ご使用のオペレーティング・システム固有のドキュメントで確認してください。表のネーミング方法に制限があるオペレーティング・システムもあります。
たとえば、UNIXのCシェルではドル記号($)やポンド記号(#)(またはその他の特殊文字)には特別な意味があります。これらの文字をシェルを介してインポートするには、エスケープ文字を使用する必要があります。
親トピック: TABLES
27.8.31 TABLESPACES
インポート・ユーティリティのTABLESPACES
パラメータ。
デフォルト: なし
TRANSPORT_TABLESPACE
にy
を指定した場合、データベースに転送する表領域を、このパラメータを使用して表示します。エクスポート・ファイルに複数の表領域がある場合は、そのすべての表領域をインポート操作の一部として指定する必要があります。
詳細は、「TRANSPORT_TABLESPACE」を参照してください。
親トピック: インポート・パラメータ
27.8.32 TOID_NOVALIDATE
TOID_NOVALIDATE
パラメータは、TOIDと比較しない型を指定するために使用します。
デフォルト: なし
型を参照している表のインポート時に、その名前の型がすでにデータベースに存在している場合は、その既存の型が、実際にその表で使用されているかどうか(実際は異なる型で、単に同じ名前であるだけではないか)を確認します。
この検証のために、型の一意の識別子(TOID)と、エクスポート・ファイルに格納された識別子が比較されます。TOIDが一致しない場合、その表の行はインポートされません。
この妥当性チェックをしてはいけない型もあります(たとえば、その型がカートリッジのインストールによって作成された場合)。TOID_NOVALIDATE
パラメータを使用して、TOIDと比較しない型を指定できます。
構文は次のとおりです。
TOID_NOVALIDATE=([schemaname.]typename [, ...])
たとえば:
imp scott TABLES=jobs TOID_NOVALIDATE=typ1
imp scott TABLES=salaries TOID_NOVALIDATE=(fred.typ0,sally.typ2,typ3)
その型にスキーマ名を指定しない場合、インポートするユーザーのスキーマがデフォルトになります。たとえば、前述の最初の例では、型typ1
はscott.typ1
がデフォルトになり、2番目の例では、型typ3
はscott.typ3
がデフォルトになります。
TOID_NOVALIDATE
は、表の列型のみを処理します。表型には影響しません。
通常のインポートでは、削除される型が含まれていると、次のように出力されます。
[...]
. importing IMP3's objects into IMP3
. . skipping TOID validation on type IMP2.TOIDTYP0
. . importing table "TOIDTAB3"
[...]
ノート:
型の識別子を比較しないように指定する場合は、ユーザーの責任において、インポートされる型の属性リストを既存の型の属性リストと一致させるようにしてください。これらの属性リストが一致しない場合、インポート結果は保証されません。親トピック: インポート・パラメータ
27.8.33 TOUSER
インポートの対象となるスキーマを所有するユーザー名のリストを指定します。
デフォルト: なし
インポート操作の前にユーザー名が存在している必要があります。存在していない場合は、エラーが返されます。このパラメータを使用するには、IMP_FULL_DATABASE
ロールが必要です。オブジェクトがもともと入っていたスキーマと異なるスキーマにインポートする場合は、TOUSER
を指定してください。たとえば:
imp FROMUSER=scott TOUSER=joe TABLES=emp
複数のスキーマを指定する場合、スキーマ名は対で指定します。次の例では、scott
のオブジェクトをjoe
のスキーマにインポートし、fred
のオブジェクトをted
のスキーマにインポートします。
imp FROMUSER=scott,fred TOUSER=joe,ted
FROMUSER
リストがTOUSER
リストより長い場合、残りのスキーマは、通常のデフォルトの規則に従って、FROMUSER
スキーマにインポートされるか、またはインポートを実行するユーザーのスキーマにインポートされます。余分なオブジェクトがTOUSER
スキーマにインポートされるようにするには、次の構文を使用します。
imp FROMUSER=scott,adams TOUSER=ted,ted
ユーザーted
は2回指定されています。
親トピック: インポート・パラメータ
27.8.34 TRANSPORT_TABLESPACE
y
を指定した場合、エクスポート・ファイルからトランスポータブルの表領域メタデータがインポートされます。
デフォルト: n
暗号化された列は、トランスポータブル表領域モードではサポートされていません。
ノート:
トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。ターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。親トピック: インポート・パラメータ
27.8.35 TTS_OWNERS
TRANSPORT_TABLESPACE
にy
を指定した場合、このパラメータを使用して、一連のトランスポータブル表領域のデータの所有者ユーザーを表示できます。
デフォルト: なし
「TRANSPORT_TABLESPACE」を参照してください。
親トピック: インポート・パラメータ
27.8.36 USERID (ユーザー名/パスワード)
インポートを実行するユーザーのユーザー名、パスワードおよびオプションの接続文字列を指定します。
デフォルト: なし
ユーザーSYS
として接続する場合は、接続文字列にAS SYSDBA
も指定する必要があります。オペレーティング・システムによっては、AS SYSDBA
を特殊文字列とみなし、その文字列全体を引用符で囲む必要があります。
関連項目:
Oracle Netに接続文字列を指定する方法の詳細は、ご使用のOracle Netプロトコルのユーザーズ・ガイドを参照してください。親トピック: インポート・パラメータ
27.8.37 VOLSIZE
各テープ・ボリュームのダンプ・ファイルに最大バイト数を指定します。
デフォルト: なし
VOLSIZE
パラメータの最大値は、ご使用のプラットフォーム上に64ビットで格納できる最大値と同じです。
VOLSIZE
の値は、数字にKB(キロバイト数)を付けて指定できます。たとえば、VOLSIZE=2KB
は、VOLSIZE=2048
と同じです。同様に、MBはメガバイト(1024×1024)を、GBはギガバイト(1024の3乗)を表します。Bはバイトの省略です。この場合、最終的なファイル・サイズの算出に乗算は不要です(VOLSIZE=2048B
は、VOLSIZE=2048
と同じです)。
親トピック: インポート・パラメータ
27.9 インポート・セッションの例
これらの項では、インポート・セッションの例をいくつか取り上げ、パラメータ・ファイル方式およびコマンドライン方式の使用方法を示します。
- 特定のユーザーの表を選択してインポートする例
- 別のユーザーによってエクスポートされた表をインポートする例
- あるユーザーの表を別のユーザーへインポートする例
- パーティション・レベル・インポートでのインポート・セッションの例
- パターン一致を使用して様々な表をインポートする例
親トピック: オリジナルのインポート
27.9.1 特定のユーザーの表を選択してインポートする例
この例では、管理者が全データベース・エクスポート・ファイルを使用して、dept
表およびemp
表をscott
のスキーマにインポートします。
パラメータ・ファイル方式
> imp PARFILE=params.dat
params
.dat
ファイルには、次の情報が格納されています。
FILE=dba.dmp SHOW=n IGNORE=n GRANTS=y FROMUSER=scott TABLES=(dept,emp)
コマンドライン方式
> imp FILE=dba.dmp FROMUSER=scott TABLES=(dept,emp)
インポート・メッセージ
使用しているインポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。また、状態メッセージも表示されます。
親トピック: インポート・セッションの例
27.9.2 別のユーザーによってエクスポートされた表をインポートする例
この例では、blake
がエクスポートしたファイルからunit
表およびmanager
表をscott
のスキーマにインポートします。
パラメータ・ファイル方式
> imp PARFILE=params.dat
params
.dat
ファイルには、次の情報が格納されています。
FILE=blake.dmp SHOW=n IGNORE=n GRANTS=y ROWS=y FROMUSER=blake TOUSER=scott TABLES=(unit,manager)
コマンドライン方式
> imp FROMUSER=blake TOUSER=scott FILE=blake.dmp TABLES=(unit,manager)
インポート・メッセージ
使用しているインポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。また、状態メッセージも表示されます。
親トピック: インポート・セッションの例
27.9.3 あるユーザーの表を別のユーザーへインポートする例
この例では、データベース管理者(DBA)がユーザーscott
のすべての表をユーザーblake
のアカウントにインポートします。
パラメータ・ファイル方式
> imp PARFILE=params.dat
params
.dat
ファイルには、次の情報が格納されています。
FILE=scott.dmp FROMUSER=scott TOUSER=blake TABLES=(*)
コマンドライン方式
> imp FILE=scott.dmp FROMUSER=scott TOUSER=blake TABLES=(*)
インポート・メッセージ
使用しているインポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . Warning: the objects were exported by SCOTT, not by you import done in WE8DEC character set and AL16UTF16 NCHAR character set . importing SCOTT's objects into BLAKE . . importing table "BONUS" 0 rows imported . . importing table "DEPT" 4 rows imported . . importing table "EMP" 14 rows imported . . importing table "SALGRADE" 5 rows imported Import terminated successfully without warnings.
親トピック: インポート・セッションの例
27.9.4 パーティション・レベル・インポートでのインポート・セッションの例
この項では、複数のパーティションがある表、パーティションとサブパーティションがある表、および異なる列で再パーティション化した表のインポートについて説明します。
親トピック: インポート・セッションの例
27.9.4.1 例1: パーティション・レベル・インポート
この例では、emp
は、P1
、P2
およびP3
で構成されているパーティション表です。
表レベルのエクスポート・ファイルを作成するには、次のコマンドを使用します。
> exp scott TABLES=emp FILE=exmpexp.dat ROWS=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... . . exporting table EMP . . exporting partition P1 7 rows exported . . exporting partition P2 12 rows exported . . exporting partition P3 3 rows exported Export terminated successfully without warnings.
パーティション・レベルのインポートでは、インポートの対象に、エクスポートした表の特定のパーティションを指定できます。この例では、emp
表のP1
およびP3
を指定します。
> imp scott TABLES=(emp:p1,emp:p3) FILE=exmpexp.dat ROWS=y
インポート・メッセージ
使用しているインポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。また、状態メッセージも表示されます。
27.9.4.2 例2: コンポジット・パーティション表のパーティション・レベル・インポート
この例では、コンポジット・パーティション表のパーティションおよびサブパーティションがインポートされます。emp
は、2つのコンポジット・パーティションP1
およびP2
のパーティション表です。パーティションP1
には、3つのサブパーティションP1_SP1
、P1_SP2
およびP1_SP3
があります。パーティションP2
には、2つのサブパーティションP2_SP1
およびP2_SP2
があります。
表レベルのエクスポート・ファイルを作成するには、次のコマンドを使用します。
> exp scott TABLES=emp FILE=exmpexp.dat ROWS=y
エクスポート・メッセージ
使用しているエクスポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
コマンドラインで実行されると次のエクスポート・メッセージが表示されます。
. . . About to export specified tables via Conventional Path ... . . exporting table EMP . . exporting composite partition P1 . . exporting subpartition P1_SP1 2 rows exported . . exporting subpartition P1_SP2 10 rows exported . . exporting subpartition P1_SP3 7 rows exported . . exporting composite partition P2 . . exporting subpartition P2_SP1 4 rows exported . . exporting subpartition P2_SP2 2 rows exported Export terminated successfully without warnings.
次のインポート・コマンドでは、emp
表にあるコンポジット・パーティションP1
のサブパーティションP1_SP2
およびP1_SP3
と、emp
表にあるコンポジット・パーティションP2
のすべてのサブパーティションがインポートされます。
> imp scott TABLES=(emp:p1_sp2,emp:p1_sp3,emp:p2) FILE=exmpexp.dat ROWS=y
インポート・メッセージ
使用しているインポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . . importing SCOTT's objects into SCOTT . . importing subpartition "EMP":"P1_SP2" 10 rows imported . . importing subpartition "EMP":"P1_SP3" 7 rows imported . . importing subpartition "EMP":"P2_SP1" 4 rows imported . . importing subpartition "EMP":"P2_SP2" 2 rows imported Import terminated successfully without warnings.
27.9.4.3 例3: 別の列での表の再パーティション化
この例では、emp
表に、empno
列に基づく2つのパーティションがあります。emp
表をdeptno
列で再パーティション化します。
別の列で表を再パーティション化するには、次のステップを実行してください。
- エクスポートを実行して、データを保存します。
- データベースから表を削除します。
- 表を新しいパーティションに分割して再作成します。
- 表データをインポートします。
次に、これらのステップの例を示します。
> exp scott table=emp file=empexp.dat . . . About to export specified tables via Conventional Path ... . . exporting table EMP . . exporting partition EMP_LOW 4 rows exported . . exporting partition EMP_HIGH 10 rows exported Export terminated successfully without warnings. SQL> connect scott Connected. SQL> drop table emp cascade constraints; Statement processed. SQL> create table emp 2 ( 3 empno number(4) not null, 4 ename varchar2(10), 5 job varchar2(9), 6 mgr number(4), 7 hiredate date, 8 sal number(7,2), 9 comm number(7,2), 10 deptno number(2) 11 ) 12 partition by range (deptno) 13 ( 14 partition dept_low values less than (15) 15 tablespace tbs_1, 16 partition dept_mid values less than (25) 17 tablespace tbs_2, 18 partition dept_high values less than (35) 19 tablespace tbs_3 20 ); Statement processed. SQL> exit > imp scott tables=emp file=empexp.dat ignore=y . . . import done in WE8DEC character set and AL16UTF16 NCHAR character set . importing SCOTT's objects into SCOTT . . importing partition "EMP":"EMP_LOW" 4 rows imported . . importing partition "EMP":"EMP_HIGH" 10 rows imported Import terminated successfully without warnings.
次に示すSQLのSELECT
文では、データはdeptno
列でパーティション化されます。
SQL> connect scott Connected. SQL> select empno, deptno from emp partition (dept_low); EMPNO DEPTNO ---------- ---------- 7782 10 7839 10 7934 10 3 rows selected. SQL> select empno, deptno from emp partition (dept_mid); EMPNO DEPTNO ---------- ---------- 7369 20 7566 20 7788 20 7876 20 7902 20 5 rows selected. SQL> select empno, deptno from emp partition (dept_high); EMPNO DEPTNO ---------- ---------- 7499 30 7521 30 7654 30 7698 30 7844 30 7900 30 6 rows selected. SQL> exit;
27.9.5 パターン一致を使用して様々な表をインポートする例
この例では、パターン一致を使用して、ユーザーscott
の様々な表をインポートします。
パラメータ・ファイル方式
imp PARFILE=params.dat
params
.dat
ファイルには、次の情報が格納されています。
FILE=scott.dmp IGNORE=n GRANTS=y ROWS=y FROMUSER=scott TABLES=(%d%,b%s)
コマンドライン方式
imp FROMUSER=scott FILE=scott.dmp TABLES=(%d%,b%s)
インポート・メッセージ
使用しているインポート・ユーティリティのリリース情報および接続しているOracle Databaseのリリース情報が表示されます。その後で、次に示すような状態メッセージが表示されます。
. . . import done in US7ASCII character set and AL16UTF16 NCHAR character set import server uses JA16SJIS character set (possible charset conversion) . importing SCOTT's objects into SCOTT . . importing table "BONUS" 0 rows imported . . importing table "DEPT" 4 rows imported . . importing table "SALGRADE" 5 rows imported Import terminated successfully without warnings.
親トピック: インポート・セッションの例
27.10 終了コードによる結果の検査と表示
インポート・ユーティリティでは、操作の完了後、すぐに実行結果を確認できます。プラットフォームによっては、実行結果はプロセス終了コードに通知され、ログ・ファイルにも記録されます。
インポートのプロセス終了コード
プロセス終了コードで結果を通知すると、コマンドラインまたはスクリプトの結果を確認できます。次の表に、様々な結果での返される終了コードを示します。
表27-4 オリジナルのインポート・ユーティリティの場合の終了コード
結果 | 終了コード |
---|---|
インポートは警告なしで正常終了しました。 |
|
インポートは正常に終了しましたが、警告が発生しました。 |
|
エラーが発生したためインポートを終了します。 |
|
例27-1 ログ・ファイルの終了コード出力
UnixおよびLinuxプラットフォームの場合、終了コードは次のとおりです。
EX_SUCC 0
EX_OKWARN 0
EX_FAIL 1
親トピック: オリジナルのインポート
27.11 インポート中のエラー処理
これらの項では、データベース・オブジェクトのインポート時に発生する可能性のあるエラーについて説明します。
- 行エラー
整合性制約違反またはデータが無効なために行のインポートが拒否されると、警告メッセージが表示されますが、その表の残りの行は引き続き処理されます。 - データベース・オブジェクトのインポートでのエラー
データベース・オブジェクトをインポートするときにエラーが発生する理由にはいろいろありますが、これらの項ではその理由について説明します。
親トピック: オリジナルのインポート
27.11.1 行エラー
整合性制約違反またはデータが無効なために行のインポートが拒否されると、警告メッセージが表示されますが、その表の残りの行は引き続き処理されます。
「tablespace full」というエラーなど、後続のすべての行に影響するエラーもあります。このようなエラーの場合には、現行の表の処理は停止され、次の表にスキップします。
RESUMABLE=y
パラメータが指定されている場合、「tablespace full」エラーによって、インポートが一時停止することもあります。
- 整合性制約違反
システムで有効な整合性制約に違反している行があると行エラーが発生します。 - 無効なデータ
データベース内の表の列定義が、エクスポート・ファイル内の列定義と異なるときに、行エラーが発生する場合もあります。
親トピック: インポート中のエラー処理
27.11.1.1 整合性制約違反
システムで有効な整合性制約のいずれかに行が違反している場合、行エラーが生成されます。
たとえば、次のようなものがあります。
-
NOT
NULL
制約 -
一意制約
-
主キー(NOT NULLおよび一意)制約
-
参照整合性制約
-
CHECK制約
関連項目:
-
アプリケーションで整合性制約を使用する方法の詳細は、『Oracle Database開発ガイド』を参照してください。
-
整合性制約の詳細は、『Oracle Database概要』を参照してください。
-
親トピック: 行エラー
27.11.1.2 無効なデータ
データベース内の表の列定義が、エクスポート・ファイル内の列定義と異なるときにも行エラーが発生します。
無効データ・エラーは、新しい表の列より長いデータの挿入、無効なデータ型またはその他のINSERT
エラーによって発生します。
ノート:
LONG
データ型(LONG
、LONG RAW
、LONG VARCHAR
、LONG VARRAW
)のすべての形式は、Oracle8iリリース8.1.6で非推奨になりました。以降のリリースでは、LONG
データ型は既存のアプリケーションとの下位互換性のために提供されていました。以降のリリースで開発された新しいアプリケーションでは、大量の文字データにCLOB
およびNCLOB
データ型を使用することをお薦めします。
親トピック: 行エラー
27.11.2 データベース・オブジェクトのインポートでのエラー
データベース・オブジェクトをインポートするときにエラーが発生する理由にはいろいろありますが、これらの項ではその理由について説明します。
これらのエラーが発生すると、現行のデータベース・オブジェクトのインポートは中断されます。その後、インポート・ユーティリティでは、エクスポート・ファイルの次のデータベース・オブジェクトが継続して処理されます。
- 既存オブジェクト
インポートするオブジェクトがデータベース中にすでに存在していると、オブジェクト作成エラーが発生します。 - 順序
インポート処理で、順序番号をエクスポート・ファイルの値に設定しなおす必要がある場合は、順序を削除してください。 - リソース・エラー
リソースの制限によって、オブジェクトがインポートされないことがあります。たとえば、表のインポート中に、内部的な問題またはメモリーなどのリソース不足によって、リソース・エラーが発生する場合があります。 - ドメイン索引メタデータ
ドメイン索引は、無名PL/SQLブロックでインポートされる、アプリケーション固有のメタデータと関連付けることができます。
親トピック: インポート中のエラー処理
27.11.2.1 既存オブジェクト
インポートするオブジェクトがデータベース中にすでに存在していると、オブジェクト作成エラーが発生します。
これ以降の処理は、IGNORE
パラメータに指定されている値によって異なります。
IGNORE=n
(デフォルト)が指定されている場合、エラーが報告され、次のデータベース・オブジェクトが継続して処理されます。現行のデータベース・オブジェクトは置き換えられません。オブジェクトが表の場合、エクスポート・ファイル内の行はインポートされません。
IGNORE=y
が指定されている場合、オブジェクト作成エラーは報告されません。データベース・オブジェクトは置き換えられません。オブジェクトが表の場合、行がインポートされます。無視できるエラーはオブジェクト作成エラーのみです。他のすべてのエラー(オペレーティング・システムのエラー、データベースのエラー、SQLのエラーなど)は報告されます。また、処理が停止することもあります。
ノート:
IGNORE=y
を指定した場合、表の1つ以上の列に対してUNIQUE
整合性制約を指定しないかぎり、その表に対して重複した行が挿入されます。たとえば、誤って2回インポートを実行した場合などがこれに該当します。
親トピック: データベース・オブジェクトのインポートでのエラー
27.11.2.2 順序
インポート処理で、順序番号をエクスポート・ファイルの値に設定しなおす必要がある場合は、順序を削除してください。
インポートでは、既存の順序の削除と再作成は行われません。そのため、順序は、インポートの前に削除されない場合、エクスポート・ファイルに保存されている値には設定されません。順序がすでに存在している場合、エクスポート・ファイルのCREATE SEQUENCE
文は失敗し、その順序はインポートされません。
親トピック: データベース・オブジェクトのインポートでのエラー
27.11.2.3 リソース・エラー
リソースの制限によって、オブジェクトがインポートされないことがあります。たとえば、表のインポート中に、内部的な問題またはメモリーなどのリソース不足によって、リソース・エラーが発生する場合があります。
行のインポート中にリソース・エラーが発生すると、現行の表の処理が中止され、次の表にスキップします。COMMIT=y
を指定している場合、現行の表のインポート済の部分がコミットされます。指定していない場合は、現行の表の処理がロールバックされた後で、インポートが続行されます。「COMMIT」を参照してください。
親トピック: データベース・オブジェクトのインポートでのエラー
27.11.2.4 ドメイン索引メタデータ
ドメイン索引は、無名PL/SQLブロックでインポートされる、アプリケーション固有のメタデータと関連付けることができます。
これらのPL/SQLブロックは、インポート時にCREATE
INDEX
文より優先して実行されます。PL/SQLブロックにエラーが発生した場合、メタデータが索引の一部分とみなされるため、関連付けられた索引は作成されません。
親トピック: データベース・オブジェクトのインポートでのエラー
27.12 表レベル・インポートおよびパーティション・レベル・インポート
表、パーティションおよびサブパーティションをインポートできます。
具体的には次のとおりです。
-
表レベル・インポート: エクスポート・ファイルのすべてのデータをインポートします。
-
パーティション・レベル・インポート: 指定されたソース・パーティションまたはサブパーティションのデータのみインポートします。
- 表レベル・インポートの使用に関するガイドライン
表レベル・インポートでは、指定された各表に対して、表のすべての行がインポートされます。 - パーティション・レベル・インポートの使用に関するガイドライン
パーティション・レベル・インポートは、表モードでのみ指定できます。パーティション・レベル・インポートでは、エクスポート・ファイル内の特定のパーティションまたはサブパーティションを選択してデータをロードすることができます。 - パーティションと表の間のデータ移行
コンポジット・パーティションのパーティション名を指定しない場合、コンポジット・パーティション内のすべてのサブパーティションが、ソースとして使用されます。
親トピック: オリジナルのインポート
27.12.1 表レベル・インポートの使用に関するガイドライン
表レベル・インポートでは、指定した各表に関して表のすべての行がインポートされます。
表レベル・インポートの特長は次のとおりです。
-
(
TRANSPORT_TABLESPACES
を除く)どのエクスポート・モードでエクスポートされた場合でも、表レベル・インポートを使用してエクスポートされたすべての表をインポートできます。 -
ユーザーは、表レベルでエクスポートされたすべての表(パーティション表または非パーティション表)、パーティションまたはサブパーティションを、同じ名前のターゲット表(パーティション表または非パーティション表)にインポートできます。
表が存在しない場合で、なおかつエクスポートされた表がパーティション表である場合は、表レベル・インポートによってパーティション表が作成されます。表が正常に作成されると、エクスポート・ファイルからすべてのソース・データが読み込まれ、ターゲット表に書き込まれます。インポート後、ターゲット表には、エクスポート・ファイル内のソース表に対応付けられたすべてのパーティションおよびサブパーティションに関するパーティション定義が格納されます。この処理によって、ソース・パーティションの物理属性および論理属性(パーティションの境界を含む)が、インポート時に維持されます。
27.12.2 パーティション・レベル・インポートの使用に関するガイドライン
パーティション・レベル・インポートを指定できるのは、表モードでインポートを実行する場合のみです。パーティション・レベル・インポートでは、エクスポート・ファイル内の特定のパーティションまたはサブパーティションを選択してデータをロードすることができます。
パーティション・レベル・インポートを使用する場合は、次のガイドラインに注意してください。
-
インポートでは、常にターゲット表のパーティション化スキームに従って行が格納されます。
-
パーティション・レベル・インポートでは、指定されたソース・パーティションまたはサブパーティションの行データのみ挿入されます。
-
ターゲット表がパーティション表の場合、パーティション・レベル・インポートを行うと、そのターゲット表の最上位パーティションより上に入る行はすべて拒否されます。
-
エクスポートされた表が非パーティション表の場合は、パーティション・レベル・インポートを実行できません。ただし、表レベル・インポートを使用すると、エクスポートされた非パーティション表からパーティション表をインポートできます。
-
ソース表(エクスポート時にtablenameに指定された表)がパーティション表で、エクスポート・ファイルに存在する場合のみ、パーティション・レベル・インポートは正常に実行されます。
-
エクスポート・ファイルに存在しないパーティション名またはサブパーティション名を指定すると、警告が発行されます。
-
パラメータの中で指定するパーティション名またはサブパーティション名には、エクスポート・ファイルにあるパーティションまたはサブパーティションのみを指定します。エクスポート・ファイルには、エクスポート・ソース・システム上の表のすべてのデータが含まれているとはかぎりません。
-
ROWS=y
(デフォルト)が指定されていて、表がインポート先のシステムに存在しない場合、表が作成され、すべての行が、ソース・パーティションまたはサブパーティションから、インポート先の表のパーティションまたはサブパーティションに挿入されます。 -
ROWS=y
(デフォルト)およびIGNORE=y
が指定されていて、対象となる表の表名がインポート前に存在している場合は、指定された表のパーティションまたはサブパーティションの行がすべて、同名の表に挿入されます。インポートでは、常に、ターゲット表の既存のパーティション化スキーマに従って行が格納されます。 -
ROWS=n
が指定されている場合、データはターゲット表に挿入されず、エクスポート・ファイル中の表およびパーティションまたはサブパーティションに関連する他のオブジェクトに対する処理が、継続して行われます。 -
ターゲット表が非パーティション表の場合、パーティションおよびサブパーティションは表全体にインポートされます。1つ以上のパーティションまたはサブパーティションを、エクスポート・ファイルからインポート・ターゲット・システム上の非パーティション表にインポートするには、
IGNORE=y
を指定します。
27.12.3 パーティションと表の間のデータ移行
コンポジット・パーティションのパーティション名を指定しない場合、コンポジット・パーティション内のすべてのサブパーティションが、ソースとして使用されます。
次の例では、パーティション名によって指定されたパーティションは、コンポジット・パーティションです。すべてのサブパーティションがインポートされます。
imp SYSTEM FILE=expdat.dmp FROMUSER=scott TABLES=b:py
次の例では、表scott.e
のパーティションqc
およびqd
の行データが、表scott.e
にインポートされます。
imp scott FILE=expdat.dmp TABLES=(e:qc, e:qd) IGNORE=y
インポート・ターゲット・データベースに表e
が存在しない場合は、表eの作成後、同じパーティションにデータが挿入されます。インポート前にターゲット・システムに表e
が存在する場合、行データは、挿入可能な範囲を持つパーティションに挿入されます。行データは、最終的にqc
およびqd
以外の名前のパーティションに挿入することもできます。
ノート:
既存の表にパーティション・レベル・インポートを実行する場合は、ターゲット・パーティションまたはサブパーティションを正しく設定し、IGNORE=y
を指定してください。
27.13 索引作成およびメンテナンスの制御
これらの項では、索引作成およびメンテナンスに関連するインポートの動作について説明します。
- 索引作成の延期
インポート・ユーティリティには、索引の作成およびメンテナンスの実行を、インポートが完了し、エクスポート・データの挿入が終了するまで延期させる機能が用意されています。 - 索引作成およびメンテナンスの制御
索引作成およびメンテナンスの制御について説明します。
親トピック: オリジナルのインポート
27.13.1 索引作成の延期
インポート・ユーティリティには、索引の作成およびメンテナンスの実行を、インポートが完了し、エクスポート・データの挿入が終了するまで延期させる機能が用意されています。
インポート完了後に索引の作成、再作成またはメンテナンスを実行すると、通常、その処理時間は、インポートで各行が挿入されるたびにメンテナンスを実行するより短くなります。
索引作成には時間がかかるため、他のすべてのオブジェクトのインポートが完了してから行った方が効率的です。INDEXES=n
を指定すると、インポートの終了後に索引を作成できます。(デフォルトはINDEXES=y
です。)その後、INDEXFILE
パラメータを使用してインポートを実行し、SQLスクリプト内の未作成の索引定義を格納できます。索引作成文は、このように指定しない場合、インポート・ユーティリティから発行されますが、このように指定した場合、指定されたファイルに書き込まれます。
インポート完了後、索引を作成する必要があります。索引を作成するには、通常、CONNECT文にパスワードを指定した後、INDEXFILE
で指定したファイルの内容をSQLスクリプトとして使用します。
親トピック: 索引作成およびメンテナンスの制御
27.13.2 索引作成およびメンテナンスの制御
索引作成およびメンテナンスの制御について説明します。
SKIP_UNUSABLE_INDEXES=y
を指定すると、インポート前に索引使用禁止に設定されていた索引のメンテナンスはすべて延期されます。他の索引(事前に索引使用禁止に設定されていない索引)に対しては、行の挿入時にメンテナンス処理が行われます。これにより、既存の表をインポートする間、索引の更新が保存されます。
索引のメンテナンスが延期されると、その索引で設定されている既存の一意整合性制約に対して違反が発生することがあります。表に一意整合性制約が存在しても、INDEXES=n
を指定してインポートした表内の重複キーは回避できません。このため、その索引は、重複キーが削除されて索引が再構築されるまでは、UNUSABLE
状態となります。
- 索引更新延期の例
索引更新延期の例を示します。
親トピック: 索引作成およびメンテナンスの制御
27.13.2.1 索引更新延期の例
索引更新延期の例を示します。
パーティションp1
およびp2
を持つパーティション表t
が、インポート・ターゲット・システムに存在するとします。また、パーティションp1
にローカル索引p1_ind
、パーティションp2
にローカル索引p2_ind
が存在するとします。このパーティションp1
には既存の表t
のデータが入っており、そのデータ量は、エクスポート・ファイル(expdat
.dmp
)を使用して挿入されるデータの量よりはるかに多いとします。一方、パーティションp2
はその逆であるとします。
表データ挿入時にp1_ind
の索引メンテナンスを実行すると、パーティション索引の再作成時に実行するより、処理効率が高くなります。p2_ind
については、この逆になります。
また、p2_ind
については、インポート中のローカル索引のメンテナンスを延期できます。延期するには、次のステップを実行します。
この例では、p1
のローカル索引p1_ind
は、インポート中、表データがパーティションp1
に挿入されるときにメンテナンスされます。一方、p2
のローカル索引p2_ind
は、インポート後の索引再作成時にメンテナンスされます。
親トピック: 索引作成およびメンテナンスの制御
27.14 オリジナルのインポート・ユーティリティでOracle Netを使用する際のネットワーク考慮事項
ネットワーク経由でインポートを実行する場合は、Oracle NetでOracle Data Pumpのオリジナルのインポート・ユーティリティ(imp
)を使用できます。
たとえば、インポート・ユーティリティをローカルで実行しているときに、リモートのOracle Databaseインスタンスにデータを読み込むことができます。
Oracle Netでインポート・ユーティリティを使用するには、imp
コマンドを実行してユーザー名とパスワードを入力するときに、接続修飾文字列@connect_string
を含めます。この句の構文の詳細は、ご使用のOracle Netプロトコルのユーザーズ・ガイドを参照してください。
関連トピック
親トピック: オリジナルのインポート
27.15 文字セットおよびグローバリゼーション・サポートに関する考慮点
これらの項では、ユーザー・データおよびデータ定義言語(DDL)の文字セット変換に関連するインポート・ユーティリティのグローバリゼーション・サポートの動作について説明します。
- ユーザー・データ
エクスポート・ユーティリティは、常に、エクスポート・サーバーの文字セットでUnicodeデータを含むユーザー・データをエクスポートします。(文字セットは、データベース作成時に指定されます。) - データ定義言語(DDL)
エクスポートおよびインポート操作時に、データ定義言語(DDL)に対して最大3回の文字セット変換が必要です。 - シングルバイト文字セット
8ビット文字セットのエクスポート・ファイルをインポートすると、一部の8ビット・キャラクタが失われる(つまり7ビットの対応するキャラクタに変換される)場合があります。 - マルチバイト文字セット
ターゲット文字セットに同等の文字がないエクスポート・ファイル中の文字は、変換時にデフォルトの文字に置換されます(デフォルトの文字は、ターゲット文字セットによって定義されます)。(デフォルトの文字は、ターゲット文字セットによって定義されます)。
親トピック: オリジナルのインポート
27.15.1 ユーザー・データ
エクスポート・ユーティリティは、常に、エクスポート・サーバーの文字セットでUnicodeデータを含むユーザー・データをエクスポートします。(文字セットは、データベース作成時に指定されます。)
ソース・データベースの文字セットが、インポート・データベースの文字セットと異なる場合、自動的にデータをインポート・サーバーの文字セットに変換するための文字セット変換が実行されます。
- 変換による文字セットのソート順への影響
エクスポート文字セットのソート順が、インポート文字セットと異なる場合、キャラクタ列をパーティション化した表では、結果が保証されません。
27.15.1.1 変換による文字セットのソート順への影響
エクスポート文字セットのソート順が、インポート文字セットと異なる場合、キャラクタ列をパーティション化した表では、結果が保証されません。
たとえば、次のようなASCII文字セットのデータベースの表定義について考えてみます。
CREATE TABLE partlist ( part VARCHAR2(10), partno NUMBER(2) ) PARTITION BY RANGE (part) ( PARTITION part_low VALUES LESS THAN ('Z') TABLESPACE tbs_1, PARTITION part_mid VALUES LESS THAN ('z') TABLESPACE tbs_2, PARTITION part_high VALUES LESS THAN (MAXVALUE) TABLESPACE tbs_3 );
ASCII文字セットでは、Z
の後にz
があるため、このパーティション・スキームには意味があります。
この表がEBCDIC文字セット・ベースのデータベースにインポートされると、EBCDIC文字セットでは、z
がZ
の前にあるため、part_mid
パーティションのすべての行が、part_low
パーティションに移行します。希望する結果を得るには、partlist
表の所有者は、インポート後に表を再パーティション化する必要があります。
関連項目:
文字セットの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
親トピック: ユーザー・データ
27.15.2 DDL
エクスポートおよびインポート操作時に、データ定義言語(DDL)に対して最大3回の文字セット変換が必要です。
具体的には次のとおりです。
-
エクスポート・ファイルは、環境変数NLS_LANG
でユーザー・セッション用に指定された文字セットで書き出されます。NLS_LANG
の値が、データベースの文字セットと異なる場合は、文字セット変換が実行されます。 -
エクスポート・ファイルの文字セットが、インポート先ユーザー・セッション用の文字セットと異なる場合、ユーザー・セッションの文字セットに変換されます。シングルバイト文字セットの場合のみにこの変換が実行されます。マルチバイト文字セットの場合は、インポート・ファイルの文字セットがエクスポート・ファイルの文字セットと同じである必要があります。
-
ターゲット・データベースの文字セットが、インポート・ユーザー・セッション用の文字セットと異なる場合、最後の文字セット変換が実行される場合があります。
文字セット変換によるデータの損失を最小限にするには、エクスポート・データベース、エクスポート・ユーザー・セッション、インポート・ユーザー・セッションおよびインポート・データベースのすべてにおいて、同一の文字セットを使用するようにしてください。
27.15.3 シングルバイト文字セット
8ビット文字セットのエクスポート・ファイルをインポートすると、一部の8ビット・キャラクタが失われる(つまり7ビットの対応するキャラクタに変換される)場合があります。
これが発生するのは、インポートを実行するシステムに、システム固有の7ビット文字セットが存在するか、オペレーティング・システム環境変数NLS_LANG
が7ビット文字セットに設定されている場合です。アクセント記号が付いている文字からアクセントが消去されるのが最もよく見られる例です。
このような状況を回避するために、オペレーティング・システム環境変数NLS_LANG
にエクスポート・ファイルの文字セットを設定できます。
27.15.4 マルチバイト文字セット
ターゲット文字セットに同等の文字がないエクスポート・ファイル中の文字は、変換時にデフォルトの文字に置換されます(デフォルトの文字は、ターゲット文字セットによって定義されます)。(デフォルトの文字は、ターゲット文字セットによって定義されます)。
100%完全に変換されるためには、ターゲット文字セットはソース文字セットのスーパーセットであるか、ソース文字セットと同等である必要があります。
ノート:
エクスポート・サーバーとインポート・サーバーとの間で文字セットの幅が異なるとき、変換が原因でデータの拡張が発生する場合にデータの切捨てが発生することがあります。切捨てが発生する場合、インポート・ユーティリティに警告メッセージが表示されます。
27.16 インスタンス親和性の使用方法
インスタンス親和性を使用して、インポートおよびエクスポートするデータベース内のインスタンスにジョブを関連付けることができます。
複数のリリースを組み合せて使用している場合は、互換性の問題に注意してください。
関連項目:
-
親和性の詳細は、『Oracle Database管理者ガイド』を参照してください。
親トピック: オリジナルのインポート
27.17 データベース・オブジェクトのインポートに関する考慮点
これらの項では、特定のデータベース・オブジェクトをインポートする場合の、制限事項および考慮点について説明します。
- オブジェクト識別子のインポート
- 既存のオブジェクト表およびオブジェクト型の含まれている表のインポート
既存のオブジェクト表およびオブジェクト型が含まれている表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。表を作成する場合、以前(記憶域パラメータ以外に対して)使用していた定義と同じ定義で作成するか、互換性のある形式で作成する必要があります。 - ネストした表のインポート
- REFデータのインポート
REF
データのインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。REF
列および属性には、参照されている型のインスタンスを示すROWID
が隠されていることがあります。 - BFILE列およびディレクトリ別名のインポート
BFILE列およびディレクトリ別名のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。BFILE列を含む表データをインポートする場合、BFILEロケータは、ディレクトリ別名およびエクスポート時のファイル名でインポートされます。 - 外部関数ライブラリのインポート
外部関数ライブラリのインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポート・ユーティリティでは、外部関数ライブラリの参照先が正しいかどうかの確認は行われません。 - ストアド・プロシージャ、ファンクションおよびパッケージのインポート
ローカルのストアド・プロシージャ、ストアド・ファンクションまたはパッケージがインポートされるときのインポート・ユーティリティの動作は、COMPILE
パラメータがy
とn
のどちらに設定されているかによって異なります。 - Javaオブジェクトのインポート
Javaオブジェクトのインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。Javaオブジェクトを任意のスキーマにインポートしても、リゾルバはインポート・ユーティリティによって変更されません(リゾルバとは、Javaのフルネームの解決に使用されるスキーマのリストです)。 - 外部表のインポート
外部表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポート・ユーティリティでは、外部表によって参照される場所が正しいかどうかを検証しません。 - AQ表のインポート
アドバンスト・キュー表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。キュー表をインポートすると、基礎となっているキューや関連するディクショナリ情報もインポートされます。 - LONG列のインポート
LONG
列のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポートおよびエクスポート時には、LONG
列は各行の残りのデータとともにメモリーに収まるサイズである必要があります。 - トリガーが存在する場合のLOB列のインポート
トリガーが存在する場合のLOB列のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポート・ユーティリティでは、エクスポート時に空であるすべてのLOBがインポート後に自動的にNULL
に変更されます。 - ビューのインポート
別のスキーマの表を参照しているビューをインポートするには、インポートの実行者にREAD ANY TABLE
権限またはSELECT ANY TABLE
権限が付与されている必要があります。 - パーティション表のインポート
パーティション表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。エクスポートしたパーティション表と同じパーティション名またはサブパーティション名を使用してパーティション表を作成するために、SYS_Pnnn
形式の名前もインポートされます
親トピック: オリジナルのインポート
27.17.1 オブジェクト識別子のインポート
Oracle Databaseでは、オブジェクト型、オブジェクト表およびオブジェクト表内の行を一意に識別できるように、オブジェクト識別子が割り当てられます。オブジェクト識別子はインポート・ユーティリティによって保持されます。
型を参照している表のインポート時に、その名前の型がすでにデータベースに存在している場合は、その既存の型が、実際にその表で使用されているかどうか(実際は異なる型で、単に同じ名前であるだけではないか)を確認します。
この確認のために、型の一意の識別子(TOID)とエクスポート・ファイルに格納された識別子が比較されます。これらの識別子が一致する場合は、型の一意のハッシュ・コードとエクスポート・ファイルに格納されたハッシュ・コードが比較されます。TOIDまたはハッシュ・コードが一致しない場合、その表の行はインポートされません。
この妥当性チェックをしてはいけない型もあります(たとえば、その型がカートリッジのインストールによって作成された場合)。パラメータTOID_NOVALIDATE
を使用して、TOIDおよびハッシュ・コードと比較しない型を指定できます。詳細は、「TOID_NOVALIDATE」を参照してください。
ノート:
型比較は、不正なデータを発生させないための非常に重要な機能であるため、TOID_NOVALIDATE
の使用には、特に注意してください。この機能を使用禁止にする場合は、データ型の妥当性チェックとその処理について十分な知識を持つユーザーが行ってください。
次の基準によって、オブジェクト型、オブジェクト表およびオブジェクト表の行の処理方法が決まります。
-
オブジェクト型に関して、
IGNORE
=y
が指定されていて、オブジェクト型がすでに存在し、そのオブジェクト識別子、ハッシュ・コードおよび型記述子が一致する場合は、エラーは通知されません。オブジェクト識別子またはハッシュ・コードが一致しない場合、パラメータTOID_NOVALIDATE
にそのオブジェクト型を無視する設定がされていないと、エラーが通知され、そのオブジェクト型を使用している表はインポートされません。 -
オブジェクト型に関して、
IGNORE
=n
が指定されていて、そのオブジェクト型がすでに存在する場合は、エラーが通知されます。オブジェクト識別子、ハッシュ・コードまたは型記述子が一致しない場合、パラメータTOID_NOVALIDATE
にそのオブジェクト型を無視するように設定されていないと、エラーが通知され、そのオブジェクト型を使用している表はインポートされません。 -
オブジェクト表に関して、
IGNORE
=y
が指定されていて、表がすでに存在し、そのオブジェクト識別子、ハッシュ・コードおよび型記述子が一致する場合、エラーは通知されません。行はオブジェクト表にインポートされます。同じオブジェクト識別子の行が、すでにそのオブジェクト表に存在している場合、行のインポートはエラーになります。オブジェクト識別子、ハッシュ・コードまたは型記述子が一致しない場合、パラメータTOID_NOVALIDATE
がそのオブジェクト型を無視するように設定されていないと、エラーが通知され、そのオブジェクト型を使用している表はインポートされません。 -
オブジェクト表に関して、
IGNORE
=n
が指定されていて、オブジェクト表がすでに存在する場合は、エラーが通知され、オブジェクト表はインポートされません。
インポート・ユーティリティにオブジェクト型とオブジェクト表に関するオブジェクト識別子が保持されるため、FROMUSER
パラメータおよびTOUSER
パラメータを使用して、あるユーザー・スキーマから別のユーザー・スキーマにオブジェクトをインポートする場合は、次のことを考慮してください。
-
FROMUSER
のオブジェクト型およびオブジェクト表がターゲット表にすでに存在する場合は、TOUSER
のオブジェクト型およびオブジェクト表の識別子がすでに使用されているため、エラーが発生します。インポート開始前に、FROMUSER
のオブジェクト型およびオブジェクト表をシステムから削除する必要があります。 -
オブジェクト表作成時に、
OID
AS
オプションを指定して他の表と同じオブジェクト識別子が割り当てられている場合は、同じオブジェクト識別子を持つ表を両方インポートすることはできません。1つ目の表はインポートできますが、同じオブジェクト識別子がすでに使用されているため、2つ目の表をインポートするとエラーになります。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.2 既存のオブジェクト表およびオブジェクト型の含まれている表のインポート
既存のオブジェクト表およびオブジェクト型が含まれている表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。表を作成する場合、以前(記憶域パラメータ以外に対して)使用していた定義と同じ定義で作成するか、互換性のある形式で作成する必要があります。
表領域の使用方法または表の記憶域パラメータを変更するため、インポートの前に表を作成することがよくあります。表を作成する場合、以前(記憶域パラメータ以外に対して)使用していた定義と同じ定義で作成するか、互換性のある形式で作成する必要があります。オブジェクト表や、オブジェクト型の列を含む表の場合は、形式の互換性がさらに制限されます。
オブジェクト表およびオブジェクト列を含む表の場合、表が参照する各オブジェクトは、その名前、構造およびバージョン情報をエクスポート・ファイルに書き出されます。エクスポート・ユーティリティでは、必要に応じて、異なるスキーマのオブジェクト型の情報も含まれます。
インポート・ユーティリティは、表データをインポートする前に、表に必要な各オブジェクト型の存在を確認します。この確認機能には、オブジェクト型の名前の確認、インポート・システムのオブジェクト型の構造およびバージョンと、エクスポート・ファイルに書き込まれた情報との比較が含まれます。
オブジェクト型名がインポート・システムで検出され、構造またはバージョンがエクスポート・ファイルと一致しない場合、エラー・メッセージが生成され、表データはインポートされません。
インポート・パラメータTOID_NOVALIDATE
を使用して、特定のオブジェクトのオブジェクト型の構造およびバージョンの確認機能を使用禁止にできます。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.3 ネストした表のインポート
内部のネストした表は外部表とは別にエクスポートされます。したがって、内部のネストした表が正しくインポートされない場合、次のような状況が予想されます。
-
内部にネストした表を持つ表がエクスポートされ、インポート時に、表も表内の行も削除されなかったとします。
IGNORE=y
パラメータが指定されている場合、外部表に各行を挿入すると、制約違反が発生します。ただし、内部のネストした表のデータは正常にインポートされることがあり、その場合、内部表の行データが重複します。 -
外部表へデータをインポート中にリカバリ不能なエラーが発生した場合は、外部表の残りのデータはスキップされますが、対応する内部表の行はスキップされません。その結果、内部表の行は外部表のどの行からも参照されなくなります。
-
リカバリ可能なエラーの後で内部表への挿入がエラーになる場合、外部表の行はすでに外部表にインポートされています。また、外部表および他の内部表へのデータのインポートは続行されます。その結果、不完全な論理行が作成されます。
-
内部表へのデータのインポート中にリカバリ不能なエラーが発生した場合は、その内部表の残りのデータはスキップされますが、外部表やその他のネストした表はスキップされません。
常にログ・ファイルを調べて、外部表および内部表にエラーがないかどうかを確認する必要があります。データに一貫性を持たせるためには、表データの変更や削除が必要になることがあります。
内部にネストした表は、外部表とは別にインポートされるので、インポート中に、このネストした表のデータにアクセスしようとしても失敗することがあります。たとえば、内部表の行がインポートされる前に、外部表の行にアクセスすると、ユーザーには不完全な行が返されます。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.4 REFデータのインポート
REF
データのインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。REF
列および属性には、参照されている型のインスタンスを示すROWID
が隠されていることがあります。
REF
列および属性には、参照されている型のインスタンスを示すROWID
が隠されていることがあります。インポート・ユーティリティでは、ターゲット・データベースに対するROWID
は、自動的には再設定されません。ROWID
を適切な値に再設定するには、次の文を実行します。
ANALYZE TABLE [schema.]table VALIDATE REF UPDATE;
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.5 BFILE列およびディレクトリ別名のインポート
BFILE列およびディレクトリ別名のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。BFILE列を含む表データをインポートする場合、BFILEロケータは、ディレクトリ別名およびエクスポート時のファイル名でインポートされます。
BFILE
列および属性で参照されているデータは、ソース・データベースからターゲット・データベースへはコピーされません。BFILE
列で参照されているファイルの名前とディレクトリ別名が伝達されるのみです。BFILE
列および属性で参照されている実際のファイルは、DBAまたはユーザーが移動してください。
BFILE
列を含む表データをインポートする場合、BFILE
ロケータは、ディレクトリ別名およびエクスポート時のファイル名でインポートされます。インポート・ユーティリティでは、そのディレクトリ別名またはファイルが存在するかどうかの確認は行われません。ディレクトリ別名またはファイルが存在しない場合、ユーザーがBFILE
データにアクセスするとエラーが発生します。
ディレクトリ別名に関しては、エクスポート・システムで使用しているオペレーティング・システムのディレクトリ構文がインポート・システムで有効でない場合でも、インポート時にエラーは通知されません。ユーザーがインポート後に、そのファイルのデータにアクセスするとエラーが返されます。ディレクトリ別名がインポート・システムで有効かどうかは、DBAまたはユーザーが確認してください。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.6 外部関数ライブラリのインポート
外部関数ライブラリのインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポート・ユーティリティでは、外部関数ライブラリの参照先が正しいかどうかの確認は行われません。
インポート・ユーティリティでは、外部関数ライブラリの参照先が正しいかどうかの確認は行われません。エクスポート・ファイル上のライブラリの指定で使用されているディレクトリやファイル名の形式がインポート・システムで無効であっても、インポート時にエラーは通知されません。この場合、インポート後にそのファンクションを呼び出そうとすると、エラーが返されます。
DBAまたはユーザーが手動でライブラリを移動し、ライブラリの指定がインポート・システムで有効になるようにしてください。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.7 ストアド・プロシージャ、ファンクションおよびパッケージのインポート
ローカルのストアド・プロシージャ、ストアド・ファンクションまたはパッケージがインポートされるときのインポート・ユーティリティの動作は、COMPILE
パラメータがy
とn
のどちらに設定されているかによって異なります。
ローカルのストアド・プロシージャ、ストアド・ファンクションまたはパッケージがインポートされるときのインポート・ユーティリティの動作は、COMPILE
パラメータがy
またはn
に設定されているかどうかによって異なります。
ローカルのストアド・プロシージャ、ストアド・ファンクションまたはパッケージがインポートされ、COMPILE=y
が指定されている場合は、プロシージャ、ファンクション、パッケージはインポート時に再コンパイルされ、元のタイムスタンプ仕様が保持されます。コンパイルが成功すると、リモート・プロシージャによってアクセスしてもエラーは発生しません。
COMPILE=n
が指定されている場合も、プロシージャ、ストアド・ファンクションまたはパッケージはインポートされます。ただし、元のタイムスタンプは失われます。次に、プロシージャ、ファンクションまたはパッケージを使用するときに、コンパイルが実行されます。
関連項目:
COMPILE親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.8 Javaオブジェクトのインポート
Javaオブジェクトのインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。Javaオブジェクトを任意のスキーマにインポートしても、リゾルバはインポート・ユーティリティによって変更されません(リゾルバとは、Javaのフルネームの解決に使用されるスキーマのリストです)。
Javaオブジェクトを任意のスキーマにインポートしても、リゾルバはインポート・ユーティリティによって変更されません(リゾルバとは、Javaのフルネームの解決に使用されるスキーマのリストです)。(リゾルバとは、Javaのフルネームの解決に使用されるスキーマのリストです)。インポートの終了後、明示的または暗黙的に再検証しないかぎり、すべてのユーザー・クラスが無効な状態のままになります。暗黙的な再検証は、クラスが最初に参照されるときに実行されます。明示的な再検証は、SQLのALTER JAVA CLASS...RESOLVE
文を使用すると実行されます。いずれの方法でもクラスは正常に解決され、有効になります。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.9 外部表のインポート
外部表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポート・ユーティリティでは、外部表によって参照される場所が正しいかどうかを検証しません。
インポート・ユーティリティでは、外部表によって参照される場所が正しいかどうかを検証しません。エクスポート・ファイルの表の指定で使用されるディレクトリ名およびファイル名の書式がインポート・システムで無効な場合、エラーはインポート時に報告されません。後でコールアウト関数を使用するときにエラーを受け取ります。
DBAまたはユーザーが手動で表を移動し、表の指定がインポート・システムで有効になるようにしてください。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.10 AQ表のインポート
アドバンスト・キュー表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。キュー表をインポートすると、基礎となっているキューや関連するディクショナリ情報もインポートされます。
キュー表をインポートすると、基礎となっているキューや関連するディクショナリ情報もインポートされます。キューのインポートは、キュー表単位のレベルでのみ実行できます。キュー表のインポートでは、エクスポートの表処理プロシージャの前後に、キュー・ディクショナリがメンテナンスされます。
27.17.11 LONG列のインポート
LONG
列のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポートおよびエクスポート時には、LONG
列は各行の残りのデータとともにメモリーに収まるサイズである必要があります。
注意:
この機能は非推奨です。今後のリリースではサポートされなくなる可能性があります。LONG
データ型(LONG
、LONG RAW
、LONG VARCHAR
、LONG VARRAW
)のすべての形式は、Oracle8iリリース8.1.6で非推奨になりました。以降のリリースでは、LONG
データ型は既存のアプリケーションとの下位互換性のために提供されていました。以降のリリースで開発された新しいアプリケーションでは、大量の文字データにCLOB
およびNCLOB
データ型を使用することをお薦めします。
LONG
列の長さは、最大2GBです。インポートおよびエクスポート時には、LONG
列は各行の残りのデータとともにメモリーに収まるサイズである必要があります。ただし、LONG
データはセクション単位でロードされるため、LONG
列を格納するメモリーが連続している必要はありません。
インポートを使用して、LONG
列をCLOB
列に変換する必要があります。LONG
列を変換するには、まず、新しいCLOB
列を指定する表を作成します。インポートを実行すると、LONG
データはCLOB
形式に変換されます。同じ方法で、LONG RAW
列をBLOB
列に変換できます。
ノート:
LONG
データ型は非推奨であるため、既存のLONG
列をLOB
列に変換し、それに応じてアプリケーションを更新することをお薦めします。LOB
列の制限の数は、LONG
列の制限の数よりも、かなり少なくなっています。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.12 トリガーが存在する場合のLOB列のインポート
トリガーが存在する場合のLOB列のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。インポート・ユーティリティでは、エクスポート時に空であるすべてのLOBがインポート後に自動的にNULL
に変更されます。
Oracle Database 10gでは、トリガーが正常に動作し、LOBのロード中に高いパフォーマンスが保たれるようにLOB処理が改善されています。こうした改善を実現するために、インポート・ユーティリティでは、エクスポート時に空であるすべてのLOBがインポート後に自動的にNULL
に変更されるように変更されています。
LOBがNULL
ではなく、空であることが必要なアプリケーションを使用している場合は、インポート後に、各LOB列に対してSQL UPDATE
文を発行できます。LOB列型がBLOB
かCLOB
かによって、構文は次のいずれかになります。
UPDATE <tablename> SET <lob column> = EMPTY_BLOB() WHERE <lob column> = IS NULL;
UPDATE <tablename> SET <lob column> = EMPTY_CLOB() WHERE <lob column> = IS NULL;
インポートの実行後、NULL
のLOB列と空のLOB列を区別する方法はありません。そのため、この情報がデータの整合性上重要である場合は、インポートの実行前にNULL
のLOB列と空のLOB列を確認しておいてください。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.13 ビューのインポート
他のスキーマの表を参照しているビューをインポートする場合は、インポートを実行するユーザーに、READ ANY TABLE
またはSELECT ANY TABLE
権限が必要です。
ビューは、依存順序でエクスポートされます。状況によっては、データベースから順序を取得するのではなく、エクスポートで順序付けをする必要があります。この場合、常に正しい順序を複製できるとはかぎりません。順序が正しくない場合、ビューのインポート時にコンパイル上の警告が発行され、そのビューに関する列コメントはインポートされません。
特に、viewa
でストアド・プロシージャprocb
が使用され、procb
でビューviewc
が使用されている場合、エクスポート・ユーティリティでは、ビューviewa
とviewc
の正しい順序付けはできません。viewa
がviewc
より先にエクスポートされ、procb
がインポート・システムにすでに存在する場合は、viewa
のインポート時にコンパイル上の警告が出されます。
ビューに関する権限は、ビューにコンパイル・エラーがあってもインポートされます。ビューの作成時に、そのビューの基礎になっているオブジェクト(たとえば、表、プロシージャ、他のビューなど)が存在していない場合、ビューにコンパイル・エラーが発生する場合があります。実表が存在しない場合、実表に対する権限を付与したユーザー自身が、その実表に対してGRANT
オプション付きの適正な権限を持っているかどうかを、サーバーでは検証できません。権限を付与したユーザーが適正な権限を持っていない場合、インポートされなかった表の作成後にその表にアクセスしようとすると、エラーが発生します。
他のスキーマの表を参照しているビューをインポートする場合は、インポートを実行するユーザーに、READ ANY TABLE
またはSELECT ANY TABLE
権限が必要です。この権限がない場合、ビューは、コンパイルされていない状態でインポートされます。ロールに権限を付与するのみでは不十分です。ビューのコンパイルには、インポートするユーザーに直接権限を付与する必要があります。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.17.14 パーティション表のインポート
パーティション表のインポートは、データベース・オブジェクトをインポートする場合の考慮点の1つです。エクスポートしたパーティション表と同じパーティション名またはサブパーティション名を使用してパーティション表を作成するために、SYS_Pnnn
形式の名前もインポートされます
エクスポートしたパーティション表と同じパーティション名またはサブパーティション名を使用してパーティション表を作成するために、SYS_Pnnn
形式の名前もインポートされます同じ名前のパーティション表がすでに存在している場合、これ以降の処理はIGNORE
パラメータに指定されている値によって異なります。
SKIP_UNUSABLE_INDEXES
=y
が指定されていないかぎり、インポート時に非パーティション索引またはパーティション索引が(索引使用禁止に設定されているか、またはその他の不適合が理由で)メンテナンスできない場合は、エクスポート・データはターゲット表にインポートできません。
親トピック: データベース・オブジェクトのインポートに関する考慮点
27.18 ファイングレイン・アクセス・コントロールに対するサポート
ファイングレイン・アクセス・コントロール・ポリシーをリストアするには、ファイングレイン・アクセス・コントロール・ポリシーが使用可能な表を含むエクスポート・ファイルからインポートするユーザーが、表のセキュリティ・ポリシーを回復するためのDBMS_RLS
パッケージに対するEXECUTE
権限が必要です。
ファイングレイン・アクセス・コントロール・ポリシーが使用可能な表を含むエクスポートファイルからインポートを行うための正しい権限が付与されていない場合は、警告メッセージが発行されます。
親トピック: オリジナルのインポート
27.19 スナップショットおよびスナップショット・ログ
特定の状況、特にデータ・ウェアハウスに関連する場合、スナップショットは、マテリアライズド・ビューと呼ばれます。これらの項では、そのような場合でもスナップショットという用語を使用します。
- スナップショット・ログ
インポート先のデータベースにマスター表がすでに存在し、そのData Pump制御表にスナップショット・ログがある場合は、ダンプ・ファイルのスナップショット・ログがインポートされます。 - スナップショット
エクスポート・ファイルからリストアされたスナップショットは、前の状態に戻ってしまいます。
親トピック: オリジナルのインポート
27.19.1 スナップショット・ログ
インポート先のデータベースにマスター表がすでに存在し、そのData Pump制御表にスナップショット・ログがある場合は、ダンプ・ファイルのスナップショット・ログがインポートされます。
ROWID
スナップショット・ログのエクスポートでは、スナップショット・ログに記録されているROWID
値はインポートした後には意味を持ちません。このため、各ROWID
のスナップショットによる最初の高速リフレッシュは失敗し、完全リフレッシュが必要であることを示すエラーが発生します。
リフレッシュのエラーを回避するには、ROWID
のスナップショット・ログをインポートしてから完全リフレッシュを実行してください。完全リフレッシュを実行すると、後続の高速リフレッシュが適切に行われます。これに対し、主キー・スナップショット・ログをエクスポートした場合は、インポートした後でも主キーの値は意味を持ちます。したがって、インポートした後でも、主キーのスナップショットにより、高速リフレッシュを実行できます。
親トピック: スナップショットおよびスナップショット・ログ
27.19.2 スナップショット
エクスポート・ファイルからリストアされたスナップショットは、前の状態に戻ってしまいます。
インポートでは、最後のリフレッシュが実行された時刻が、スナップショット表定義の一部としてインポートされます。次のリフレッシュ時刻を計算する機能もインポートされます。
各リフレッシュによって、署名が付けられます。高速リフレッシュでは、スナップショットを最新に保つため、その署名の時刻から日付を決定するログ・エントリが使用されます。高速リフレッシュが完了した時点で署名は削除され、新しい署名が付けられます。他のスナップショットのリフレッシュに必要でないログ・エントリ(残っている最も古い署名よりも前の時刻を持つすべてのログ・エントリ)も削除されます。
- スナップショットのインポート
エクスポート・ファイルからスナップショットをリストアすると、問題が発生する場合があります。 - 異なるスキーマへのスナップショットのインポート
スナップショットおよび関連項目は、DDL文で指定されたスキーマ名でエクスポートされます。
親トピック: スナップショットおよびスナップショット・ログ
27.19.2.1 スナップショットのインポート
エクスポート・ファイルからスナップショットをリストアすると、問題が発生する場合があります。
スナップショットが時刻Aにリフレッシュされ、時刻Bにエクスポートされ、時刻Cに再びリフレッシュされたとします。破損などの問題が発生したため、スナップショットを削除してインポートしなおすことによってリストアする必要があります。新規にインポートされたバージョンは、時刻Aとして記録された最終リフレッシュ時刻を保持しています。高速リフレッシュに必要となるログ・エントリが存在しなくなっている可能性があります。ログ・エントリが存在する場合は(たとえば、リフレッシュする必要のある別のスナップショットに必要なため)、このエントリが使用され、高速リフレッシュは正常に完了します。ログ・エントリが存在しない場合、高速リフレッシュは失敗し、完全リフレッシュが必要であることを示すエラーが発生します。
親トピック: スナップショット
27.19.2.2 異なるスキーマへのスナップショットのインポート
スナップショットおよび関連項目は、DDL文で指定されたスキーマ名でエクスポートされます。
異なるスキーマにインポートする場合は、FROMUSER
パラメータおよびTOUSER
パラメータを使用します。これは、異なるスキーマにインポートできないスナップショット・ログには適用されません。
ノート:
ファンクション索引、ファンクション、プロシージャ、トリガー、型本体、ビューなどの内部に表示されるスキーマ名は、FROMUSER
またはTOUSER
の処理には影響されません。影響を受けるのは、オブジェクト名のみです。インポートの完了後、TOUSER
スキーマに含まれる項目が古いスキーマ(FROMUSER
)を参照しているかどうかを手動で確認し、必要に応じて修正する必要があります。
親トピック: スナップショット
27.20 トランスポータブル表領域
トランスポータブル表領域機能は、一連の表領域を、あるOracle Databaseから他のOracle Databaseに移動できる機能です。
ノート:
トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。ターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。
一連の表領域を移動またはコピーするには、表領域を読取り専用にし、表領域のデータ・ファイルをターゲット・データベースに手動でコピーしてから、エクスポートおよびインポートを使用して、データ・ディクショナリに格納されているデータベース情報(メタデータ)をターゲット・データベースに移動します。データ・ファイルの転送は、オペレーティング・システムのコピー機能、バイナリ・モードFTP、CD-ROMへの出力などのような、フラット・バイナリ・ファイルのコピー機能を使用して行われます。
データ・ファイルのコピーおよびメタデータのエクスポートの後、表領域を任意に読み書き両用モードにできます。
次のパラメータで、トランスポータブル表領域のメタデータを移動できます。
-
TABLESPACES
-
TRANSPORT_TABLESPACE
インポート操作時のこれらのパラメータの使用方法の詳細は、「TABLESPACES」および「TRANSPORT_TABLESPACE」を参照してください。
関連項目:
-
トランスポータブル表領域の管理の詳細は、『Oracle Database管理者ガイド』を参照してください。
親トピック: オリジナルのインポート
27.21 記憶域パラメータ
デフォルトでは、表は、元の表領域にインポートされます。
その表領域が存在しない場合、またはユーザーがその表領域に十分な割当て制限を持っていない場合、次の表の場合を除いて、そのユーザーにはデフォルトの表領域が割り当てられます。
-
パーティション表
-
特定の型の表
-
LOB型列、
VARRAY
型列またはOPAQUE
型列を含む表 -
オーバーフロー・セグメントがあるIOTを含む表
ユーザーがデフォルトの表領域に対する十分な割当て制限を持っていない場合、そのユーザーの表はインポートされません。この制限の利用方法の詳細は、「表領域を再編成する方法」を参照してください。
- OPTIMALパラメータ
ロールバック・セグメントのための記憶域パラメータOPTIMAL
は、エクスポートおよびインポート時には保持されません。 - OID索引とLOB列の記憶域パラメータ
表は、それぞれの現行の記憶域パラメータを使用してエクスポートされます。 - 記憶域パラメータの上書き
インポート・ユーティリティを使用してデータをインポートする前に、別の記憶域パラメータで、事前に大きな表を作成した方がよい場合があります。
親トピック: オリジナルのインポート
27.21.2 OID索引とLOB列の記憶域パラメータ
表は、その表の現行の記憶域パラメータを使用してエクスポートされます。
オブジェクト表に関しては、OIDINDEXの作成時に、OIDINDEXの現行の記憶域パラメータおよび名前が設定されている場合は、それらを使用して作成されます。LOB型列、VARRAY
型列またはOPAQUE
型列が含まれている表に関しては、LOB型データ、VARRAY
型データまたはOPAQUE
型データは、それらの現行の記憶域パラメータを使用して作成されます。
エクスポートの前に、ユーザーが既存の表の記憶域パラメータを変更する場合もありますが、このような場合、表は変更された記憶域パラメータを使用してエクスポートされます。ただし、LOBデータの記憶域パラメータは、エクスポートの前には変更できません(たとえば、LOB列のチャンク・サイズ、LOB列がCACHE
またはNOCACHE
か、など)。
LOBデータは、含んでいる表と同じ表領域に存在しない場合があることに、注意してください。このデータの表領域は、インポート時に読取り/書込みが可能である必要があります。そうでない場合、表はインポートされません。
LOBデータまたはLOB索引がインポート時に存在しない表領域にある場合、またはユーザーがその表領域に対して必要な割当て制限を持っていない場合、表はインポートされません。表領域の句は、表に関する句も含めて複数の句を同時に指定できるため、インポート時にエラーが発生しても、インポート・ユーティリティではどの表領域句が原因のエラーかを特定できません。
親トピック: 記憶域パラメータ
27.21.3 記憶域パラメータの上書き
インポート・ユーティリティを使用してデータをインポートする前に、別の記憶域パラメータで、事前に大きな表を作成した方がよい場合があります。
その場合は、コマンドラインまたはパラメータ・ファイルにIGNORE=y
を指定します。
親トピック: 記憶域パラメータ
27.22 読取り専用表領域
読取り専用表領域はエクスポート可能です。インポートでは、表領域がターゲット・データベース内に存在しない場合、読取り/書込み表領域として表領域が作成されます。
読取り専用機能を取得する場合は、インポート後にその表領域を手動で読取り専用にする必要があります。
ターゲット・データベース内に表領域がすでに存在し、読取り専用である場合は、インポート前にこの表領域を読取り/書込み可能にする必要があります。
親トピック: オリジナルのインポート
27.23 表領域を削除する方法
インポート前に、オブジェクトに別の表領域を使用するように再定義すると、表領域を削除できます。imp
コマンドの発行時には、IGNORE=y
を指定します。
表領域を削除するには、通常、全データベース・エクスポートを実行し、(ログオフの前に)削除する表領域と同名の表領域をブロック数0(ゼロ)で作成します。IGNORE=y
が指定されていると、インポート時にその表領域に関するCREATE TABLESPACE
文はエラーとなります。これにより、削除対象である不要な表領域は作成されません。
その表領域のすべてのオブジェクト(ただし、パーティション表、特定の型の表、LOB列またはVARRAY
列を含む表またはオーバーフロー・セグメントのあるIOTを除く)が、そのオブジェクトの所有者のデフォルトの表領域にインポートされます。インポート・ユーティリティでは、エラーの原因となった表領域を特定できません。かわりに、ユーザー自身が表の作成後、IGNORE=y
を指定して表のインポートを実行する必要があります。
その表領域が存在しない場合、またはデフォルトの表領域に対するユーザーの割当て制限が十分でない場合は、オブジェクトはデフォルトの表領域にインポートされません。
親トピック: オリジナルのインポート
27.24 表領域を再編成する方法
ユーザーの割当て制限が十分な場合、そのユーザーの表はエクスポート元と同じ表領域にインポートされます。
その表領域がもう存在しないか、またはユーザーの割当て制限が十分でない場合は、そのユーザーに対するデフォルトの表領域が適用されます。ただし、パーティション表、LOB列またはVARRAY
列が含まれている表、特定の型の表およびオーバーフロー・セグメントのある索引構成表には適用されません。この条件を利用して、表領域間でユーザーの表を移動できます。
たとえば、全データベース・エクスポートを実行した後、joe
の表を表領域A
から表領域B
に移動する必要があるとします。この場合には、次のステップを実行します。
親トピック: オリジナルのインポート
27.25 統計情報のインポート
統計情報がエクスポート時に必要で、表にアナライザ統計が利用できる場合、表の統計情報の再計算に使用されるANALYZE
文が、エクスポートによってダンプ・ファイルに含まれます。
ほとんどの場合、表、索引および列に対する計算済オプティマイザ統計情報も、ダンプ・ファイルにエクスポートされます。インポート・パラメータの詳細は、「STATISTICS」を参照してください。
ANALYZE
文の実行には時間がかかるため、通常のインポートでは、エクスポートによって保存されるANALYZE
文を計算するのではなく、表(およびその索引や列)の計算済オプティマイザ統計情報を使用してください。デフォルトでは、エクスポート・ダンプ・ファイルにある計算済統計情報が使用されます。
エクスポート・ユーティリティによって、計算済統計情報に問題ありというフラグが付けられる場合もあります。次の状況では、計算済統計情報ではなく、問題のない統計情報のみをインポートする必要がある場合があります。
-
ダンプ・ファイル、インポート・クライアント、インポート・データベース間の文字セット変換(計算済統計情報で暗黙的に照合順番が変更されている可能性が高いため)。
-
表のインポート時に行エラーが発生した場合。
-
パーティション・レベル・インポートが実行された場合(列統計情報が、すでに正確ではないため)。
ノート:
ROWS=n
を指定しても、計算済統計情報は使用できます。この機能により、本番データベースからの統計情報を使用して、非本番データベース上で問合せの実行計画のチューニングを行うことができます。このような場合は、STATISTICS=SAFE
を指定する必要があります。
場合によっては、インポート時に、計算済統計情報ではなく、常にANALYZE
文を使用する必要があります。たとえば、分散データベースから収集した統計情報は、そのデータが圧縮形式でインポートされると、適切でなくなる場合があります。このような場合は、インポート時にSTATISTICS=RECALCULATE
を指定して、統計情報を再計算する必要があります。
インポート時に統計情報を確定しない場合は、STATISTICS=NONE
を指定する必要があります。
親トピック: オリジナルのインポート
27.26 エクスポート・ユーティリティおよびインポート・ユーティリティを使用したデータベース移行のパーティション化
エクスポート・ユーティリティおよびインポート・ユーティリティを使用して大規模データベースを移行する場合、移行を複数のエクスポート・ジョブおよびインポート・ジョブにパーティション化するとより効率的です。
移行をパーティション化する場合は、次のメリットおよびデメリットに注意してください。
- 移行をパーティション化する場合のメリット
移行をパーティション化する場合のメリットについて説明します。 - 移行をパーティション化する場合のデメリット
移行をパーティション化する場合のデメリットについて説明します。 - エクスポート・ユーティリティおよびインポート・ユーティリティを使用したデータベース移行のパーティション化方法
エクスポートおよびインポートを使用してパーティション化方法でデータベース移行を実行するには、次の手順を実行します。
親トピック: オリジナルのインポート
27.26.1 移行をパーティション化する場合のメリット
移行をパーティション化する場合のメリットについて説明します。
具体的には次のとおりです。
-
多くのサブジョブをパラレルに実行できるため、移行に必要な時間を削減できます。
-
最初のエクスポート・ジョブが完了するとすぐにインポート・ユーティリティを起動できます。
27.26.2 移行をパーティション化する場合のデメリット
移行をパーティション化する場合のデメリットについて説明します。
具体的には次のとおりです。
-
エクスポートおよびインポートのプロセスがより複雑になります。
-
特定の型のオブジェクトに対する相互スキーマ参照のサポートが損なわれます。たとえば、異なるスキーマの表に対する外部キー制約を持つ表がスキーマに含まれている場合、その表を依存スキーマにインポートしたときに、必要な親レコードが存在しない場合があります。
27.26.3 エクスポート・ユーティリティおよびインポート・ユーティリティを使用したデータベース移行のパーティション化方法
エクスポートおよびインポートを使用してパーティション化方法でデータベースの移行を実行するには、次の手順を実行します。
-
データベースのすべての最上位メタデータに、次のコマンドを発行します。
-
exp FILE=full FULL=y CONSTRAINTS=n TRIGGERS=n ROWS=n INDEXES=n
-
imp FILE=full FULL=y
-
-
データベースの各スキーマ
n
に、次のコマンドを発行します。-
exp OWNER=scheman FILE=scheman
-
imp FILE=scheman FROMUSER=scheman TOUSER=scheman IGNORE=y
-
すべてのエクスポートはパラレルで実行できます。full
.dmp
のインポートが完了すると、残りのインポートもパラレルで実行できます。
27.27 インポート操作のチューニングに関する考慮点
これらの項では、インポート操作のパフォーマンスを向上させる方法を説明します。
- システム・レベル・オプションの変更
インポート操作のパフォーマンス向上に役立つ可能性があるシステム・レベル・オプションについて説明します。 - 初期化パラメータの変更
初期化パラメータ・ファイルの設定に関してこれらの点を考慮すると、インポート操作のパフォーマンスの向上につながる場合があります。 - インポート・オプションの変更
インポート・オプションの使用について、これらの点を考慮すると、パフォーマンスの向上に役立つ場合があります。 - 大量のLOBデータの処理
大量のLOBデータのインポートについて説明します。 - 大量のLONGデータの処理
LONG
列を持つ表をインポートすると、I/Oおよびディスクの使用率が高くなり、その結果、インポート操作のパフォーマンスが低くなります。
親トピック: オリジナルのインポート
27.27.1 システム・レベル・オプションの変更
インポート操作のパフォーマンス向上に役立つ可能性があるシステム・レベル・オプションについて説明します。
具体的には次のとおりです。
-
1つの大きなロールバック・セグメントを作成および使用し、他のすべてのロールバック・セグメントをオフラインにします。一般に、インポートする最大の表の半分のサイズが、十分なロールバック・セグメントのサイズです。また、同じサイズの2つ以上のエクステントで、ロールバック・セグメントを作成することも有効です。
ノート:
ロールバック・セグメントのかわりに、自動UNDO管理を使用することをお薦めします。
-
インポートが完了するまでデータベースを
NOARCHIVELOG
モードにします。これによって、アーカイブ・ログの作成および管理によるオーバーヘッドが削減されます。 -
いくつかの大きいREDOファイルを作成し、小さいREDOログ・ファイルをすべてオフラインにします。これによって、作成されるログ・スイッチが少なくなります。
-
可能な場合、ロールバック・セグメント、表データおよびREDOログ・ファイルをすべて個別のディスクに配置します。I/O競合が削減され、スループットが増加します。
-
可能な場合、システム・リソースに対するインポート操作との競合が発生する可能性がある他のジョブは、同時に実行しないでください。
-
ディクショナリ表に統計が存在しないことを確認してください。
-
sqlnet
.ora
ファイルにTRACE_LEVEL_CLIENT
=OFF
を設定します。 -
可能な場合、データベースの再作成時に
DB_BLOCK_SIZE
の値を増加します。ブロック・サイズを大きくすると、必要なI/Oサイクル数は少なくなります。この変更は永続的であるため、行う前にすべての影響を考慮してください。
親トピック: インポート操作のチューニングに関する考慮点
27.27.2 初期化パラメータの変更
初期化パラメータ・ファイルの設定に関してこれらの点を考慮すると、インポート操作のパフォーマンスの向上につながる場合があります。
-
LOG_CHECKPOINT_INTERVAL
をREDOログ・ファイルのサイズより大きい数に設定します。オペレーティング・システム・ブロックの数(ほとんどのUNIXシステムでは512)です。これによって、(ログ・スイッチ時の)チェックポイントが最小まで削減されます。 -
SORT_AREA_SIZE
の値を増加します。増加する量は、システムで行われている他のアクティビティおよび使用可能な空きメモリーの量によって異なります。(システムでスワッピングおよびページングが開始された場合、設定値が高くなりすぎる可能性があります)。 -
DB_BLOCK_BUFFERS
およびSHARED_POOL_SIZE
の値を増加します。
親トピック: インポート操作のチューニングに関する考慮点
27.27.3 インポート・オプションの変更
インポート・オプションの使用についてこれらの点を考慮すると、パフォーマンスの向上につながる場合があります。
「インポート・パラメータ」に示す使用可能なオプションの各説明も参照してください。
-
COMMIT
=N
を設定します。これによって、各バッファの後ではなく、各オブジェクト(表)の後にインポートがコミットされます。このため、1つの大きなロールバック・セグメントが必要となります。(ロールバック・セグメントは将来のリリースでは非推奨になるため、かわりに、自動UNDO管理の使用をお薦めします。) -
システム・アクティビティ、データベースのサイズなどに応じて、
BUFFER
またはRECORDLENGTH
に大きい値を指定します。サイズを大きくすると、データに対してエクスポート・ファイルがアクセスされる回数が削減されます。通常は数MBで十分です。バッファ・サイズが大きすぎることを示す、過剰なページングおよびスワッピング・アクティビティをチェックします。 -
索引はインポート後に作成できるため、時間に余裕がある場合は、
INDEXES
=N
の設定を考慮してください。設定する場合は、INDEXFILE
パラメータを使用して索引作成のDLLを抽出するか、またはINDEXES
=Y
およびROWS
=N
を指定してインポートを再実行します。
親トピック: インポート操作のチューニングに関する考慮点
27.27.4 大量のLOBデータの処理
大量のLOBデータのインポートについて説明します。
具体的には次のとおりです。
-
索引を削除すると、総インポート時間が大幅に削減されます。LOBロケータには、インポート時に明示的に削除または無視できない主キーが存在するため、LOBデータのインポート時には特別な注意が必要です。
-
データのロードを完了するために使用できる十分な領域が、大きな連続したチャンクで存在することを確認してください。
親トピック: インポート操作のチューニングに関する考慮点
27.27.5 大量のLONGデータの処理
LONG
列を持つ表をインポートすると、I/Oおよびディスクの使用率が高くなり、その結果、インポート操作のパフォーマンスが低くなります。
注意:
この機能は非推奨です。今後のリリースではサポートされなくなる可能性があります。LONG
データ型(LONG
、LONG RAW
、LONG VARCHAR
、LONG VARRAW
)のすべての形式は、Oracle8iリリース8.1.6で非推奨になりました。以降のリリースでは、LONG
データ型は既存のアプリケーションとの下位互換性のために提供されていました。以降のリリースで開発された新しいアプリケーションでは、大量の文字データにCLOB
およびNCLOB
データ型を使用することをお薦めします。
大量のLONG
データのインポート時にパフォーマンスを向上させる特定のパラメータは存在しませんが、この項で説明したチューニングに関する一般的な考慮点に注意することによって、パフォーマンス全体が向上する場合があります。
関連項目:
親トピック: インポート操作のチューニングに関する考慮点
27.28 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用
これらの項では、リリースが異なるエクスポート・ユーティリティおよびOracle Databaseを使用することに関連した互換性の問題について説明します。
異なるリリースのOracle Database間でデータを移動するときは、必ず次の基本的な規則に従います。
-
インポート・ユーティリティとデータのインポート先データベース(ターゲット・データベース)は同じバージョンである必要があります。たとえば、インポート・ユーティリティ9.2.0.7を使用して9.2.0.8のデータベースにインポートしようとすると、エラーが発生する場合があります。
-
エクスポート・ユーティリティのバージョンは、ソースまたはターゲット・データベースの古い方のバージョンに合わせる必要があります。
たとえば、新しいリリースのデータベースにインポートするためにエクスポート・ファイルを作成する場合は、ソース・データベースと同じエクスポート・ユーティリティのバージョンを使用します。一方、古いリリースのデータベースにインポートするためのエクスポート・ファイルを作成する場合は、ターゲット・データベースのバージョンと同じバージョンのエクスポート・ユーティリティを使用します。
-
通常は、Oracle8リリースのエクスポート・ユーティリティを使用して、Oracle9iサーバーからエクスポートし、Oracle8エクスポート・ファイルを作成できます。
-
- リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用時の制限事項
リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用時には制限事項があります。 - リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用例
リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用。
親トピック: オリジナルのインポート
27.28.1 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用時の制限事項
異なるリリースのエクスポート・ユーティリティおよびインポート・ユーティリティを使用する場合、制限があります。
具体的には次のとおりです。
-
エクスポート・ダンプ・ファイルは、特別なバイナリ形式で格納されているため、インポート・ユーティリティによる読取り専用です。
-
すべてのエクスポート・ダンプ・ファイルは、上位リリースのOracle Databaseにインポートできます。
-
インポート・ユーティリティでは、上位のメンテナンス・リリースまたはバージョンのエクスポート・ユーティリティで作成されたエクスポート・ダンプ・ファイルの読取りはできません。たとえば、リリース9.2のエクスポート・ダンプ・ファイルは、リリース9.0.1のインポート・ユーティリティではインポートできません。
-
下位バージョンのエクスポート・ユーティリティを上位バージョンのOracle Databaseで実行すると、下位バージョンに存在しないデータベース・オブジェクトのカテゴリは、常に、エクスポートから除外されます。
-
Oracle9iのエクスポート(ダイレクト・パスまたは従来型パス)によって生成されたエクスポート・ファイルは、以前のリリースのインポート・ユーティリティと互換性がありません。したがって、インポートにはOracle9iのインポートのみを使用できます。下位互換性が問題になる場合は、Oracle9iデータベースよりも古いリリースのエクスポート・ユーティリティを使用してください。
27.28.2 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用例
リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用。
表27-5に、異なるリリースのOracle Database間でデータを移動させる場合に使用するエクスポート・ユーティリティおよびインポート・ユーティリティのリリースの例を示します。
表27-5 リリースが異なるエクスポート・ユーティリティおよびインポート・ユーティリティの使用
エクスポート元>インポート先 | 使用するエクスポート・ユーティリティのリリース | 使用するインポート・ユーティリティのリリース |
---|---|---|
8.1.6 -> 8.1.6 |
8.1.6 |
8.1.6 |
8.1.5 -> 8.0.6 |
8.0.6 |
8.0.6 |
8.1.7 -> 8.1.6 |
8.1.6 |
8.1.6 |
9.0.1 -> 8.1.6 |
8.1.6 |
8.1.6 |
9.0.1 -> 9.0.2 |
9.0.1 |
9.0.2 |
9.0.2 -> 10.1.0 |
9.0.2 |
10.1.0 |
10.1.0 -> 9.0.2 |
9.0.2 |
9.0.2 |
表27-5に、オリジナルのエクスポートおよびインポート・ユーティリティ間のデータ移動を示します。Oracle Database 10gリリース1 (10.1)以上では、ほとんどの場合にデータ・ポンプ・エクスポートおよびデータ・ポンプ・インポート・ユーティリティを使用することをお薦めします。これらのユーティリティは、オリジナルのエクスポートおよびインポート・ユーティリティと比較して、パフォーマンスが著しく向上しています。
関連項目:
10.1以上のリリースを含めた異なるリリース間でのデータのエクスポートおよびインポートの詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。