Oracle Databaseをアップグレードするときに、Oracle Data Pumpのエクスポート/インポート・ユーティリティを使用して、あるデータベースから別のデータベースにデータを移動できます。
この章の内容は次のとおりです。
関連項目: データ・ポンプおよびエクスポート/インポート・ユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。 |
データ・ポンプ・エクスポート(expdp)およびデータ・ポンプ・インポート(impdp)・ユーティリティの外観や使用感はオリジナルのエクスポート(EXP)およびインポート(IMP)ユーティリティと似ていますが、これらは別のユーティリティです。データ・ポンプ・エクスポート/インポート・ユーティリティが最初にリリースされたのはOracle Database 10gリリース1(10.1)であり、オリジナルのエクスポート/インポート・ユーティリティに置き換わる高パフォーマンスのユーティリティです。これらのユーティリティはオリジナルのエクスポート/インポート・ユーティリティに比べて大幅にパフォーマンスが向上しているため、データベースをアップグレードする場合は、データ・ポンプ・エクスポート/インポート・ユーティリティを使用する必要があります。また、IMPおよびEXPユーティリティは、サポートされなくなりました。
関連項目:
|
データ・ポンプ・エクスポートおよびインポートには、次のようなメリットがあります。
データおよびメタデータのフィルタ機能は、オリジナルのエクスポート・ユーティリティで用意されていた機能を上回ります。データ・ポンプでは、オブジェクトおよびオブジェクトの種類に基づいてエクスポートおよびインポートされたメタデータを、INCLUDE
およびEXCLUDE
パラメータを使用してフィルタ処理できます。
データベースの一部を様々なモード(全体データベース・モード、スキーマ・モード、表モード、表領域モード、トランスポータブル表領域モードなど)でアンロード/ロードできます。(『Oracle Databaseユーティリティ』のデータ・ポンプ・エクスポートのモードおよびデータ・ポンプ・インポートのモードに関する項を参照してください。)
インポート操作中のパーティション表の処理方法を、PARTITION_OPTIONS
パラメータを使用して指定できます。
全種類のデータ型がサポートされます。
関連項目: データ・ポンプ・エクスポートおよびインポートの概要は、『Oracle Databaseユーティリティ』を参照してください。 |
データベースに対して次の種類のアップグレードおよびダウングレードを行う場合は、オリジナルのエクスポート/インポート・ユーティリティが必要です。
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ユーティリティ』を参照してください。 |
データ・ポンプ・エクスポート・ユーティリティで生成されるダンプ・ファイルには、オリジナルのエクスポート・ユーティリティで生成されるダンプ・ファイルとの互換性がありません。したがって、オリジナルのエクスポート(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 |
|
データ・ポンプ・インポート・リリース11.1 |
リリース11.1 |
リリース10.2 |
|
データ・ポンプ・インポート・リリース10.2 |
リリース10.2 |
リリース10.1 |
|
データ・ポンプ・インポート・リリース10.1 |
注意: オリジナルのエクスポート・ユーティリティを使用する場合に、ソース・データベースがターゲット・データベースより新しい場合は、エクスポートを正常に終了させるために、前の(古い)リリースに付属しているcatexp.sql スクリプトを実行する必要があります。いったんエクスポートが終了したら、新しいリリースのほうでcatexp.sql スクリプトを実行し、エクスポート・ビューをリストアします。次の手順を実行します。
|
データ・ポンプのエクスポート/インポート・ユーティリティを使用してデータベースをアップグレードするには、次の手順を実行します。
現行データベースに付属のエクスポート・ユーティリティを使用して、現行データベースのデータをエクスポートします。現行データベースでのエクスポート・ユーティリティの使用方法の詳細は、現行の『Oracle Databaseユーティリティ』ドキュメントを参照してください。
一貫性のあるエクスポート結果を得るには、エクスポートの実行中と実行後は現行データベースが更新不可である必要があります。エクスポート実行後にユーザーが現行データベースを更新できるようにする場合は、現行データベースで行われた変更を、インポート完了後に新しいデータベースにコピーするための手順をプロシージャを配置し、その後で現行データベースを使用可能にします。
新しいOracle Databaseソフトウェアをインストールします。インストールは、オペレーティング・システム別に行います。Oracle Databaseのインストール手順は、ご使用のオペレーティング・システムの『Oracle Databaseインストレーション・ガイド』を参照してください。
新しいデータベースに現行データベースと同じ名前を付ける場合は、新しいデータベースを作成する前に現行データベースを停止します。
新しいデータベースを作成します。
関連項目: データベースの作成の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
SQL*Plusを新しいOracle Database環境で起動します。
SYSDBA
権限を持つユーザーとして、データベース・インスタンスに接続します。
STARTUP
を使用してOracle Databaseインスタンスを起動します。
オプションで、ソース・データベースとは異なる記憶域パラメータを指定できます。
新しいデータベースに表領域、ユーザーおよび表を事前に作成し、記憶域パラメータを変更することにより、ディスク領域の使用状況を改善できます。SQL*Plusを使用して表を事前に作成する場合は、元のデータベースとの互換モードで実行するか、またはインポート中に発生する特定のデータ定義の変換を許可するようにします。項目を事前作成した場合は、次のいずれかのオプションを選択します。
データ・ポンプ・インポートでTABLE_EXISTS_ACTION=APPEND
を指定
オリジナルのインポート・ユーティリティでIGNORE=Y
を指定
注意: 新しいデータベースをソース・データベースと同じコンピュータ上に作成し、ソース・データベースのデータ・ファイルを上書きしない場合は、事前に表領域を作成し、インポート時に次のオプションのいずれかを指定する必要があります。
|
新しいデータベースのインポート・ユーティリティを使用して、現行データベースからエクスポートしたオブジェクトをインポートします。インポート・セッションからファイルに情報メッセージやエラー・メッセージを保存するには、次のいずれかのパラメータを組み込んでください。
データ・ポンプ・インポートでLOGFILE
パラメータを指定
オリジナルのインポート・ユーティリティでLOG
パラメータを指定
関連項目: データ・ポンプ・インポート・ユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。 |
インポート作業が完了したら、どのオブジェクトのどのインポートが正常に終了してどれが失敗したか(失敗したものがある場合)を、インポート・ログ・ファイルで確認します。
関連項目: エラーの対処については、『Oracle Databaseユーティリティ』およびOracle DatabaseのREADME.doc を参照してください。 |
その他のインポート方法(『Oracle Databaseユーティリティ』を参照)を使用するか、またはデータベース・オブジェクトを作成するSQLスクリプトを使用して、インポートに失敗したオブジェクトを作成しなおします(または、完全に新規のインポートを開始します)。
注意: データ・ポンプ・エクスポートまたはインポートのジョブで致命的なエラーが発生した場合は、エラーの原因となった条件を修正した後ジョブを再起動できます。ジョブは、エラーが発生した箇所から自動的に続行されます。 |
エクスポートの実行後に現行データベースに変更を加える場合は、ユーザーに使用可能にする前に、それらの変更が新しいデータベースに伝搬されるようにします。詳細は、手順1を参照してください。
第4章「Oracle Databaseのアップグレード後の作業」に示す手順を実行します。
「データ・ポンプ・エクスポート/インポートを使用したデータベースのアップグレード」にかわる手順として、データベース・リンクを介してデータ・ポンプ・インポート・ユーティリティを使用して、中間ダンプ・ファイルなしでソース・データベースからインポート先データベースへデータベース全体のインポートを実行できます。
注意: 相互運用性のエラーを回避するには、アップグレードするデータベースに適切なパッチ・セットを確実に適用します。最新のパッチ・セットを取得するには、My Oracle Support(https://support.oracle.com )を参照してください。
また、サポート・ノートID 4511371.8で、ORA-6544およびORA-4052エラーに関する説明を参照することもできます。 |
impdpを介してネットワーク・リンクを使用するには、次の手順を実行します。
ソース・データベースでエクスポートを実行するユーザーにEXP_FULL_DATABASE
ロールがあることを確認します。
データベース・リンク作成時に、このユーザーを指定する必要があります。
インポート先データベースでインポートを実行するユーザーにIMP_FULL_DATABASE
ロールがあることを確認します。
ソース・データベースとインポート先データベースとの間にデータベース・リンクを作成してテストします。
次のコマンドを実行します。import_user
はインポートを実行するユーザーのユーザー名で、db_link
はエクスポートを実行するユーザーが所有するデータベース・リンクの名前です。
IMPDP import_user/password NETWORK_LINK=db_link FULL=Y;
インポート操作のログ・ファイルが、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パラメータとは異なります。 |