プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

データベース・オブジェクトのエクスポート時の考慮点

次の項では、特定のデータベース・オブジェクトをエクスポートする場合の考慮点について説明します。

エクスポート順序

エクスポート中もトランザクションから順序番号へのアクセスが継続すると、順序番号がスキップされる場合があります。順序番号がスキップされないようにする最良の方法として、エクスポート中に順序にアクセスしないようにします。

順序番号をスキップできるのは、キャッシュされた順序番号が使用されている場合のみです。順序番号のキャッシュが割り当てられていると、それらを現在のデータベースで使用できます。エクスポートされる値は、次の順序番号(キャッシュされた値の後)です。キャッシュされていても未使用の順序番号は、順序がインポートされたときに失われます。

LONGおよびLOBデータ型のエクスポート

エクスポート時に、LONGデータ型はセクションごとにフェッチされます。ただし、LONGデータを含めて、各行のすべての内容を保持できる十分な使用可能メモリーが必要です。

LONG列の長さは、最大2GBです。

LOB列内のデータはすべてを同時にメモリーに保持する必要はありません。LOBデータはセクションごとにロードおよびアンロードされます。

注意:

既存のLONG列もLOB列に変換することをお薦めします。LOB列は、LONG列ほど制限は多くありません。また、LOB機能はすべてのリリースで拡張されていますが、LONG機能は、いくつかのリリースでは拡張されていません。

外部関数ライブラリのエクスポート

外部関数ライブラリの内容はエクスポート・ファイルに含まれません。かわりに、ライブラリの指定(名前、場所)のみが全体データベース・モードおよびユーザー・モード・エクスポートに含まれます。データベースを新しい場所に移動する場合は、ライブラリの実行可能ファイルを移動してライブラリの指定を更新する必要があります。

オフライン・ローカル管理表領域のエクスポート

エクスポートするデータにオフライン・ローカル管理表領域が含まれていると、エクスポート・ユーティリティでは完全な表領域定義をエクスポートできず、エラー・メッセージが表示されます。その場合もデータをインポートはできますが、インポートの前にオフライン・ローカル管理表領域を作成して、欠落している表領域を参照する場合があるDDLコマンドに失敗しないようにする必要があります。

ディレクトリ別名のエクスポート

ディレクトリ別名の定義は、全体データベース・モード・エクスポートのみに含まれます。データベースを新しい場所に移動する場合、データベース管理者は、新しい場所を指すように、ディレクトリ別名を更新する必要があります。

ディレクトリ別名はユーザー・モードまたは表モード・エクスポートには含まれません。したがって、ディレクトリ別名を使用する前に、ディレクトリ別名をターゲット・システム上に作成しておく必要があります。

BFILE列および属性のエクスポート

エクスポート・ファイルには、BFILE列または属性によって参照される外部ファイルの内容は保持されません。かわりに、ファイルの名前とディレクトリ別名のみがエクスポート時にコピーされて、インポート時にリストアされます。データベースを移動し、元のディレクトリに含まれているファイルにアクセスできない場合、データベース管理者(DBA)は、指定されたファイルが含まれているディレクトリを、アクセス可能な新しい場所に移動する必要があります。

外部表のエクスポート

外部表の内容はエクスポート・ファイルに含まれません。かわりに、表の指定(名前、場所)のみが全体データベース・モードおよびユーザー・モード・エクスポートに含まれます。データベースを新しい場所に移動する場合は、外部データを手動で移動して表の指定を更新する必要があります。

オブジェクトの型定義のエクスポート

どのエクスポート・モードでも、エクスポート・ユーティリティには、エクスポートする表で使用されるオブジェクトの型定義に関する情報が含まれます。ターゲット・システム上のオブジェクト型とエクスポート・ファイルに含まれているオブジェクトの状態との間に一貫性があるかどうかを確認するには、オブジェクト名、オブジェクト識別子、オブジェクト・ジオメトリなどの情報が必要です。これにより、表に必要なオブジェクト型が、同じオブジェクト識別子でインポート時に作成されます。

ただし、エクスポート・ユーティリティを実行するユーザーが、対象のオブジェクト型に対する実行権限を持っていない場合、表モード、ユーザー・モード、表領域モードでは、表に必要な完全オブジェクト定義がエクスポート・ファイルに含まれません。この場合、その型の存在確認に必要な情報のみが、同じオブジェクト識別子およびジオメトリでインポート・ターゲット・システム上に書き込まれます。

ユーザーは、DBAとともに適切な型定義を作成するか、またはDBAが実行した全体データベース・モード・エクスポートまたはユーザー・モード・エクスポートからそれらの型定義をインポートすることによって、適切なデータ型がターゲット・システムに存在するようにする必要があります。

すべてのオブジェクト型定義を保持するには、全体データベース・モード・エクスポートを定期的に実行することが重要です。また、異なるスキーマのオブジェクト型定義を使用する場合、DBAは、該当するユーザーのユーザー・モード・エクスポートを実行する必要があります。たとえば、ユーザーscottに属しているtable1に、blakeの型type1に存在する列が含まれている場合、表に必要な型定義を保持するには、blakescottの両方のユーザー・モード・エクスポートを実行する必要があります。

ネストした表のエクスポート

ネストした内部表データは、外部表がエクスポートされると必ずエクスポートされます。ネストした内部表は名前を指定できますが、個別にエクスポートすることはできません。

AQ表のエクスポート

キューは表上で実装されます。キューのエクスポートおよびインポートは、基礎となるキュー表と関連のディクショナリ表のエクスポートおよびインポートによって構成されます。キューのエクスポートおよびインポートは、キュー表単位のレベルでのみ実行できます。

キュー表をエクスポートすると、表定義情報とキュー・データの両方がエクスポートされます。キュー表データと表定義がエクスポートされるため、ユーザーは、キュー表データのインポート時に、アプリケーション・レベル・データの整合性のメンテナンスを行います。

関連項目:

『Oracle Databaseアドバンスト・キューイング・ユーザーズ・ガイド』

シノニムのエクスポート

シノニムおよび別のオブジェクトとして使用される名前を参照するコンパイル済オブジェクトをエクスポートするときは、注意する必要があります。これらのオブジェクトのエクスポートおよびインポートを実行すると、再コンパイルが施行されて、オブジェクト定義が変更されることがあります。

この問題について、次の例に示します。

CREATE PUBLIC SYNONYM emp FOR scott.emp;

CONNECT blake/paper;
CREATE TRIGGER t_emp BEFORE INSERT ON emp BEGIN NULL; END;
CREATE VIEW emp AS SELECT * FROM dual;

前述の例のデータベースがエクスポートされると、トリガー内のempへの参照によって、scottの表ではなくblakeのビューが参照されます。そのため、インポート・ユーティリティでt_empトリガーを再確立しようとすると、エラーが発生します。

Javaシノニムに関連して発生する可能性があるエクスポート・エラー

対応するDBMS_JAVAパッケージがないとき、またはJavaがロードされないか、正しくロードされないときに、エクスポート操作でDBMS_JAVAという名前のシノニムをエクスポートしようとすると、エクスポートが正常に完了されないまま終了します。生成されるエラー・メッセージには、EXP-00008、ORA-00904、ORA-29516などが含まれます。

Javaが有効化されている場合、エクスポートを再実行する前にDBMS_JAVAシノニムとDBMS_JAVAパッケージの両方が作成されて有効になっていることを確認してください。

Javaが有効化されていない場合は、エクスポートを再実行する前にJava関連オブジェクトを削除します。

ファイングレイン・アクセス・コントロールに対するサポート

ファイングレイン・アクセス・コントロール・ポリシーを使用可能にして、表をエクスポートできます。その場合は、次の点を考慮してください。

  • ファイングレイン・アクセス・コントロール・ポリシーが使用可能な表を含むエクスポート・ファイルをインポートするユーザーは、適切な権限(特にDBMS_RLSパッケージに対するEXECUTE権限。表のセキュリティ・ポリシーを回復するため)を持っている必要があります。適切な権限を持っていないユーザーが、ファイングレイン・アクセス・ポリシーが使用可能な表をエクスポートしようとすると、エクスポート実行者が読取り権限を持つ行のみがエクスポートされます。

  • SELECT文に対してファイングレイン・アクセス・コントロールを使用可能にすると、従来型パス・エクスポートでは表全体をエクスポートできない場合があります。これは、ファイングレイン・アクセスでは問合せが再作成される可能性があるためです。

  • ファイングレイン・アクセス・コントロールが設定されている表上でダイレクト・パス・エクスポートを実行できるのは、ユーザーSYS、EXP_FULL_DATABASEロールが使用可能なユーザー、またはEXEMPT ACCESS POLICYを付与されているユーザーのみです。