ヘッダーをスキップ
Oracle® Databaseアップグレード・ガイド
11g リリース2(11.2)
B56310-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

7 Oracle Data Pumpを使用したデータの移動

Oracle Databaseをアップグレードするときに、Oracle Data Pumpのエクスポート/インポート・ユーティリティを使用して、あるデータベースから別のデータベースにデータを移動できます。

この章の内容は次のとおりです。


関連項目:

データ・ポンプおよびエクスポート/インポート・ユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。

Oracle Databaseのアップグレードに使用するデータ・ポンプ・エクスポートおよびインポートの概要

データ・ポンプ・エクスポート(expdp)およびデータ・ポンプ・インポート(impdp)・ユーティリティの外観や使用感はオリジナルのエクスポート(EXP)およびインポート(IMP)ユーティリティと似ていますが、これらは別のユーティリティです。データ・ポンプ・エクスポート/インポート・ユーティリティが最初にリリースされたのはOracle Database 10gリリース1(10.1)であり、オリジナルのエクスポート/インポート・ユーティリティに置き換わる高パフォーマンスのユーティリティです。これらのユーティリティはオリジナルのエクスポート/インポート・ユーティリティに比べて大幅にパフォーマンスが向上しているため、データベースをアップグレードする場合は、データ・ポンプ・エクスポート/インポート・ユーティリティを使用する必要があります。また、IMPおよびEXPユーティリティは、サポートされなくなりました。


関連項目:


データ・ポンプ・エクスポートおよびインポートには、次のようなメリットがあります。

  • データおよびメタデータのフィルタ機能は、オリジナルのエクスポート・ユーティリティで用意されていた機能を上回ります。データ・ポンプでは、オブジェクトおよびオブジェクトの種類に基づいてエクスポートおよびインポートされたメタデータを、INCLUDEおよびEXCLUDEパラメータを使用してフィルタ処理できます。

  • データベースの一部を様々なモード(全体データベース・モード、スキーマ・モード、表モード、表領域モード、トランスポータブル表領域モードなど)でアンロード/ロードできます。(『Oracle Databaseユーティリティ』のデータ・ポンプ・エクスポートのモードおよびデータ・ポンプ・インポートのモードに関する項を参照してください。)

  • インポート操作中のパーティション表の処理方法を、PARTITION_OPTIONSパラメータを使用して指定できます。

  • 全種類のデータ型がサポートされます。


関連項目:

データ・ポンプ・エクスポートおよびインポートの概要は、『Oracle Databaseユーティリティ』を参照してください。

オリジナルのEXPおよびIMPユーティリティを使用するタイミング

データベースに対して次の種類のアップグレードおよびダウングレードを行う場合は、オリジナルのエクスポート/インポート・ユーティリティが必要です。

  • Oracle Database 10gリリース1(10.1)より前のリリースからアップグレードする場合は、オリジナルのエクスポート/インポート・ユーティリティを使用してデータを移動する必要があります。同様に、Oracle Database 10gリリース1(10.1)より前のリリースにダウングレードする場合も、オリジナルのエクスポート/インポート・ユーティリティを使用する必要があります。

  • Oracle Database 10gリリース1(10.1)より前のリリースにダウングレードする必要がある場合は、下位互換性を確保するために引き続きオリジナルのエクスポート・ユーティリティがサポートされます。

  • XMLTypeの表またはXMLTypeの列を含む(スキーマ・ベースおよびスキーマ・ベース以外の)表をOracle Database 11gリリース1(11.1)からOracle Database 10gリリース2(10.2)に移動する場合。


関連項目:

プラットフォーム間のデータベース移動の詳細は、『Oracle Databaseユーティリティ』を参照してください。

Oracle Databaseをアップグレードする場合のエクスポート/インポートの要件

データ・ポンプ・エクスポート・ユーティリティで生成されるダンプ・ファイルには、オリジナルのエクスポート・ユーティリティで生成されるダンプ・ファイルとの互換性がありません。したがって、オリジナルのエクスポート(EXP)・ユーティリティで生成されたファイルは、データ・ポンプ・インポート(impdp)・ユーティリティでインポートすることはできません。逆もまた同様です。

エクスポート・ダンプ・ファイルおよびアップグレードの概要

いずれかのエクスポート・ユーティリティで作成されたダンプ・ファイルは、Oracle Databaseのすべての上位リリースにインポートできます。たとえば、Oracle8のオリジナルのエクスポート・ユーティリティのダンプ・ファイルは、Oracle8i、Oracle9i、Oracle Database 10gおよびOracle Database 11gのオリジナルのインポート・ユーティリティでインポートできます。

表7-1に、Oracle Database 11gリリース2(11.2)より前のリリースからデータをエクスポートし、そのデータをOracle Database 11gリリース2(11.2)にインポートする場合に使用するリリースを示します。

表7-1 リリース11.2より前のリリースからのエクスポートおよびリリース11.2へのインポート

エクスポート元 インポート先 使用するエクスポートのバージョン 使用するインポートのバージョン

リリース11.1

リリース11.2

データ・ポンプ・エクスポート・リリース11.1

データ・ポンプ・インポート・リリース11.2

リリース10.2

リリース11.2

データ・ポンプ・エクスポート・リリース10.2

データ・ポンプ・インポート・リリース11.2

リリース10.1

リリース11.2

データ・ポンプ・エクスポート・リリース10.1

データ・ポンプ・インポート・リリース11.2

リリース9.2

リリース11.2

オリジナルのエクスポートのリリース9.2

オリジナルのインポートのリリース11.2

リリース8.1.7

リリース11.2

オリジナルのエクスポートのリリース8.1.7

オリジナルのインポートのリリース11.2

リリース8.0.6

リリース11.2

オリジナルのエクスポートのリリース8.0.6

オリジナルのインポートのリリース11.2

リリース7.3.4

リリース11.2

オリジナルのエクスポートのリリース7.3.4

オリジナルのインポートのリリース11.2


ダウングレードに必要なエクスポートおよびインポートの要件

ダウングレードは、最大で1つ前のOracle Databaseリリースまで可能です。たとえば、現行のデータベースがOracle Database 11gリリース1(11.1)の場合は、ダウングレードがサポートされているリリースはOracle Database 10gリリース2(10.2)のみです。

下位互換性のあるダンプ・ファイルを取得するための要件

  • データ・ポンプ・エクスポートを使用する場合は、現行バージョンのデータ・ポンプ・エクスポート・ユーティリティを使用しますが、VERSIONパラメータには、ターゲットである古いバージョンを設定します。

    データ・ポンプ・インポートは、現在のデータベース・バージョンより新しいデータベース・バージョンで作成されたダンプ・ファイル・セットを読み込むことができません(ただし、VERSIONパラメータをターゲット・データベースのバージョンに設定して、ダンプ・ファイル・セットを作成している場合は除きます)。したがって、ダウングレードを行う場合は、VERSIONパラメータをターゲット・データベースのバージョンに設定して、データ・ポンプのエクスポートを使用するようにしてください。


    関連項目:

    VERSIONパラメータの使用方法の詳細は、『Oracle Databaseユーティリティ』を参照してください。

  • オリジナルのエクスポートを使用する場合は、古いバージョンのエクスポート(exp)を実行し、ダウングレード先のデータベース・バージョンと互換性のあるダンプ・ファイルを作成します。その後、ターゲットでオリジナルのインポート・ユーティリティを実行します。

    オリジナルのエクスポートのダンプ・ファイルは、前のOracle Databaseリリースのインポート・ユーティリティとは下位互換性が ありません。そのため、エクスポートされたデータは、前のOracle Databaseリリースのインポート・ユーティリティではインポートできません。たとえば、Oracle9iのエクスポート・ダンプ・ファイルは、Oracle8iのインポート・ユーティリティではインポートできず、Oracle Database 10gのエクスポート・ダンプ・ファイルは、Oracle9iのインポート・ユーティリティではインポートできません。次の表に、例を示します。


    関連項目:

    異なるリリースおよびバージョンのエクスポートの使用の詳細は、『Oracle Databaseユーティリティ』を参照してください。

表7-2に、Oracle Database 11gリリース2(11.2)からデータをエクスポートし、そのデータを前のリリースにインポートする場合に使用するリリースを示します。メジャー・リリースのダウングレードは、11.1、10.2および10.1でサポートされています。

表7-2 リリース11.1からのデータのエクスポートおよび以前のリリースへのインポート

エクスポート元 インポート先 使用するエクスポートのバージョン 使用するインポートのバージョン

リリース11.2

リリース11.1

VERSION=11.1に設定したデータ・ポンプ・エクスポート・リリース11.2

データ・ポンプ・インポート・リリース11.1

リリース11.1

リリース10.2

VERSION=10.2 に設定したデータ・ポンプ・エクスポート・リリース11.1

データ・ポンプ・インポート・リリース10.2

リリース10.2

リリース10.1

VERSION=10.1 に設定したデータ・ポンプ・エクスポート・リリース10.2

データ・ポンプ・インポート・リリース10.1



注意:

オリジナルのエクスポート・ユーティリティを使用する場合に、ソース・データベースがターゲット・データベースより新しい場合は、エクスポートを正常に終了させるために、前の(古い)リリースに付属しているcatexp.sqlスクリプトを実行する必要があります。いったんエクスポートが終了したら、新しいリリースのほうでcatexp.sqlスクリプトを実行し、エクスポート・ビューをリストアします。次の手順を実行します。
  1. エクスポートされるデータベース上で、古いほうのCATEXP.SQLスクリプトを実行します。

  2. 古いほうのエクスポート・ユーティリティを使用して、ダンプ・ファイルを作成します。

  3. 古いほうのインポート・ユーティリティを使用して、ターゲット・データベースにインポートします。

  4. エクスポートされたデータベース上で、新しいほうのCATEXP.SQLスクリプトを実行します。


以前のリリースと互換性がないデータでのエクスポート/インポートの使用方法

データを以前のリリースにエクスポートする場合、以前のリリースと互換性のないデータはエクスポートできないか、またはいくつかの機能が失われた状態でエクスポートされます。

通常は、データを以前のリリースにエクスポートする必要がある場合は、データをエクスポートする前に、以前のリリースとの非互換性をできるだけ多く削除します。

データ・ポンプ・エクスポート/インポートを使用したデータベースのアップグレード

データ・ポンプのエクスポート/インポート・ユーティリティを使用してデータベースをアップグレードするには、次の手順を実行します。

  1. 現行データベースに付属のエクスポート・ユーティリティを使用して、現行データベースのデータをエクスポートします。現行データベースでのエクスポート・ユーティリティの使用方法の詳細は、現行の『Oracle Databaseユーティリティ』ドキュメントを参照してください。

    一貫性のあるエクスポート結果を得るには、エクスポートの実行中と実行後は現行データベースが更新不可である必要があります。エクスポート実行後にユーザーが現行データベースを更新できるようにする場合は、現行データベースで行われた変更を、インポート完了後に新しいデータベースにコピーするための手順をプロシージャを配置し、その後で現行データベースを使用可能にします。

  2. 新しいOracle Databaseソフトウェアをインストールします。インストールは、オペレーティング・システム別に行います。Oracle Databaseのインストール手順は、ご使用のオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。

  3. 新しいデータベースに現行データベースと同じ名前を付ける場合は、新しいデータベースを作成する前に現行データベースを停止します。

  4. 新しいデータベースを作成します。


    関連項目:

    データベースの作成の詳細は、『Oracle Database管理者ガイド』を参照してください。

  5. SQL*Plusを新しいOracle Database環境で起動します。

  6. SYSDBA権限を持つユーザーとして、データベース・インスタンスに接続します。

  7. STARTUPを使用してOracle Databaseインスタンスを起動します。

  8. オプションで、ソース・データベースとは異なる記憶域パラメータを指定できます。

    新しいデータベースに表領域、ユーザーおよび表を事前に作成し、記憶域パラメータを変更することにより、ディスク領域の使用状況を改善できます。SQL*Plusを使用して表を事前に作成する場合は、元のデータベースとの互換モードで実行するか、またはインポート中に発生する特定のデータ定義の変換を許可するようにします。項目を事前作成した場合は、次のいずれかのオプションを選択します。

    • データ・ポンプ・インポートでTABLE_EXISTS_ACTION=APPENDを指定

    • オリジナルのインポート・ユーティリティでIGNORE=Yを指定


    注意:

    新しいデータベースをソース・データベースと同じコンピュータ上に作成し、ソース・データベースのデータ・ファイルを上書きしない場合は、事前に表領域を作成し、インポート時に次のオプションのいずれかを指定する必要があります。
    • データ・ポンプ・インポートでREUSE_DATAFILES=Nを指定

      ダンプ・ファイル・セット内の古い名前に対する参照が、競合しない新しい名前にマップしなおされるように、REMAP_DATAFILE、REMAP_TABLESPACEおよびREMAP_TABLEオプションの使用を、必要に応じて検討します。

    • オリジナルのインポート・ユーティリティでDESTROY=Nを指定


  9. 新しいデータベースのインポート・ユーティリティを使用して、現行データベースからエクスポートしたオブジェクトをインポートします。インポート・セッションからファイルに情報メッセージやエラー・メッセージを保存するには、次のいずれかのパラメータを組み込んでください。

    • データ・ポンプ・インポートでLOGFILEパラメータを指定

    • オリジナルのインポート・ユーティリティでLOGパラメータを指定


    関連項目:

    データ・ポンプ・インポート・ユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。

  10. インポート作業が完了したら、どのオブジェクトのどのインポートが正常に終了してどれが失敗したか(失敗したものがある場合)を、インポート・ログ・ファイルで確認します。


    関連項目:

    エラーの対処については、『Oracle Databaseユーティリティ』およびOracle DatabaseのREADME.docを参照してください。

  11. その他のインポート方法(『Oracle Databaseユーティリティ』を参照)を使用するか、またはデータベース・オブジェクトを作成するSQLスクリプトを使用して、インポートに失敗したオブジェクトを作成しなおします(または、完全に新規のインポートを開始します)。


    注意:

    データ・ポンプ・エクスポートまたはインポートのジョブで致命的なエラーが発生した場合は、エラーの原因となった条件を修正した後ジョブを再起動できます。ジョブは、エラーが発生した箇所から自動的に続行されます。

  12. エクスポートの実行後に現行データベースに変更を加える場合は、ユーザーに使用可能にする前に、それらの変更が新しいデータベースに伝搬されるようにします。詳細は、手順1を参照してください。

  13. 第4章「Oracle Databaseのアップグレード後の作業」に示す手順を実行します。

ネットワーク・リンクを使用したデータベース全体のインポート

「データ・ポンプ・エクスポート/インポートを使用したデータベースのアップグレード」にかわる手順として、データベース・リンクを介してデータ・ポンプ・インポート・ユーティリティを使用して、中間ダンプ・ファイルなしでソース・データベースからインポート先データベースへデータベース全体のインポートを実行できます。


注意:

相互運用性のエラーを回避するには、アップグレードするデータベースに適切なパッチ・セットを確実に適用します。最新のパッチ・セットを取得するには、My Oracle Support(https://support.oracle.com)を参照してください。

また、サポート・ノートID 4511371.8で、ORA-6544およびORA-4052エラーに関する説明を参照することもできます。


impdpを介してネットワーク・リンクを使用するには、次の手順を実行します。

  1. ソース・データベースでエクスポートを実行するユーザーにEXP_FULL_DATABASEロールがあることを確認します。

    データベース・リンク作成時に、このユーザーを指定する必要があります。

  2. インポート先データベースでインポートを実行するユーザーにIMP_FULL_DATABASEロールがあることを確認します。

  3. ソース・データベースとインポート先データベースとの間にデータベース・リンクを作成してテストします。

  4. 次のコマンドを実行します。import_userはインポートを実行するユーザーのユーザー名で、db_linkはエクスポートを実行するユーザーが所有するデータベース・リンクの名前です。

    IMPDP import_user/password NETWORK_LINK=db_link FULL=Y;
    
  5. インポート操作のログ・ファイルが、DATA_PUMP_DIRディレクトリに書き込まれます。このディレクトリの場所は、次のコマンドを実行して検出できます。

    SQL> select * from dba_directories where DIRECTORY_NAME like 'DATA_PUMP_DIR';
    

    注意:

    XMLオブジェクトはソース・データベースからエクスポートされません。


注意:

インポート操作によって新しいインポート先サーバーにユーザーが再作成され、dba_usersの作成日付は実際のインポート日付を示します。有効期限は、creation_date + password_life_timeに更新されます。新しいサーバーの上のdba_usersのパラメータは、インポート元サーバーの上のdba_usersパラメータとは異なります。