28 プラットフォーム間でのデータ転送
RMANを使用すると、表領域をエンディアン形式の異なるプラットフォーム間でトランスポートできます。また、2つのプラットフォームのエンディアン形式が同じであるかぎり、RMANを使用してデータベース全体を別のプラットフォームに転送することもできます。
この章のトピックは、次のとおりです:
28.1 クロス・プラットフォーム・データ・トランスポートについて
クロス・プラットフォーム・トランスポータブル表領域は、通常のトランスポータブル表領域に類似しています。トランスポート対象のすべてのオブジェクトがトランスポート対象となっている表領域のセット内に完全に含まれている必要があるといった、トランスポータブル表領域に適用されるすべての制限が、ここにも適用されます。クロス・プラットフォーム・トランスポータブル表領域は、同じ、または異なるエンディアン形式を持つプラットフォーム間で実行できます。
クロス・プラットフォーム・トランスポータブル・データベースとトランスポータブル表領域は同じものではありません。この場合、1つのプラットフォームから別のプラットフォームへSYSTEM
表領域を含むデータベース全体がコピーされます。包含のチェックは関連付けれておらず、SYSTEM
表領域がコピーされるため、エクスポート/インポート・ステップは不要です。クロス・プラットフォーム・トランスポータブル・データベースは、同じエンディアン形式を持つプラットフォーム間でのみ実行できます。
28.1.1 クロス・プラットフォーム・データ・トランスポートの目的
あるプラットフォームで実行されているデータベースの表領域を別のプラットフォームで実行されているデータベースにトランスポートできます。クロス・プラットフォーム・トランスポータブル表領域の通常の使用方法を次に示します。
-
表領域を変換することでプラットフォームに関係なく既存のデータベースに表領域を統合できるカスタマへ、構造化データをトランスポータブル表領域として公開する。
-
大規模なデータ・ウェアハウス・サーバーから小規模なコンピュータ(Linuxベースのワークステーションやサーバーなど)上のデータ・マートへデータを移動する。
-
すべてのホストのエンディアン形式が同一である異機種間クラスタ間で、読取り専用表領域を共有する。
-
最短のアプリケーション停止時間で、プラットフォーム間で表領域を移行する。
トランスポータブル表領域、その使用方法、およびトランスポータブル表領域を作成および使用する場合の様々な方法の詳細は、『Oracle Database管理者ガイド』を参照してください。
また、RMANを使用して、プラットフォーム間でデータベース全体を転送することもできます。たとえば、ビジネス要件によって、別のプラットフォームを使用する、より低コストなサーバー上でデータベースを実行する必要があるとします。この場合、データベースを再作成し、インポート・ユーティリティまたはトランスポータブル表領域を使用してデータを再移入するのではなく、RMANを使用してデータベース全体をトランスポートできます。
宛先ホストまたはソース・ホスト上のデータベースを変換できます。宛先ホストで変換を行う理由は次のとおりです。
-
変換プロセスによるソース・ホストのパフォーマンスのオーバーヘッドを回避する場合。
-
1つのソース・システムから複数の異なるプラットフォーム上の複数の受信者にデータベースを分散する場合。
-
新しいプラットフォームへの移行パスを評価する場合
28.1.2 プラットフォーム間でのデータ・トランスポートの方法
RMANでは、データファイル、表領域またはデータベース全体をプラットフォーム間でトランスポートできます。異なるプラットフォームにデータベース全体をトランスポートする場合、宛先プラットフォームはソース・プラットフォームと同じエンディアン形式を持つ必要があります。
次の方法のいずれかを使用して、プラットフォーム間でデータをトランスポートします。
-
イメージ・コピーを使用したデータのトランスポート
-
バックアップ・セットを使用したデータのトランスポート
28.1.3 クロス・プラットフォーム・データ・トランスポートをサポートするプラットフォーム
Oracle Databaseには、クロス・プラットフォーム・データ・トランスポートをサポートする各プラットフォームの内部的な名前のリストが保持されています。これらの名前は、V$TRANSPORTABLE_PLATFORM
ビューに格納されています。このビューを使用して、ソース・プラットフォームまたは宛先プラットフォームの内部的な名前を特定します。プラットフォーム間のデータのトランスポート時に、ソースまたは宛先プラットフォームの正確な名前を指定する必要がある場合があります。CONVERT
またはBACKUP
コマンドのパラメータとして指定されたプラットフォーム名は、V$TRANSPORTABLE_PLATFORM
ビューに表示されるとおりに正確に入力する必要があります。
次の問合せを使用して、接続したデータベースのプラットフォーム名を取得します。
SELECT PLATFORM_NAME FROM V$TRANSPORTABLE_PLATFORM WHERE PLATFORM_ID = ( SELECT PLATFORM_ID FROM V$DATABASE );
次の問合せを使用して、Linuxプラットフォームの名前を取得します。
SELECT PLATFORM_ID, PLATFORM_NAME, ENDIAN_FORMAT FROM V$TRANSPORTABLE_PLATFORM WHERE UPPER(PLATFORM_NAME) LIKE '%LINUX%';
28.2 イメージ・コピーを使用したクロス・プラットフォーム・データ・トランスポートの概要
RMANでは、イメージ・コピーを使用して表領域、データファイルまたはデータベース全体をトランスポートできます。イメージ・コピーを使用してクロス・プラットフォーム・トランスポートを実行するには、RMAN CONVERT
コマンドを使用します。表領域のトランスポートは、表領域のデータを格納するデータファイルを個別にトランスポートすることによって実行される場合もあります。ただし、複数のデータファイルから構成される表領域の一部である単一のデータファイルをトランスポートすることはできません。
ソース・プラットフォームと転送先プラットフォームが異なり、そのエンディアン形式も異なる場合は、トランスポータブル表領域の操作でRMANのCONVERT
コマンドを使用する必要があります。同じエンディアン形式のプラットフォーム間でデータベースの一部を変換する場合、オペレーティング・システムの方法を使用してソースから宛先にファイルをコピーできます。同じエンディアン形式のデータベース全体を変換する場合、UNDO情報のあるすべてのデータファイルを変換する必要があります。これらのファイルをソースから宛先プラットフォームに直接コピーすることはできません。
28.2.1 イメージ・コピーを使用した表領域およびデータファイルの変換の概要
ソース・ホストではRMANのCONVERT
TABLESPACE
コマンドを使用して表領域の変換を実行できますが、転送先ホストでは実行できません。CONVERT TABLESPACE
コマンドでは、データファイルのインプレース変換は実行されません。かわりに、このコマンドでは、宛先プラットフォームで使用するために適切な形式の出力ファイルが生成されます。このコマンドによってソース・データベース内のデータファイルの内容が変更されることはありません。
CONVERT
DATAFILE
コマンドを使用して、ファイルを変換できます。通常、CONVERT DATAFILE
コマンドは宛先ホストで使用し、CONVERT TABLESPACE
コマンドはソース・ホストで使用します。CONVERT DATAFILE
コマンドをソース・ファイルで使用する場合は、データファイルがオフラインになっているか、それらのデータファイルを含む表領域が読取り専用になっていることを確認します。データ・ポンプ・エクスポート・ユーティリティでは、エクスポート・ダンプ・ファイルが生成され、このファイルは、宛先ホストに手動でコピーされたデータファイルとともに、宛先データベースにインポートできます。データ・ポンプ・エクスポート・ダンプ・ファイルが宛先データベースにインポートされるまで、データファイルはデータベース内の表領域名に関連付けられません。この場合、RMANは、表領域名を一連のデータファイルに変換できません。このため、CONVERT
DATAFILE
を使用して、ファイル名でデータファイルを指定する必要があります。
ノート:
CONVERT TABLESPACE
またはCONVERT DATAFILE
の使用は、クロス・プラットフォーム・トランスポータブル表領域を使用する場合の1つのステップにすぎません。この章の手順を実行する前に、『Oracle Database管理者ガイド』のトランスポータブル表領域に関する項を参照してください。
関連項目:
次の各項では、イメージ・コピーを使用して、表領域およびデータファイルのクロス・プラットフォーム・トランスポートを実行する方法について説明します。
28.2.2 イメージ・コピーを使用したデータベース変換の概要
データベース全体を異なるプラットフォームに変換するには、両方のプラットフォームで同じエンディアン形式が使用されている必要があります。RMANのCONVERT
DATABASE
コマンドを使用すると、ソース・プラットフォームから宛先プラットフォームへのデータベース全体の移動を自動化できます。トランスポートされたデータベースには、ソース・データベースと同じデータおよび(いくつかの例外を除いて)ソース・データベースと同じ設定が含まれています。
宛先プラットフォームに自動的にトランスポートされるファイルを次に示します。
-
永続表領域に属するデータファイル
プラットフォーム間での表領域のトランスポートとは異なり、データベース全体をトランスポートする場合は、宛先プラットフォームとの互換性が維持されるように、特定の形式のブロック(UNDOセグメント内のブロックなど)を再フォーマットする必要があります。ソース・プラットフォームと宛先プラットフォームのエンディアン形式が同じである場合でも、特定のファイル・タイプは変換する必要があります。変換が必要なファイルのタイプの詳細は、「クロス・プラットフォーム・データベース変換の前のデータベースの確認」を参照してください。
-
初期化パラメータ・ファイルまたはサーバー・パラメータ・ファイル
データベースでテキストベースの初期化パラメータ・ファイルが使用されている場合、RMANはそのファイルをトランスポートします。データベースでサーバー・パラメータ・ファイルが使用されている場合、RMANは、そのサーバー・パラメータ・ファイルに基づいて初期化パラメータ・ファイルを生成し、トランスポートします。次に、初期化パラメータ・ファイルの設定に基づいて、宛先で新しいサーバー・パラメータ・ファイルを作成します。
通常、初期化パラメータ・ファイルの一部のパラメータを新しいデータベース用に手動で更新する必要があります。たとえば、
DB_NAME
、および宛先ホスト上のファイルの場所を示すCONTROL_FILES
などのパラメータを変更する場合があります。
ソース・プラットフォームまたは宛先プラットフォームのいずれかのデータファイルの形式を変換できます。CONVERT DATABASE ON DESTINATION PLATFORM
コマンドでは、データファイルの形式は変換されません。 かわりに、変換を実行するために手動で実行できるスクリプトが生成されます。CONVERT SCRIPT
パラメータを指定すると、変換スクリプトが作成されます。このスクリプトを宛先ホストで手動で実行すると、データファイルのコピーをバッチ・モードで変換できます。TRANSPORT SCRIPT
パラメータを指定すると、トランスポート・スクリプトが生成されます。このスクリプトには、宛先プラットフォーム上に新しいデータベースを作成するSQL文が含まれています。
関連項目:
次の情報については、My Oracle SupportのNote 1079563.1、「RMAN DUPLICATE/RESTORE/RECOVER Mixed Platform Support」を参照してください。
-
CONVERT DATABASE
コマンドが不要なプラットフォームの組合せのリスト -
ソース・データベースおよび宛先データベースの前提条件
関連項目:
データ移行タスクの一部としてのクロスプラットフォーム・トランスポータブル表領域およびデータベースのプロシージャの使用方法のベスト・プラクティスについては、http://www.oracle.com/goto/maa
を参照してください。
関連項目:
次の各項では、イメージ・コピーを使用して、データベースのクロス・プラットフォーム・トランスポートを実行する方法について説明します。
28.3 イメージ・コピーによるクロス・プラットフォーム表領域変換の実行
CONVERT
コマンドの前提条件のリストについては、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。この項のステップを実行する前に、この前提条件をすべて満たしている必要があります。
わかりやすくするため、Sun Solarisホスト上で実行されているソース・データベースprod_source
から、表領域finance
およびhr
をトランスポートする必要があると想定します。Linux PC上で実行されている宛先データベースprod_dest
に、これらの表領域をトランスポートすることを計画します。ソース・ホスト上の一時ディレクトリ/tmp/transport_linux/
に、変換済データファイルを格納することを計画しています。
イメージ・コピーによるクロス・プラットフォーム表領域変換を実行するには:
-
SQL*Plusを起動し、管理者権限でソース・データベース
prod_source
に接続します。 -
V$TRANSPORTABLE_PLATFORM
ビューで宛先プラットフォームの名前を問い合せます。PC上のLinuxの
PLATFORM_NAME
は、Linux IA (64-bit)
です。関連項目:
プラットフォーム名の確認については、「クロス・プラットフォーム・データ・トランスポートをサポートするプラットフォーム」を参照してください。
-
DBMS_TTS.TRANSPORT_SET_CHECK
プロシージャを実行して、トランスポートされる表領域が自己完結型であるかどうかを確認します。TRANSPORT_SET_VIOLATIONS
ビューに指定した表領域に対応する行が含まれている場合は、変換を始める前に依存性を解決する必要があります。関連項目:
DBMS_TTS.TRANSPORT_SET_CHECK
プロシージャ実行の詳細は、例21-1を参照してください。 -
トランスポートする表領域を読取り専用モードに設定します。たとえば、次のように入力します。
ALTER TABLESPACE finance READ ONLY; ALTER TABLESPACE hr READ ONLY;
-
出力ファイルの名前を指定する方法を選択します。
-
RMANを起動し、
TARGET
として(宛先データベースではなく)ソース・データベースに接続します。たとえば、次のように入力します。% rman RMAN> CONNECT TARGET "sbu@prod_source AS SYSBACKUP";
-
CONVERT TABLESPACE
コマンドを実行して、データファイルを宛先ホストのエンディアン形式に変換します。次の例で
FORMAT
引数は、変換されたデータファイルの名前および場所を制御しています。RMAN> CONVERT TABLESPACE finance,hr 2> TO PLATFORM 'Linux IA (64-bit)' 3> FORMAT '/tmp/transport_linux/%U';
結果として、
/tmp/transport_linux/
ディレクトリに、Linux IA(64ビット)プラットフォームに適切なエンディアン形式のデータを含む一連の変換済データファイルが格納されます。関連項目:
CONVERT
コマンドの完全なセマンティクスについては、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。 -
表領域をトランスポートする場合の一般的な手順の残りの手順を実行します。
-
Oracle Data Pump Exportユーティリティを使用して、ソース・ホスト上にエクスポート・ダンプ・ファイルを作成します。
-
変換済データファイルおよびエクスポート・ダンプ・ファイルをソース・ホストから宛先ホストの目的のディレクトリに移動します。
-
データ・ポンプ・インポート・ユーティリティを使用して、表領域を新しいデータベースに組み込みます。
-
必要に応じて、トランスポートされた表領域を読取り/書込みモードに設定します。
関連項目:
トランスポータブル表領域の使用方法は、『Oracle Database管理者ガイド』を参照してください。
-
28.4 イメージ・コピーによるクロス・プラットフォーム・データファイル変換の実行
CONVERT
コマンドの前提条件のリストについては、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。この項のステップを実行する前に、この前提条件を満たしている必要があります。
この項では、次の項目について説明します。
28.4.1 RMANクロス・プラットフォーム・データファイル変換時の出力ファイル名の変更について
データファイルの変換では、出力ファイルの名前を指定する方法を選択する必要があります。CONVERT
コマンドにFORMAT
引数またはDB_FILE_NAME_CONVERT
引数を指定して、出力ファイルの名前を指定する方法を制御する必要があります。次に、優先順位の高い順に規則を示します。
-
DB_FILE_NAME_CONVERT
句のパターンに一致するすべてのファイルは、そのパターンに基づいて名前が指定されます。 -
FORMAT
句を指定すると、DB_FILE_NAME_CONVERT
句のパターンに基づいた名前が指定されていないすべてのファイルに対して、FORMAT
パターンに基づいた名前が指定されます。
ノート:
ソース・ファイルおよび宛先ファイルの両方がOracle Managed Filesである場合、DB_FILE_NAME_CONVERT
を使用して、CONVERT
コマンドの出力ファイル名を生成することはできません。
ソース・プラットフォームおよび宛先プラットフォームが異なる場合は、FROM PLATFORM
パラメータを指定する必要があります。V$TRANSPORTABLE_PLATFORM
を問い合せて、プラットフォームの名前を確認します。エラーを回避するには、FROM PLATFORM
の値が、変換するデータファイルの形式と一致している必要があります。FROM PLATFORM
を指定しない場合、このパラメータはデフォルトで宛先プラットフォームの値になります。
関連項目:
プラットフォーム名の確認については、「クロス・プラットフォーム・データ・トランスポートをサポートするプラットフォーム」を参照してください。
28.4.2 RMAN CONVERT DATAFILEを使用した宛先ホストでの表領域トランスポートの実行
この項では、CONVERT DATAFILE
コマンドの使用方法について説明します。この項では、表領域finance
(データファイルfin/fin01.dbf
およびfin/fin02.dbf
)およびhr
(データファイルhr/hr01.dbf
およびhr/hr02.dbf
)を、prod_source
というソース・データベースからトランスポートすると想定します。このデータベースは、Sun Solarisホスト上で実行されています。Linux PC上で実行されているprod_dest
という宛先データベースに、これらの表領域をトランスポートすることを計画します。宛先ホスト上で変換を実行することを計画しています。
データファイルが宛先データベースに組み込まれるとき、これらのデータファイルが/orahome/dbs
に格納され、現行のディレクトリ構造が保持されるように計画します。つまり、hr
表領域のデータファイルは/orahome/dbs/hr
サブディレクトリに、finance
表領域のデータファイルは/orahome/dbs/fin
ディレクトリに格納されます。
イメージ・コピーによるクロス・プラットフォーム・データファイル変換を実行するには:
-
SQL*Plusを起動し、管理者権限でソース・データベース
prod_source
に接続します。 -
V$TRANSPORTABLE_PLATFORM
でソース・プラットフォームの名前を問い合せます。この例では、ソース・ホストの
PLATFORM_NAME
はSolaris[tm] OE (64-bit)
であると想定しています。関連項目:
プラットフォーム名の確認については、「クロス・プラットフォーム・データ・トランスポートをサポートするプラットフォーム」を参照してください。
-
ソース・データベースからトランスポートする表領域を識別し、それらの表領域を読取り専用モードに設定します。
たとえば、
finance
およびhr
を読取り専用モードに設定するには、次のSQL文を入力します。ALTER TABLESPACE finance READ ONLY; ALTER TABLESPACE hr READ ONLY;
-
ソース・ホスト上で、データ・ポンプ・エクスポートを使用してエクスポート・ダンプ・ファイルを作成します。
この例では、ダンプ・ファイルは
expdat.dmp
という名前になります。 -
エクスポート・ダンプ・ファイルおよびトランスポートするデータファイルを宛先ホストで使用可能にします。
NFSを使用して、ダンプ・ファイルおよび現行のデータベース・ファイル(コピーは対象外)をアクセス可能にします。また、オペレーティング・システム・ユーティリティを使用して、これらのファイルを宛先ホストにコピーすることもできます。
この例では、宛先ホストの
/tmp/transport_solaris/
ディレクトリにファイルを格納します。ファイルの元の場所からのサブディレクトリ構造を保持しますが、つまり、データファイルは次の場所に格納されます。-
/tmp/transport_solaris/fin/fin01.dbf
-
/tmp/transport_solaris/fin/fin02.dbf
-
/tmp/transport_solaris/hr/hr01.dbf
-
/tmp/transport_solaris/hr/hr02.dbf
-
-
RMANを起動し、
TARGET
として(ソース・データベースではなく)宛先データベースに接続します。たとえば、次のコマンドは、SYSBACKUP
権限が付与されているsbu
ユーザーを使用して、ターゲット・データベースprod_dest
に接続します。% rman RMAN> CONNECT TARGET "sbu@prod_dest AS SYSBACKUP";
-
CONVERT DATAFILE
コマンドを実行して、データファイルを宛先ホストのエンディアン形式に変換します。次の例では、
DB_FILE_NAME_CONVERT
を使用して、変換済データファイルの名前および場所を制御します。また、FROM
PLATFORM
句も指定します。RMAN> CONVERT DATAFILE 2> '/tmp/transport_solaris/fin/fin01.dbf', 3> '/tmp/transport_solaris/fin/fin02.dbf', 4> '/tmp/transport_solaris/hr/hr01.dbf', 5> '/tmp/transport_solaris/hr/hr02.dbf' 6> DB_FILE_NAME_CONVERT 7> '/tmp/transport_solaris/fin','/orahome/dbs/fin', 8> '/tmp/transport_solaris/hr','/orahome/dbs/hr' 9> FROM PLATFORM 'Solaris[tm] OE (64-bit)';
結果として、
/orahome/dbs/
ディレクトリに一連の変換済データファイルが格納されます。これらのファイルの名前は次のとおりです。-
/orahome/dbs/fin/fin01.dbf
-
/orahome/dbs/fin/fin02.dbf
-
/orahome/dbs/hr/hr01.dbf
-
/orahome/dbs/hr/hr02.dbf
-
-
表領域をトランスポートする場合の一般的な手順の残りの手順を実行します。
-
データ・ポンプ・インポート・ユーティリティを使用して、表領域を新しいデータベースに組み込みます。
-
必要に応じて、トランスポートされた表領域を読取り専用モードに設定します。
-
関連項目:
-
CONVERT
コマンドの構文およびセマンティクスについては、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。 -
トランスポータブル表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。
28.5 イメージ・コピーによるクロス・プラットフォーム・データベース変換の実行
イメージ・コピーによるクロス・プラットフォーム・データベース変換を実行する場合、データファイルをソース・ホストまたは宛先ホストで変換できます。
この項の内容は次のとおりです。
28.5.1 クロス・プラットフォーム・データベース変換の前のデータベースの確認
「イメージ・コピーを使用したクロス・プラットフォーム・データ・トランスポートの概要」で説明されているように、RMANのCONVERT DATABASE
コマンドを使用すると、あるプラットフォームから別のプラットフォームへのデータベース全体のコピーを自動化できます。ソース・プラットフォームまたは宛先プラットフォームで、データベース・データファイルを変換します。
データベースを変換する前に、CONVERT DATABASE
コマンドの前提条件のリストについて『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。この項の手順を試す前に、この前提条件をすべて満たしていることを確認します。
前提条件の1つは、ソース・プラットフォームと宛先プラットフォームのエンディアン形式が同じである必要があるということです。たとえば、Microsoft WindowsからLinux for x86(両方ともリトル・エンディアン)またはHP-UXからAIX(両方ともビッグ・エンディアン)にデータベースをトランスポートすることはできますが、HP-UXからLinux for x86にデータベース全体をトランスポートすることはできません。
ノート:
プラットフォームのエンディアン形式が異なるため、CONVERT DATABASE
コマンドを使用できない場合は、宛先プラットフォーム上に新しいデータベースを作成してから、クロス・プラットフォーム・トランスポータブル表領域を使用してデータをコピーできます。
データベース全体をトランスポートする場合は、宛先プラットフォームとの互換性が維持されるように、特定のファイルをRMANによって変換する必要があることに注意してください。ソース・プラットフォームと宛先プラットフォームのエンディアン形式が同じである場合でも、ソース・システムから宛先システムにこれらのファイルを単純にコピーすることはできません。次のようなファイルは、RMANによって変換する必要があります。
-
UNDOセグメントを含むファイル
-
HP Tru64プラットフォーム内外へトランスポートされる自動セグメント領域管理(ASSM)セグメント・ヘッダーを含むファイル
ノート:
Tru64 UNIXプラットフォームへ、またはTru64 UNIXプラットフォームから変換する場合、データベースで同じエンディアン形式を使用していても、CONVERT
コマンドを使用して、自動セグメント領域管理(ASSM)ヘッダーを含むデータファイルに変換する必要があります。UNDOデータまたはASSMヘッダーを含むデータファイルの特定については、My Oracle SupportのNote 732053.1を参照してください。
CONVERT DATABASE
コマンドは、デフォルトで、データベース内のすべてのデータファイルをRMANによる変換を使用して処理します。RMANによる変換では、ファイルに対して変更を行わない場合でも、ファイルをある場所から別の場所にコピーします。RMANによる変換を必要としないその他の方法でファイルをコピーする場合は、CONVERT DATABASE
コマンドのSKIP UNNECESSARY DATAFILES
オプションを使用します。このオプションを選択した場合は、CONVERT DATABASE
コマンドでは変換が必要なファイルのみが処理されます。その他のすべてのファイルは、ユーザーに対してアクセス可能か、ソース・データベースから宛先データベースにコピーできる必要があります。
データファイル変換の実行場所がソース・ホストまたは宛先ホストのどちらであっても、ソース・データベースが読取り専用モードでオープンされている状態でファイルをコピーする必要があります。
クロス・プラットフォーム変換の前にデータベースを確認するには:
28.5.2 データベースをトランスポートする場合のソース・ホストでのデータファイルの変換
データベース全体をトランスポートする場合は、宛先プラットフォームとの互換性が維持されるように、特定の形式のブロック(UNDOセグメント内のブロックなど)を再フォーマットする必要があります。ソース・プラットフォームと宛先プラットフォームのエンディアン形式が同じである場合でも、特定のデータファイルは変換する必要があり、単に1つのプラットフォームから別のプラットフォームにコピーすることはできません。
UNDO情報のあるデータファイルおよびHP Tru64プラットフォームからのデータファイルは、変換する必要があります。デフォルトでは、CONVERT DATABASE
コマンドが実行されるとすべてのデータファイルが変換されます。ただし、CONVERT DATABASE
コマンドでSKIP UNNECESSARY DATAFILES
を使用した場合は、UNDOセグメントを含むデータファイルおよびHP Tru64プラットフォームからのデータファイルが変換されます。その他すべてのデータファイルは変換の必要はなく、FTP、オペレーティング・システムのコピー・コマンドなどのメカニズムを使用して、新しいデータベースにコピーできます。
この項では、CONVERT DATABASE
のすべての前提条件を満たし、「クロス・プラットフォーム・データベース変換の前のデータベースの確認」のステップを実行済であると想定しています。この手順の目的は、クロス・プラットフォーム・データベース・トランスポートの一部として、ソース・ホスト上のデータファイルの形式を変換することです。
Solaris上で実行されるデータベースをWindows上で実行されるデータベースに変換するとします。
ソース・ホストでデータベースを変換するには:
トランスポート・スクリプトが終了すると、新しいデータベースの作成が完了します。
関連項目:
オペレーティング・システム認証およびパスワード・ファイル認証の詳細は、『Oracle Database管理者ガイド』を参照してください。
28.5.3 データベースをトランスポートする場合の宛先ホストでのデータファイルの変換
この項では、CONVERT DATABASE
コマンドのすべての前提条件を満たし、「クロス・プラットフォーム・データベース変換の前のデータベースの確認」のステップを実行済であると想定しています。この手順の目的は、クロス・プラットフォーム・データベース・トランスポートの一部として、宛先ホスト上のデータファイルの形式を変換することです。
データファイルの変換は、次のフェーズで実行します。
28.5.3.1 ソース・ホストでのデータファイル初期変換ステップの実行
この手順では、ソース・ホスト上でCONVERT DATABASE
コマンドを実行します。このコマンドによって、初期化パラメータ・ファイル、および宛先ホストで使用するために編集可能なスクリプトが生成されます。また、変換前のデータファイルをソース・ホストから宛先ホストにコピーします。
ソース・ホストでデータファイル初期変換ステップを実行するには:
28.5.3.2 宛先ホストでの変換スクリプトの実行
この項では、前の項で作成したスクリプトを使用して、宛先ホストのデータファイルを変換し、トランスポートプロセスを完了する方法について説明します。
前述の項で作成した変換スクリプトでは、ソース・データベース・ファイルの元のデータファイル名を使用します。FORMAT
パラメータによって、CONVERT DATABASE
コマンドのFORMAT
またはDB_FILE_NAME_CONVERT
パラメータを使用して生成される名前を指定します。
同じパス名を使用して宛先ホストからソース・データベースのデータファイルにアクセス可能な場合、変換スクリプトは、ソース・データベースが読取り専用であるかぎり、変更せずに宛先ホストで実行できます。たとえば、ソース・ホストおよび宛先ホストの両方でNFSを使用してソース・データファイルを含むディスクがマウントされており、両方のホストのマウント・ポイントが/fs1/dbs/
である場合、編集は必要ありません。
宛先ホストで変換スクリプトを実行するには:
トランスポート・スクリプトが終了すると、宛先データベースが作成されます。
28.6 バックアップ・セットを使用したクロス・プラットフォーム・データ・トランスポートの概要
RMANでは、バックアップ・セットを使用して、データベース、データファイルおよび表領域をプラットフォーム間でトランスポートできます。バックアップ・セットでクロス・プラットフォーム・データ・トランスポートを実行すると、ブロック圧縮を使用してバックアップのサイズを減らすことができます。これによってバックアップ・パフォーマンスが向上し、ネットワーク経由でのバックアップのトランスポート時間が短縮されます。
ノート:
バックアップ・セットを使用してクロス・プラットフォーム・データ・トランスポートを実行するには、宛先データベースのバージョンがOracle Database 12cリリース1 (12.1)以上である必要があります。
データベース全体を異なるプラットフォームにトランスポートする場合は、ソース・プラットフォームと宛先プラットフォームが同じエンディアン形式を使用している必要があります。ただし、ユーザー表領域については、ソース・プラットフォームとは異なるエンディアン形式を使用する宛先プラットフォームにトランスポートできます。
ソース・データベースで、トランスポートする必要があるデータのクロス・プラットフォーム・バックアップを作成します。クロス・プラットフォーム・バックアップは、ソース・プラットフォームとは異なる宛先プラットフォームにリストアできるRMANバックアップです。宛先データベースで、トランスポートするデータを取得するためにクロス・プラットフォーム・バックアップをリストアしてから、リカバリします。クロス・プラットフォーム・バックアップは、V$TRANSPORTABLE_PLATFORM
ビューでサポートされるどのプラットフォームにもリストアできます。
RMANは、クロス・プラットフォーム・トランスポート用に作成されるバックアップ・セットを、制御ファイルのカタログに追加しません。これによって、クロス・プラットフォーム・トランスポート用に作成されたバックアップ・セットは、通常のリストア操作には使用されません。
バックアップ・セットを使用したクロス・プラットフォーム・バックアップの作成に使用される句について
クロス・プラットフォーム・バックアップを作成するには、BACKUP
コマンドでFOR TRANSPORT
句またはTO PLATFORM
句を使用します。これらのいずれかの句を使用して読取り専用表領域のクロス・プラットフォーム・バックアップを作成する場合、RMANでは、これらの表領域を宛先データベースに組み込むために必要なメタデータを含むデータ・ポンプ・エクスポート・ダンプ・ファイルも作成できます。
TO PLATFORM
句およびFOR TRANSPORT
句はOracle Database 10gリリース2 (10.2)またはOracle Database 11gではサポートされていませんが、これらのバージョンのデータベースからOracle Database 12cリリース1 (12.1)にデータをトランスポートできます。ソース・データベースで、トランスポート対象の表領域のバックアップ・セットを作成してから、expdp
コマンドを使用してデータ・ポンプ・エクスポート・ダンプ・ファイルを作成します。宛先データベースにこれらのバックアップをリストアするには、RESTORE
コマンドを使用してリストア操作を実行し、その後、impdp
コマンドを使用してデータ・ポンプ・エクスポート・ダンプ・ファイルをインポートします。
RMANがデータベースのクロス・プラットフォーム・バックアップを自動作成するシナリオ
データベース全体のバックアップにバックアップ・セットを使用し、次の条件を満たす場合に、RMANは指定されたバックアップに加えて、データベースのクロス・プラットフォーム・バックアップを自動的に作成します。
-
データベース全体をバックアップ・セットとしてトランスポートするための前提条件を満たしている。
-
BACKUP
コマンドに、FOR TRANSPORT
またはTO PLATFORM
句と互換性がない句が含まれていない。関連項目:
互換性のない句の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
次のBACKUP
コマンドは、データベースのクロス・プラットフォーム・バックアップを作成します。このコマンドにはクロス・プラットフォーム・バックアップであることを示すFOR TRANSPORT
またはTO PLATFORM
句が含まれていませんが、「バックアップ・セットを使用したクロス・プラットフォーム・データベース・トランスポートの前提条件」で説明した条件を満たしているため、暗黙的にデータベースのクロス・プラットフォーム・バックアップが作成されます。
RUN { ALLOCATE CHANNEL c1 DEVICE TYPE DISK; ALLOCATE CHANNEL c2 DEVICE TYPE DISK; ALLOCATE CHANNEL c3 DEVICE TYPE DISK; BACKUP SKIP OFFLINE FILESPERSET 1 FORMAT '/tmp/xplat_backups/implicit_full_db_%U' DATABASE;}
バックアップ・セットを使用してプラットフォーム間でデータをトランスポートする高度なステップ
バックアップ・セットを使用したプラットフォーム間のデータのトランスポートでは、次のような高度なステップを行います。
-
ソース・データベースで、
BACKUP
コマンドを使用して、異なるプラットフォームにトランスポートする必要があるデータベース、表領域またはデータファイルのクロス・プラットフォーム・バックアップを作成します。バックアップは、バックアップ・セットとしてソース・ホスト上に作成されます。 -
ソース・ホストで作成されたバックアップ・セットを、宛先ホストに転送します。
オペレーティング・システムのユーティリティを使用してバックアップ・セットをトランスポートできます。たとえば、オペレーティング・システムがLinuxまたはUNIXの場合、
cp
コマンドを使用してバックアップ・セットを転送できます。 -
宛先データベースで、ソース・ホストから転送されたバックアップ・セットをリストアします。
RESTORE
コマンドを使用して、クロス・プラットフォーム・バックアップをリストアします。非一貫性表領域バックアップを使用してプラットフォーム間で表領域をトランスポートしている場合は、「非一貫性バックアップを使用した表領域のクラス・プラットフォーム・トランスポートの実行」に記載されているように、表領域のリカバリに追加のステップが必要です。
バックアップ・セットを使用してプラットフォーム間でデータをトランスポートする方法の詳細、前提条件、および使用するRMAN構文については、次の項で説明しています。
28.6.1 バックアップ・セットを使用したクロス・プラットフォーム・データ・トランスポートで使用される基本的な用語
バックアップ・セットを使用してクロス・プラットフォーム・データ・トランスポートを実行する前に、次の用語を理解しておいてください。
外部データファイル
宛先データベースに属さないデータファイルは、外部データファイルと呼ばれます。これらのデータファイルは、宛先データベースへのデータ転送の一部として宛先データベースに組み込まれます。ソース・データベースでは、このデータファイルは、元のデータファイル番号で識別されます。
外部表領域
外部表領域は、ソース・データベース内の表領域で構成される外部データファイルのセットです。これらの外部データファイルは、宛先データベースに属さず、宛先データベースにトランスポートされ、ソース・データベースでは元の表領域名で識別されます。
外部データファイル・コピー
外部データファイル・コピーは、クロス・プラットフォーム・バックアップからリストアされたデータファイルです。一貫性がないため、宛先データベースに直接組み込むことはできません。このデータファイルを宛先データベースに組み込む前に、データファイルにクロス・プラットフォーム増分バックアップを適用し、リカバリする必要があります。
データ・ポンプの格納場所
データ・ポンプの格納場所は、データ・ポンプ・エクスポート・ダンプ・ファイルおよびデータ・ポンプ・ログ・ファイルが格納される宛先データベースのサーバー・ホストのディスク上の場所です。
28.6.2 クロス・プラットフォーム・データ・トランスポート用のソース・データベースでのデータのバックアップについて
宛先データベースにトランスポートする必要があるデータを含むバックアップ・セットを作成するには、ソース・データベースでBACKUP
コマンドを使用します。クロス・プラットフォーム・バックアップの作成であることを示すために、BACKUP
コマンドに、FOR TRANSPORT
またはTO PLATFORM
句を含める必要があります。
FOR TRANSPORT
を使用すると、作成されるバックアップ・セットを、任意の宛先データベースにトランスポートできます。宛先データベースがソース・データベースとは異なるエンディアン形式を使用している場合、必要なエンディアン形式の変換が宛先データベースで実行されます。この方法の利点は、変換操作の処理オーバーヘッドが宛先データベースにオフロードされることです。
TO PLATFORM
を使用すると、エンディアン形式の変換がソース・データベースで実行されます。TO PLATFORM
句で指定された宛先プラットフォームは、クロス・プラットフォーム・トランスポートでサポートされるプラットフォームである必要があります。V$TRANSPORTABLE_PLATFORM
ビューには、サポートされるプラットフォームのリストが含まれています。
複数のバックアップ・ピースを含むクロス・プラットフォーム・バックアップを作成できます。例については、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
FOR TRANSPORT
またはTO PLATFORM
句を使用してクロス・プラットフォーム・バックアップを作成した場合、BACKUP
コマンドの特定の句は使用できません。TO PLATFORM
およびFOR TRANSPORT
と互換性のない句の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
28.6.3 クロス・プラットフォームの表領域トランスポートで使用されるデータ・ポンプ・エクスポート・ダンプ・ファイルについて
一貫性のある表領域のクロス・プラットフォーム・バックアップを作成する場合、このバックアップ・セットには、指定した表領域に関連するデータを含むデータファイルが含まれます。一貫性表領域バックアップとは、表領域が読取り専用モードであるときに作成される1つ以上の表領域のバックアップです。このバックアップを宛先データベースにリストアした後に、表領域を宛先データベースに組み込む必要があります。これを行うには、表領域データを含むバックアップ・セットに加えて、ソース・データベースのこれらの表領域のメタデータが必要になります。
ソース・データベースで、BACKUP
コマンドのDATAPUMP
句を使用して、表領域をターゲット・データベースに組み込むために必要なメタデータを作成します。メタデータは、データ・ポンプ・エクスポート・ダンプ・ファイルに、別のバックアップ・セットとして格納されます。このバックアップ・セットを使用して、トランスポートした表領域をターゲット・データベースに組み込みます。
DATAPUMP
句でFORMAT
オプションを使用して、表領域メタデータを含むバックアップ・セットの命名形式を指定できます。FORMAT
オプションを省略すると、BACKUP
コマンドで指定した形式でエクスポート・ダンプ・ファイルの名前が付けられます。BACKUP
コマンドでFORMAT
オプションを指定していない場合は、デフォルトの形式が使用されます。
ノート:
DATAPUMP
句を使用する場合、トランスポートされる表領域を読取り専用にする必要があります。
28.6.4 クロス・プラットフォーム・データ・トランスポート時の宛先ホストでのデータのリストアについて
宛先データベースで、RESTORE
コマンドを使用して、バックアップ・セットを構成するクロス・プラットフォーム・バックアップに含まれるデータベース、表領域またはデータファイルをリストアします。クロス・プラットフォーム・リストア操作を実行する場合、RESTORE
コマンドのforeignFileSpec
副次句を使用する必要があります。詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
クロス・プラットフォーム・バックアップをリストアする際に、次の情報を指定する必要があります。
-
ソース・データベースでバックアップされたデータを含むバックアップ・セット
foreignFileSpec
副次句のBACKUPSET
オプションを使用して、データをリストアする必要があるクロス・プラットフォーム・バックアップ・セットの名前を指定します。クロス・プラットフォーム・バックアップが複数のバックアップ・セットで構成される場合、バックアップ・セットごとに個別にBACKUPSET
句を使用します。表領域をリストアするには、BACKUPSET
句を使用した表領域データを含むバックアップ・セットおよびforeignFileSpec
副次句のDUMP FILE
オプションを使用した表領域メタデータを含むバックアップ・セットを指定する必要があります。リカバリ中に複数のバックアップ・セットを使用することはサポートされません。外部データファイルのセットに複数のバックアップ・セットを適用できません。
関連項目:
BACKPSET
およびDUMP FILE
の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。 -
ソース・データベースに存在するとおりのデータファイルの番号または表領域の名前
データファイルまたは表領域をリストアする場合、クロス・プラットフォーム・バックアップに含まれる特定の表領域またはデータファイルをリストアできます。
-
リストアされるデータファイルを格納する場所
FORMAT
句を使用して、リストアされるデータファイルを格納するために使用される場所および名前を指定します。宛先を指定しない場合、ターゲット・プラットフォームで
DB_FILE_CREATE_DEST
初期化パラメータが設定されている必要があります。RMANは、新しいOracle Managed Files (OMF)の名前を使用して、このパラメータによって指定される場所にデータファイルをリストアします。 -
ソース・プラットフォームの名前(変換が宛先データベースで実行される場合のみ)
FROM PLATFORM
を使用して、バックアップ・セットが作成されたソース・プラットフォームの名前を指定します。プラットフォーム名は、バックアップ・セット作成時に指定した名前と、正確に一致する必要があります。プラットフォーム名に違いがある場合、リストア操作は失敗します。
28.6.5 クロス・プラットフォーム・バックアップからリストアされるオブジェクトの選択について
クロス・プラットフォーム・バックアップからデータをリストアする際に、クロス・プラットフォーム・バックアップに含まれるすべてのデータ、または特定のオブジェクトのみをリストアできます。
関連項目:
この項で説明する句の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
クロス・プラットフォーム・バックアップに含まれるすべてのデータのリストア
データベース全体をリストアするには、RESTORE
コマンドでFOREIGN DATABASE
句を使用します。この句は、バックアップ・セット全体をリストアする場合およびソース・プラットフォームと宛先プラットフォームの両方が同じエンディアン形式を使用する場合のみに使用できます。必要に応じて、FORMAT
句を使用して、リストアされるファイルのネーミング・パターンを指定できます。
クロス・プラットフォーム・バックアップに含まれるすべてのデータファイルをリストアするには、RESTORE
コマンドでALL FOREIGN DATAFILES
句を使用します。
クロス・プラットフォーム・バックアップ・セットに含まれる一部のデータのリストア
クロス・プラットフォーム・バックアップに含まれる一部のデータファイルまたは表領域をリストアできます。一部のデータファイルのみをリストアするには、RESTORE
コマンドでFOREIGN DATAFILE
句を使用します。リストア時に、ソース・データベース内のデータファイルの絶対ファイル番号を指定します。クロス・プラットフォーム・バックアップに含まれる一部の表領域のみをリストアするには、RESTORE
コマンドでFOREIGN TABLESPACE
句を使用します。リストアする必要のある表領域の名前を、この句の一部として指定します。
28.6.6 宛先データベースにリストアされるオブジェクトの名前および場所について
クロス・プラットフォーム・バックアップをリストアする場合、RESTORE
で次のオプションのいずれかを使用して、リストアされるデータファイルの名前および場所を指定します。
-
TO NEW
オプションをALL FOREIGN DATAFILES
句とともに使用して、DB_FILE_CREATE_DEST
パラメータで指定した場所にデータファイルをリストアします。デフォルトでは、RMANはデータファイルのOMF名を使用します。 -
FORMAT
オプションを使用して、リストアされるデータファイルのネーミング・パターンを指定します。FORMAT
の指定の一部として、これらのファイルのディレクトリを指定することもできます。
関連項目:
この項で説明する句の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
28.6.7 クロス・プラットフォームの表領域トランスポート時に作成されるデータ・ポンプ・エクスポート・ダンプ・ファイルのインポートについて
宛先データベースに読取り専用表領域のクロス・プラットフォーム・バックアップをリストアする際に、foreignFileSpec
副次句のDUMP FILE ... FROM BACKUPSET
オプションを使用して、データ・ポンプ・エクスポート・ダンプ・ファイルを含むバックアップ・セットをリストアします。エクスポート・ダンプ・ファイルには、表領域を宛先データベースに組み込むために必要なメタデータが含まれます。
RESTORE
コマンドでDATAPUMP
句を使用して、エクスポート・ダンプ・ファイルをリストアする宛先ホスト上の場所を指定します。この句を省略した場合、ダンプ・ファイルはデフォルトのオペレーティング・システム固有の場所にリストアされます。
デフォルトでは、すべての必要な外部データファイルがリストアされた後に、RMANはエクスポート・ダンプ・ファイルを自動的にインポートします。NOIMPORT
句を指定することによって、エクスポート・ダンプ・ファイルをインポートしないことを選択できます。リストア操作の一部としてエクスポート・ダンプ・ファイルをインポートしない場合は、表領域を宛先データベースに組み込む必要があるときに、ダンプ・ファイルを手動でインポートする必要があります。
ノート:
エクスポート・ダンプ・ファイルが自動的にインポートされる場合(つまり、NOIMPORT
句を使用しない場合)、宛先データベースが読取り/書込みモードで開かれている必要があります。
28.7 バックアップ・セットによるクロス・プラットフォーム・データベース・トランスポートの実行
データベース全体をソース・プラットフォームから異なる宛先プラットフォームにトランスポートできます。データベースをトランスポートするためのクロス・プラットフォーム・バックアップの作成時に、ソース・データベースまたは宛先データベース上でデータベースを変換できます。宛先データベースで変換を実行する利点は、変換操作の処理オーバーヘッドをソースから宛先データベースにオフロードできることです。
バックアップ・セットを使用したクロス・プラットフォーム・データベース・トランスポートの前提条件
プラットフォーム間でデータベースをトランスポートするためのクロス・プラットフォーム・バックアップを作成する前に、次の前提条件を満たしている必要があります。
-
ソース・データベースと宛先データベースのサーバー・パラメータ・ファイル内の
COMPATIBLE
パラメータは、12.0.0以上に設定されている必要がある。 -
ソース・データベースが、読取り専用モードで開かれている必要がある。
-
DBMS_TDB.CHECK_DB
プロシージャが正常に実行される必要がある。関連項目:
DBMS_TDB.CHECK_DB
プロシージャの使用の詳細は、「クロス・プラットフォーム・データベース変換の前のデータベースの確認」を参照してください。 -
ソース・プラットフォームと宛先プラットフォームは、同じエンディアン形式を使用する必要がある。
28.8 バックアップ・セットを使用した読取り専用表領域のクロス・プラットフォーム・トランスポートの実行
BACKUP
コマンドをFOR TRANSPORT
またはTO PLATFORM
句とともに使用して、プラットフォーム間での読取り専用表領域のトランスポートに使用できるバックアップ・セットを作成します。読取り専用表領域のトランスポート時には、これらの表領域のメタデータもエクスポートする必要があります。メタデータは、表領域を宛先データベースに組み込むために必要です。表領域をプラットフォーム間でトランスポートする場合は、ソース・プラットフォームと宛先プラットフォームで異なるエンディアン形式を使用できます。
クロス・プラットフォーム・バックアップに含まれるすべてのデータファイルまたは表領域、あるいはその一部のみをリストアできます。これらのオブジェクトをリストアした後に、リストアされたデータファイルの名前および場所を指定できます。
関連項目:
バックアップ・セットを使用してクロス・プラットフォームの表領域トランスポートを実行するための前提条件
異なるプラットフォームへの表領域トランスポートに使用できるクロス・プラットフォーム・バックアップを作成する前に、次の前提条件を満たしている必要があります。
-
ソース・データベースと宛先データベースのサーバー・パラメータ・ファイル内の
COMPATIBLE
パラメータは、12.0.0以上に設定されている。 -
トランスポートする表領域は、自己完結型である。
DBMS_TTS.TRANSPORT_SET_CHECK
プロシージャを実行して、依存性をチェックします。TRANSPORT_SET_VIOLATIONS
ビューに指定した表領域に対応する行が含まれている場合は、クロス・プラットフォーム・バックアップを作成する前に依存性を解決する必要があります。関連項目:
DBMS_TTS.TRANSPORT_SET_CHECK
プロシージャ実行の詳細は、例21-1を参照してください。 -
BACKUP
コマンドでALLOW INCONSISTENT
句を使用しないかぎり、トランスポートされる表領域は読取り専用モードである。
関連項目:
DBMS_TDB.CHECK_DB
プロシージャの使用の詳細は、「バックアップ・セットを使用して異なるプラットフォームに読取り専用表領域をトランスポートするステップ」を参照してください
28.8.1 バックアップ・セットを使用して異なるプラットフォームに読取り専用表領域をトランスポートするステップ
関連項目:
クロス・プラットフォームのバックアップおよびリストア操作の実行例については、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。
28.9 非一貫性バックアップを使用した表領域のクラス・プラットフォーム・トランスポートの概要
RMANでは、非一貫性表領域バックアップをプラットフォーム間でトランスポートできます。非一貫性表領域バックアップとは、表領域が読取り/書込みモードであるときに作成される1つ以上の表領域のバックアップです。非一貫性という語は、バックアップ内のデータファイルに、ファイルのチェックポイント後に行われた変更が含まれていることを示しています。クロス・プラットフォーム非一貫性バックアップ操作中に生成される外部データファイルを、宛先データベースに直接組み込むことはできません。宛先データベースで開く前に、それらを一貫性のある状態にする必要があります。データベースが読取り専用モードのときに作成されたクロス・プラットフォーム増分バックアップをそれらの外部データファイルに適用することで、外部データファイルを一貫性のある状態にします。このバックアップには、トランスポートされた表領域を宛先データベースに組み込むために必要なメタデータを含むエクスポート・ダンプ・ファイルも含む必要があります。
非一貫性表領域バックアップを使用することで、アプリケーション停止時間を短縮できます。この表領域がオンラインでユーザーが使用可能なときに、ソース・データベースでクロス・プラットフォーム非一貫性バックアップを作成します。最初のバックアップは、レベル0増分バックアップである必要があります。その後、最新のレベル1バックアップ以降に表領域に対して行われた変更を含む、小さいレベル1増分バックアップを作成します。ソース・データベース上で他のレベル1増分バックアップが作成されている場合も、これらのレベル0およびレベル1増分バックアップは、宛先データベース上でリストアして適用できます。宛先データベースに以前作成したレベル1バックアップの適用を開始する前に、ソース・データベース上ですべてのレベル1増分バックアップが作成されるのを待つ必要はありません。これらの増分バックアップの作成中も表領域はオンラインのため、この段階でのアプリケーション停止時間はありません。最後のレベル1増分バックアップは、表領域を読取り専用モードにして作成されます。アプリケーション停止時間は、この段階で始まります。この最後の増分バックアップには、表領域を宛先データベースに組み込むために必要なメタデータを含む必要があります。
宛先データベースでは、最初にレベル0の増分バックアップをリストアして、外部データファイルのセットを作成します。次に、表領域が読取り/書込みモードのときに作成されたレベル1増分バックアップを、これらのリストアされた外部データファイルに適用します。作成されたときと同じ順序でこれらのバックアップを適用します。多くの場合、表領域を読取り専用モードにして最後の増分バックアップがソース・データベースで作成される前に、宛先データベースは最後のレベル1増分バックアップにキャッチアップします。最後のステップでは、(表領域が読取り専用モードで作成された)最後のレベル1増分バックアップをリストアして、外部データファイルを一貫性のある状態にします。このバックアップには、表領域を宛先データベースに組み込むために必要な表領域メタデータが含まれます。
28.10 非一貫性バックアップを使用した表領域のクラス・プラットフォーム・トランスポートの実行
バックアップ・セットまたはイメージ・コピーを使用して、非一貫性表領域をプラットフォーム間でトランスポートできます。BACKUP
コマンドを使用して、バックアップ・セットを使用したクロス・プラットフォーム・バックアップを作成します。CONVERT
コマンドを使用すると、イメージ・コピーを使用するクロス・プラットフォーム・バックアップが作成されます。
この項では、非一貫性表領域をプラットフォーム間でトランスポートする方法について説明します。バックアップ・セットを使用して非一貫性表領域をプラットフォーム間でトランスポートする例も示します。
関連項目:
スクリプトを使用してバックアップ・セットを使用したクロス・プラットフォームを実行する方法の詳細は、My Oracle SupportのNote 1389592.1 (https://support.oracle.com/rs?type=doc&id=1389592.1
)を参照してください。
ソース・データベースでの非一貫性および増分バックアップの作成について
BACKUP
またはCONVERT
コマンドでALLOW INCONSISTENT
句を使用して、1つ以上の表領域のクロス・プラットフォーム非一貫性バックアップを作成します。非一貫性バックアップが作成される場合、トランスポートされる表領域は読取り/書込みモードです。増分バックアップを作成するには、BACKUP
コマンドでINCREMENTAL LEVEL 1
句を使用します。
最初の非一貫性バックアップは、レベル0増分バックアップです。その後は、複数のクロス・プラットフォームのレベル1増分バックアップを作成できます。最後のクロス・プラットフォーム増分バックアップは、表領域が読取り専用であるときに作成される一貫性バックアップである必要があります。この最後の増分バックアップの作成時に、BACKUP
コマンドでDUMP FILE
句を使用して、表領域メタデータを含むダンプ・ファイルを作成します。
CONVERT
コマンドを使用する場合は、データ・ポンプ・エクスポート・ユーティリティを使用して、表領域のメタデータを含むエクスポート・ダンプ・ファイルを明示的に作成する必要があります。
ノート:
ALLOW INCONSISTENT
句は、クロス・プラットフォームのデータベース全体のバックアップに対しては使用できません。
関連項目:
SCNの指定の詳細は、「異なるプラットフォームに非一貫性表領域をトランスポートするステップ」を参照してください。
宛先データベースでの非一貫性バックアップのリストアおよびリカバリについて
最初に、表領域が読取り/書込みモードのときに作成されたクロス・プラットフォームのレベル0増分バックアップを宛先データベースにリストアします。この操作では、バックアップをリストアし、外部データファイルのコピーを作成します。バックアップ作成時に表領域が読取り専用にされなかったため、これらの外部データファイルには一貫性がありません。これらの外部データファイルを一貫性のある状態にし、一貫性のあるチェックポイントSCNを実現するには、増分バックアップをその作成順に適用します。適用される最後の増分バックアップは、表領域が読取り専用モードであるときに作成されたクロス・プラットフォーム増分バックアップである必要があります。次に、表領域を宛先データベースに組み込むために、トランスポートされる表領域のメタデータを含むダンプ・ファイルをリストアして、インポートします。
リストアしたデータファイルにクロス・プラットフォーム増分バックアップを適用する場合の要件
クロス・プラットフォーム増分表領域バックアップを、リストアされた外部データファイルのセットに正常に適用するには、次の条件を満たしている必要があります。
-
クロス・プラットフォーム増分バックアップに含まれる各データファイルで、開始SCNが、外部データファイル・コピーの現在のチェックポイントSCNよりも小さい必要があります。
-
リストア操作によって作成される外部データファイル・コピーは、変更しないでください。
たとえば、外部データファイル・コピーが宛先データベースに組み込まれ、読取り/書込みになり、その後、読取り専用になった場合、RMANはそのファイルが変更されたとみなします。
28.10.1 異なるプラットフォームに非一貫性表領域をトランスポートするステップ
この項では、バックアップ・セットまたはイメージ・コピーを使用して非一貫性表領域のクロス・プラットフォーム・トランスポートを実行する高度なステップについて説明します。
バックアップ・セットを使用して非一貫性表領域をトランスポートするための前提条件は、「バックアップ・セットを使用してクロス・プラットフォームの表領域トランスポートを実行するための前提条件」に説明されています。イメージ・コピーを使用して非一貫性表領域をトランスポートするための前提条件は(CONVERT
コマンド)、『Oracle Databaseバックアップおよびリカバリ・リファレンス』に説明されています。
異なるプラットフォームに非一貫性表領域をトランスポートする次のタスクを実行します。
-
「異なるプラットフォームに表領域をトランスポートするために必要なファイルを作成する」の説明に従って、ソース・データベースの1つ以上の表領域をトランスポートするために必要なファイルを作成します
-
「ソース・ホストで作成したファイルを宛先ホストに転送する」の説明に従って、ソース・ホストから宛先ホストにファイルを転送します。
-
「表領域をリストアし、宛先データベースに組み込む」の説明に従って、表領域をリストアし、宛先データベースに組み込みます。
28.10.1.2 ソース・ホストで作成したファイルを宛先ホストに転送する
FTP、オペレーティング・システムのコピー・コマンドまたはその他のいくつかのメカニズムを使用して、ソース・データベースで作成したバックアップ・セット、データファイルおよびダンプ・ファイルを宛先ホストに移動します。
28.10.2 例: バックアップ・セットを使用したクロス・プラットフォーム非一貫性表領域トランスポートの実行
この例では、非一貫性表領域my_tbs
を、ソース・データベース(Sun Solarisプラットフォーム上)から宛先データベース(Linux x86 64ビット・プラットフォーム上)に、トランスポートします。
関連項目:
この例の各ステップの詳細は、「異なるプラットフォームに非一貫性表領域をトランスポートするステップ」を参照してください。
次のステップでは、バックアップ・セットを使用して、非一貫性表領域my_tbs
をプラットフォーム間でトランスポートできます。
28.11 ネットワークを介したデータファイルのクロス・プラットフォーム・トランスポートの実行
RMANでは、ネットワークを介したデータファイルのクロス・プラットフォーム・トランスポートを実行できます。
FROM SERVICE
句とRESTORE FOREIGN DATAFILE
コマンドを組み合せて使用することで実行されます。
tnsnames.ora
およびlistener.ora
ファイルに必要なエントリを追加して、ソース・データベースとターゲット・データベース間に接続を確立する必要があります。ソース・データベースおよびターゲット・データベースのCOMPATIBLE
初期化パラメータは、12.2に設定されている必要があります。
28.12 CDBおよびPDBのクロス・プラットフォーム・データ・トランスポートの実行
RMANは、マルチテナント環境でのプラットフォーム間のデータ・トランスポートをサポートしています。マルチテナント・コンテナ・データベース(CDB)全体、rootのみ、または1つ以上のプラガブル・データベース(PDB)をプラットフォーム間でトランスポートできます。クロス・プラットフォーム・トランスポートは、イメージ・コピーまたはバックアップ・セットを使用して実行できます。この章に示す情報は、以降の項で説明する相違点を除いて、CDBおよびPDBに当てはまります。
この項では、次の項目について説明します。
28.12.1 PDBのクロス・プラットフォーム・トランスポートについて
PDB全体を異なるプラットフォームにトランスポートするには、ソース・プラットフォームと宛先プラットフォームが同じエンディアン形式を使用している必要があります。ソースおよび宛先CDBのCOMPATIBLE
パラメータは、12.1以上に設定する必要があります。
次の方法のいずれかを使用して、PDBをプラットフォーム間でトランスポートします。
-
rootに接続し、
BACKUP FOR TRANSPORT ... PLUGGABLE DATABASE
またはBACKUP TO PLATFORM ... PLUGGABLE DATABASE
コマンドを使用して、1つ以上のPDBのクロス・プラットフォーム・バックアップを作成します。rootに接続しているときに、次のコマンドで、PDB
hr_pdb
およびsales_pdb
のクロス・プラットフォーム・バックアップが作成されます。クロス・プラットフォーム・バックアップを作成する前に、PDBを読取り専用モードにする必要があります。BACKUP FOR TRANSPORT PLUGGABLE DATABASE hr_pdb, sales_pdb FORMAT '/tmp/backups/pdb_%U';
-
PDBに接続し、
BACKUP FOR TRANSPORT
またはBACKUP TO PLATFORM
コマンドを使用して、PDBデータを別のプラットフォームにトランスポートするために使用できるバックアップ・セットを作成します。
ノート:
CONVERT
コマンドを使用して1つ以上のPDBのクロス・プラットフォーム・データ・トランスポートを行うことは、サポートされていません。
関連項目:
28.12.2 CDB全体のクロス・プラットフォーム・トランスポートの実行
CDBでは、プラットフォーム間でデータをトランスポートするためのステップは、非CDBでのステップと同様です。唯一の違いは、ソース・データベースおよび宛先データベースの両方で、共通のSYSBACKUP
またはSYSDBA
権限を持つ共通ユーザーとしてrootに接続する必要があるということです。
CDB全体をトランスポートするには、ソース・プラットフォームと宛先プラットフォームが同じエンディアン形式を使用している必要があります。
BACKUP FOR TRANSPORT
またはBACKUP TO PLATFORM
コマンドを使用すると、CDB全体のクロス・プラットフォーム・バックアップが作成されます。CONVERT
コマンドは、異なるプラットフォームにトランスポートできるCDBのイメージ・コピーを作成します。
rootに接続した場合、次のコマンドを使用すると、CDB全体のクロス・プラットフォーム・バックアップが作成されます。
BACKUP TO PLATFORM 'Linux x86 64-bit' DATABASE FORMAT '/tmp/backups/cdb_%U;
クロス・プラットフォーム・バックアップを宛先データベースにリストアする際に、RESTORE DATABASE
コマンドはCDB全体をリストアします。
関連項目:
28.12.3 クローズ状態のPDBのクロス・プラットフォーム・トランスポートの実行
プラガブル・データベース(PDB)をソース・コンテナ・データベースとは異なるプラットフォーム上の、宛先マルチテナント・コンテナ・データベース(CDB)にトランスポートおよび組み込むことができます。PDBのRMANバックアップに加えて、PDBを宛先CDBに組み込むためのメタデータも必要です。
ソースCDBおよび宛先CDBのCOMPATIBLE
パラメータは、12.2に設定する必要があります。ソースCDBと宛先CDBは、同じエンディアン形式を使用する必要があります。
クローズ状態のPDBを宛先CDBにクロス・プラットフォーム・トランスポートするには:
28.12.4 非一貫性バックアップを使用したPDBのクロス・プラットフォーム・トランスポートの実行
非一貫性バックアップと一貫性バックアップを組み合せて使用して、PDBをトランスポートして、別のプラットフォーム上のCDBに組み込むことができます。非一貫性バックアップを使用することで、バックアップの実行中にPDBをオープンできるため、アプリケーション停止時間を短縮できます。
PDBがオープン状態のときは、クロス・プラットフォーム非一貫性バックアップを作成します。最初のバックアップは、増分レベル0のバックアップです。以降のバックアップは、最後の増分バックアップの後にPDBに加えられた変更が含まれる、増分レベル1のバックアップです。レベル1の非一貫性バックアップ数に制限はありません。最後に、PDBをクローズし、増分レベル1の最後の一貫性バックアップと、ソースPDBを宛先CDBに組み込むために必要なメタデータが含まれるXMLファイルを作成します。
COMPATIBLE
パラメータは、12.2に設定する必要があります。ソースCDBと宛先CDBは、同じエンディアン形式を使用する必要があります。
28.12.5 PDBの表領域のクラス・プラットフォーム・トランスポートの実行
RMANでは、CONVERT
またはBACKUP
コマンドのいずれかを使用することで、PDBに含まれるユーザー表領域を異なるプラットフォームにトランスポートできます。この場合は、ソース・プラットフォームと宛先プラットフォームで、異なるエンディアン形式を使用できます。
次の方法のいずれかを使用して、PDBの表領域をトランスポートします。
-
TARGET
としてPDBに接続し、BACKUP TABLESPACE
コマンドを使用して、選択した表領域のクロス・プラットフォーム・バックアップを作成します。「バックアップ・セットを使用して異なるプラットフォームに読取り専用表領域をトランスポートするステップ」を参照してください。
-
TARGET
としてPDBに接続し、CONVERT TABLESPACE
コマンドを使用して、読取り専用表領域をトランスポートします。PDBへの接続時、次のコマンドは、読取り専用表領域
my_tbs
を変換します。CONVERT TABLESPACE my_tbs TO PLATFORM 'Solaris[tm] OE (64-bit)' FORMAT '/tmp/xplat_backups/my_tbs_%U.bck';
-
TARGET
としてPDBに接続し、CONVERT DATAFILE
コマンドを使用します。PDBへの接続時、次のコマンドは、データファイル
sales.df
を変換します。CONVERT FROM PLATFORM 'Solaris[tm] OE (64-bit)' DATAFILE '/u01/app/oracle/oradata/orcl/sales.df' FORMAT '/tmp/xplat_backups/sales_df_solaris.dat'
ただし、TARGET
としてPDBに接続している場合、CONVERT DATAFILE
コマンドを使用してUNDOセグメントが含まれる表領域を変換することはできません。
関連項目: