35 情報のプロビジョニングの概要
情報をプロビジョニングすることによって、必要なときに必要な場所で情報を使用できるようになります。情報のプロビジョニングは、Oracleグリッド・コンピューティングの一環として行われ、エンタープライズ・コンピューティングのニーズに応えるために、多数のサーバー、記憶領域およびネットワークを柔軟なオンデマンド・コンピューティング・リソースにプーリングします。情報のプロビジョニングでは、情報の統合で使用される多くの機能が使用されます。
次の各項では、情報のプロビジョニングについて説明します。
関連項目:
-
情報の統合の詳細は、『Oracle Database概要』を参照
35.1 情報のプロビジョニングの概要
Oracleグリッド・コンピューティングでは、Oracle Real Application Clusters(Oracle RAC)、Oracle Scheduler、データベース・リソース・マネージャなどの機能を使用してリソースをプロビジョニングできます。Oracle RACを使用すると、物理サーバーのクラスタ上で単一のOracle Databaseサーバーを実行することによって、ハードウェア・リソースをプロビジョニングできます。Oracle Schedulerを使用すると、長期間のデータベースのワークロードをプロビジョニングして、リソースをより効率的に使用できます。データベース・リソース・マネージャは、Oracle Database内のデータベース・ユーザー、アプリケーションまたはサービスに対してリソースをプロビジョニングします。
Oracleグリッド・コンピューティングでは、リソースのプロビジョニングに加えて、情報のプロビジョニングも行うことができます。現在、情報がグリッド上のどの場所にあるかに関係なく、情報のプロビジョニングによって、必要なときに必要な場所に情報が配信されます。分散システムを含むグリッド環境では、必要な場所で情報が使用可能になるように、グリッドによって情報を効率的に移動またはコピーする必要があります。
情報のプロビジョニングは次の形式で実行できます。
-
大量の情報のバルク・プロビジョニング: データ・ポンプ・エクスポート/インポート、トランスポータブル表領域、
DBMS_STREAMS_TABLESPACE_ADM
パッケージおよびDBMS_FILE_TRANSFER
パッケージは、いずれも大量の情報を提供するために使用できます。データ・ポンプ・エクスポート/インポートを使用すると、データベース・レベル、表領域レベル、スキーマ・レベルまたは表レベルで情報を移動またはコピーできます。トランスポータブル表領域を使用すると、データベース間で表領域を効率的に移動またはコピーできます。DBMS_STREAMS_TABLESPACE_ADM
パッケージのプロシージャを使用すると、表領域をクローニング、デタッチおよびアタッチできます。また、このパッケージの一部のプロシージャでは、表領域をバージョニングする表領域リポジトリに表領域を格納できます。表領域が必要になった場合、表領域リポジトリから取リ出してデータベースに割り当てることができます。DBMS_FILE_TRANSFER
パッケージのプロシージャを使用すると、データベース内またはデータベース間でバイナリ・ファイルをコピーできます。 -
Oracle Streamを使用した情報の増分プロビジョニング: 一部のデータは、時々バルク共有を行うのではなく、作成または変更された時点で共有を行う必要があります。Oracle Streamsは、グリッド内のデータベース、ノードまたはブレード・ファーム間のデータをストリーミングして、複数のコピーを更新が行われるたびに同期化できます。
-
オンデマンドでの情報へのアクセス: 情報を新しい場所に移動またはコピーせずに、使用可能にすることができます。Oracleの分散SQLを使用すると、グリッド・ユーザーは、複数のOracle Databaseに格納されたデータ、およびゲートウェイを介してOracle以外のデータベースに格納されたデータにアクセスして、データを統合できます。
このような情報のプロビジョニング機能を個別にまたは組み合せて使用することで、実行している環境で完全な情報のプロビジョニング・ソリューションを使用できます。この章の残りの項では、情報をプロビジョニングする方法の詳細を説明します。
関連項目:
-
Oracle RACの詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照
-
Oracle Schedulerおよびデータベース・リソース・マネージャの詳細は、『Oracle Database管理者ガイド』を参照
35.2 大量の情報のバルク・プロビジョニング
Oracleには、データベース間で大量の情報を効率的に移動またはコピーするためのいくつかの方法があります。データ・ポンプを使用すると、データベース・レベル、表領域レベル、スキーマ・レベルまたは表レベルで大量の情報をエクスポートおよびインポートできます。Oracleのデータベース間で表領域セットを移動またはコピーするには、複数の方法があります。トランスポータブル表領域を使用すると、Oracle Databaseのサブセットを移動またはコピーし、別のOracle Databaseに割り当てることができます。RMANを使用したバックアップからのトランスポータブル表領域を使用すると、表領域をオンラインの状態にしたまま、表領域セットを移動またはコピーできます。DBMS_STREAMS_TABLESPACE_ADM
パッケージのプロシージャを使用すると、表領域セットの移動またはコピーに必要な複数の手順を組み合せて、1つのプロシージャ・コールにできます。
いずれの方法で表領域セットを移動またはコピーする場合も、表領域セットが自己完結型である必要があります。自己完結型の表領域には、その表領域の外部を指す表領域からの参照は含まれません。たとえば、表領域の索引が異なる表領域の表に対する索引である場合、その表領域は自己完結型ではありません。自己完結型の表領域セットには、その表領域セットの内部から表領域セットの外部を指している参照はありません。たとえば、表領域セットにパーティション表が部分的に含まれている場合、その表領域セットは自己完結型ではありません。表領域セットが自己完結型かどうかを判別するには、Oracleが提供するDBMS_TTS
パッケージのTRANSPORT_SET_CHECK
プロシージャを使用します。
次の各項では、大量の情報を移動またはコピーするためのオプションと、各オプションをどのような場合に使用するかについて説明します。
35.2.1 データ・ポンプ・エクスポート/インポート
データ・ポンプ・エクスポート/インポートを使用すると、データベース間でデータを効率的に移動またはコピーできます。データ・ポンプでは、データベース全体、表領域、スキーマまたは表のエクスポート/インポートを実行して、大量または少量のデータを特定の要件に合わせてプロビジョニングできます。データ・ポンプでのエクスポートおよびインポートは、コマンドライン・クライアント(expdp
およびimpdp
)またはDBMS_DATAPUMP
パッケージを使用して実行できます。
トランスポータブル表領域でのエクスポート/インポートは、TRANSPORT_TABLESPACES
パラメータで指定します。トランスポータブル表領域を使用すると、データベースから表領域セットを取り出して別の場所に移動またはコピーし、それらを別のデータベースに割り当てることができます。トランスポートは迅速に行われます。これはメタデータおよびファイルがそのプロセスによって転送されるためです。データのアンロードおよびロードは実行されません。トランスポータブル表領域モードでは、指定された表領域セット内の表(およびそれに依存するオブジェクト)のメタデータのみがソース・データベースでアンロードされ、ターゲット・データベースでロードされます。これによって、表領域のデータファイルをターゲットのOracle Databaseにコピーして、効率的に取り込むことができます。
トランスポートする表領域は、ディクショナリ管理表領域またはローカル管理表領域のいずれかになります。トランスポータブル表領域を使用した表領域の移動またはコピーは、同じデータのエクスポート/インポートまたはアンロード/ロードを使用するより高速で実行されます。トランスポータブル表領域を使用するには、EXP_FULL_DATABASE
およびIMP_FULL_DATABASE
ロールが必要です。転送する表領域は、エクスポート中は読取り専用である必要があります。また、エクスポートでは、並列度を1より大きくすることはできません。
関連項目:
-
データ・ポンプの詳細は、『Oracle Databaseユーティリティ』 を参照してください
-
TRANSPORT_TABLESPACES
オプションを指定したデータ・ポンプの使用方法の詳細は、『Oracle Database管理者ガイド』を参照
35.2.2 RMANを使用したバックアップからのトランスポータブル表領域
Recovery Manager(RMAN)のTRANSPORT
TABLESPACE
コマンドを実行して表領域をコピーすると、転送処理中に表領域を読取り専用モードにする必要はありません。バックアップからRMANのトランスポータブル表領域を実行するには、適切なデータベース・バックアップが使用可能である必要があります。
35.2.3 DBMS_STREAMS_TABLESPACE_ADMプロシージャ
DBMS_STREAMS_TABLESPACE_ADM
パッケージの次のプロシージャを使用して、表領域を移動またはコピーできます。
-
ATTACH_TABLESPACES
:DBMS_STREAMS_TABLESPACE_ADM
パッケージ、データ・ポンプ・エクスポートまたはRMANのTRANSPORT
TABLESPACE
コマンドを使用して以前にエクスポートされた自己完結型の表領域セットを、データ・ポンプを使用してインポートします。 -
CLONE_TABLESPACES
: データ・ポンプ・エクスポートを使用して、自己完結型の表領域セットをクローニングします。表領域セットは、クローニング後にデータベースにアタッチできます。表領域セットは、クローニング元のデータベースに残ります。 -
DETACH_TABLESPACES
: データ・ポンプ・エクスポートを使用して、自己完結型の表領域セットをデタッチします。表領域セットは、デタッチ後にデータベースにアタッチできます。表領域セットは、デタッチ元のデータベースから削除されます。 -
PULL_TABLESPACES
: データ・ポンプ・エクスポート/インポートを使用して、リモート・データベースから自己完結型の表領域セットをコピーし、現行のデータベースにアタッチします。
また、DBMS_STREAMS_TABLESPACE_ADM
パッケージには、ATTACH_SIMPLE_TABLESPACE
、CLONE_SIMPLE_TABLESPACE
、DETACH_SIMPLE_TABLESPACE
およびPULL_SIMPLE_TABLESPACE
プロシージャも含まれています。これらのプロシージャは、表領域セットではなく1つのデータファイルのみを使用する単一の表領域で実行されます。
35.2.3.1 ファイル・グループ・リポジトリ
ファイル・グループに関して、ファイルはハード・ディスクに格納されているファイルを示します。ファイルは、ファイル名、ディレクトリ・オブジェクトおよびファイル・タイプで構成されます。ディレクトリ・オブジェクトは、ファイルがハード・ディスク上で格納されているディレクトリです。バージョンは関連ファイルの集合で、ファイル・グループはバージョンの集合です。
ファイル・グループ・リポジトリは、データベース内のすべてのファイル・グループの集合です。ファイル・グループ・リポジトリには、複数のファイル・グループおよび特定のファイル・グループの複数のバージョンを含めることができます。
たとえば、reports
という名前のファイル・グループに、売上レポートの複数のバージョンを格納できます。レポートは定期的なスケジュールで生成でき、各バージョンにはレポート・ファイルを含めることができます。ファイル・グループ・リポジトリでは、ファイル・グループをsales_reports_v1
、sales_reports_v2
などの名前でバージョニングできます。
ファイル・グループ・リポジトリには、すべてのタイプのファイルを含めることができます。DBMS_FILE_GROUP
パッケージを使用すると、ファイル・グループ・リポジトリを作成および管理できます。
関連項目:
-
DBMS_FILE_GROUP
パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照
35.2.3.2 表領域リポジトリ
表領域リポジトリは、ファイル・グループ・リポジトリ内の表領域セットの集合です。表領域リポジトリはファイル・グループ・リポジトリ上に構築されますが、表領域リポジトリには、データベース間での表領域の移動またはコピーに必要なファイルのみが含まれます。ファイル・グループ・リポジトリには、表領域セットを含む(ただし、これ以外のファイルも含む)バージョニングされたファイルのセットを格納できます。
表領域リポジトリには、異なる表領域セットを格納できます。また、特定の表領域セットの異なるバージョンも格納できます。表領域リポジトリ内の表領域セットのバージョンは、次のファイルで構成されます。
-
表領域セットに対するデータ・ポンプ・エクスポートのダンプ・ファイル
-
エクスポートのデータ・ポンプのログ・ファイル
-
表領域セットを構成するデータファイル
バージョン内のすべてのファイルは、単一のディレクトリまたは複数のディレクトリに格納できます。次のプロシージャを実行すると、表領域リポジトリを使用するかどうかに関係なく、表領域を移動またはコピーできます。
-
ATTACH_TABLESPACES
-
CLONE_TABLESPACES
-
DETACH_TABLESPACES
表領域リポジトリを使用せずにこれらのいずれかのプロシージャを実行した場合、表領域セットを移動またはコピーできますが、表領域リポジトリに格納したり、表領域リポジトリからコピーすることはできません。表領域リポジトリを使用してCLONE_TABLESPACES
またはDETACH_TABLESPACES
プロシージャを実行した場合、表領域セットは1つのバージョンとしてリポジトリに格納されます。表領域リポジトリを使用してATTACH_TABLESPACES
プロシージャを実行した場合、表領域セットの特定のバージョンがリポジトリからコピーされ、データベースにアタッチされます。
35.2.3.2.1 表領域リポジトリを使用する場合
表領域リポジトリは、1つ以上の表領域セットの複数のバージョンを格納する必要がある場合に役立ちます。たとえば、表領域リポジトリを使用すると、次の目標を達成できます。
-
表領域セットに四半期レポートを実行する。バージョニングされた表領域リポジトリに格納するために、四半期ごとに表領域セットをクローニングできます。また、表領域セットの特定のバージョンをリポジトリから要求し、別のデータベースにアタッチしてレポートを実行できます。
-
グリッド環境において、アプリケーションで必要な表領域セットをオンデマンドでアタッチできるようにする。表領域リポジトリには、複数の異なる表領域セットの複数のバージョンを格納できます。各表領域セットは、アプリケーションで異なる目的に使用できます。アプリケーションで特定の表領域セットの特定のバージョンが必要な場合、アプリケーションで表領域リポジトリをスキャンして、正しい表領域セットをデータベースにアタッチできます。
35.2.3.2.2 表領域リポジトリのプロシージャ間の相違点
DBMS_STREAMS_TABLESPACE_ADM
パッケージのfile_group_name
パラメータを含むプロシージャは、表領域セット、表領域セット内のデータファイルおよびエクスポート・ダンプ・ファイルに関して動作が異なります。表35-1に、これらの相違点を示します。
表35-1 表領域リポジトリのプロシージャ
プロシージャ | 表領域セット | データ・ファイル | エクスポート・ダンプ・ファイル |
---|---|---|---|
|
表領域セットはローカル・データベースに追加されます。 |
|
|
|
表領域セットはローカル・データベースに保持されます。 |
データファイルは、現在の場所から |
エクスポート・ダンプ・ファイルは、 |
|
表領域セットはローカル・データベースから削除されます。 |
データファイルは移動またはコピーされません。データファイルは現在の場所に残ります。各データファイルの場所にディレクトリ・オブジェクトが存在し、プロシージャを実行するユーザーがそれらにアクセスできる必要があります。これらのデータファイルは、表領域リポジトリに格納された表領域セットのバージョンに含まれます。 |
エクスポート・ダンプ・ファイルは、 |
35.2.3.2.3 表領域リポジトリへのリモート・アクセス
表領域リポジトリは、表領域を使用するデータベース、またはリモート・データベースに構築できます。表領域リポジトリがリモート・データベースに存在する場合、いずれかのプロシージャの実行時に、プロシージャを実行するユーザーがアクセス可能なデータベース・リンクをrepository_db_link
パラメータに指定する必要があります。
35.2.3.2.4 1つのデータベースでオンラインにできるのは1つの表領域バージョンのみ
表領域リポジトリ内の表領域セットのバージョンは、データベースでオンラインまたはオフラインのいずれかにできます。ATTACH_TABLESPACES
プロシージャを使用して表領域セットのバージョンをデータベースにアタッチした場合、その表領域セットのバージョンはデータベースでオンラインになります。特定の時点のデータベースでオンラインにできるのは、表領域セットの1つのバージョンのみです。ただし、様々なデータベースで表領域セットの同じバージョンまたは異なるバージョンを同時にオンラインにすることができます。この場合、1つのデータベースのみが表領域セットを変更できるようにする必要がある場合があります。
35.2.3.2.5 表領域リポジトリのプロシージャによる自動的なDBMS_FILE_GROUPパッケージの使用
表領域リポジトリはファイル・グループ・リポジトリ上に構築されますが、DBMS_STREAMS_TABLESPACE_ADM
パッケージのいずれかのプロシージャを使用する前にDBMS_FILE_GROUP
パッケージを使用してファイル・グループ・リポジトリを作成する必要はありません。存在しないファイル・グループを指定してCLONE_TABLESPACES
またはDETACH_TABLESPACES
プロシージャを実行した場合、そのファイル・グループが自動的に作成されます。
35.2.3.3 エクスポート中に表領域が読取り専用である必要性
データ・ポンプ・エクスポートを実行するDBMS_STREAMS_TABLESPACE_ADM
パッケージのプロシージャを実行すると、エクスポートするすべての読取り/書込み可能表領域は、読取り専用になります。DBMS_STREAMS_TABLESPACE_ADM
パッケージのプロシージャによって表領域が読取り専用にされた場合、エクスポートの完了後、その表領域は読取り/書込み可能になります。
35.2.3.4 表領域のプラットフォームの自動変換
DBMS_STREAMS_TABLESPACE_ADM
パッケージのいずれかのプロシージャを使用して、異なるプラットフォーム上で実行されているデータベースに表領域を移動またはコピーする際、変換がサポートされている場合は、データファイルを適切なプラットフォームに変換できます。V$TRANSPORTABLE_PLATFORM
動的パフォーマンス・ビューに、クロス・プラットフォームのトランスポータブル表領域をサポートするすべてのプラットフォームのリストが表示されます。
表領域リポジトリを使用すると、プラットフォームの変換は自動的に実行されます(サポートされている場合)。表領域リポジトリを使用しない場合、表領域の変換先または変換元のプラットフォームを指定する必要があります。
関連項目:
-
DBMS_STREAMS_TABLESPACE_ADM
パッケージのプロシージャの使用方法と使用例については、「情報のプロビジョニングの使用」を参照 -
DBMS_STREAMS_TABLESPACE_ADM
パッケージおよびDBMS_FILE_GROUP
パッケージのリファレンス情報は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照
35.2.4 情報のバルク・プロビジョニングのオプション
表35-2に、情報のバルク・プロビジョニングの各オプションを使用する場合を示します。
表35-2 表領域の移動またはコピーのオプション
オプション | このオプションを使用する状況 |
---|---|
データ・ポンプ・エクスポート/インポート |
|
|
|
RMANの |
移動またはコピーする表領域を、操作中にオンライン(書込み可能)のままにする必要がある場合。 |
表領域リポジトリを使用せずに実行する |
|
表領域リポジトリを使用して実行する |
|
35.3 Oracle Streamを使用した情報の増分プロビジョニング
Oracle Streamsは、異なるデータベース内のデータベース・オブジェクトを次の各レベルで共有および保持できます。
-
データベース
-
スキーマ
-
表
-
表サブセット
Oracle Streamsは、複数のデータベースでの共有データベース・オブジェクトの同期化を保持できます。具体的には、Oracle Streamsの取得プロセスまたは同期取得で ソース・データベースの共有データベース・オブジェクトに対する変更を取得し、1つ以上の伝播でその変更を別のデータベースに伝播し、適用プロセスでその変更を共有データベース・オブジェクトに適用します。データベース・オブジェクトが異なるデータベースで共通でない場合、Oracle Streamsでは、プロセスの任意の時点でそれらのオブジェクトを変換できます。つまり、取得中、伝播中または適用中に変更を変換できます。また、Oracle Streamsでは、適用ハンドラを使用した変更の適用中に、変更のカスタム処理を実行できます。データベース・オブジェクトはOracle Database間で共有するか、またはOracle Database Gatewayを使用してOracle DatabaseとOracle以外のデータベース間で共有できます。Oracle Streamsでは、データのレプリケーションに加えて、メッセージ機能、イベントの管理と通知およびデータ・ウェアハウスのロードが提供されます。
Oracle Streamsとバルク・プロビジョニングを組み合せると、単一のプロシージャを実行することによって大量のデータをコピーおよび保持できます。DBMS_STREAMS_ADM
パッケージの次のプロシージャを使用すると、データ・ポンプを使用してデータベース間でデータをコピーし、コピーされたデータを段階的に保持するようにOracle Streamsを構成できます。
-
MAINTAIN_GLOBAL
: 2つのデータベース間でデータベース・レベルの変更をレプリケートするOracle Streams環境が構成されます。 -
MAINTAIN_SCHEMAS
: 2つのデータベース間で、指定されたスキーマに対する変更をレプリケートするOracle Streams環境が構成されます。 -
MAINTAIN_SIMPLE_TTS
: ソース・データベースから宛先データベースに単純な表領域をクローニングし、Oracle Streamsを使用してこの表領域を両方のデータベースで保持します。 -
MAINTAIN_TABLES
: 2つのデータベース間で、指定された表に対する変更をレプリケートするOracle Streams環境が構成されます。 -
MAINTAIN_TTS
: データ・ポンプを使用したトランスポータブル表領域を使用して、ソース・データベースから宛先データベースに表領域セットをクローニングし、Oracle Streamsを使用してこれらの表領域を両方のデータベースで保持します。
また、PRE_INSTANTIATION_SETUP
およびPOST_INSTANTIATION_SETUP
プロシージャでは、2つのデータベース間で、データベース・レベルでの変更、または指定された表領域に対する変更をレプリケートするOracle Streams環境を構成します。これらのプロシージャは一緒に使用する必要があります。また、Oracle Streamsレプリケーションの構成を完了するために、インスタンス化のアクションを手動で実行する必要があります。
これらのプロシージャを使用すると、1つのデータベースからデータをエクスポートして別のデータベースに移動し、移動先のデータベースが異なるプラットフォーム上にある場合は、データを再フォーマットして移動先のデータベースにインポートし、元のデータベースで変更が発生した場合にデータの同期化を開始できます。移動先のデータベースがグリッド上にある場合、1つのコマンドでアプリケーションをグリッドに移行できます。
これらのプロシージャを使用すると、単一ソース・レプリケーション環境においてソース・データベースで発生した変更を保持するか、または双方向レプリケーション環境において両方のデータベースで発生した変更を保持するようにOracle Streamsクライアントを構成できます。データの変更を保持することによって、両方のデータベースでのデータの同期化を保持できます。これらのプロシージャでは、これらのアクションを直接実行するか、またはこれらのアクションを実行する1つ以上のスクリプトを生成できます。
関連項目:
-
DBMS_STREAMS_ADM
パッケージのリファレンス情報は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照 -
DBMS_STREAMS_ADM
パッケージについては、『Oracle Streamsレプリケーション管理者ガイド』を参照
35.4 オンデマンドでの情報へのアクセス
ユーザーおよびアプリケーションは、情報を新しい場所に移動またはコピーしなくても、情報にアクセスできます。分散SQLを使用すると、グリッド・ユーザーは、複数のOracle Databaseに格納されたデータ、およびOracle Database Gatewayを介してOracle以外のデータベースに格納されたデータにアクセスし、データを統合できます。分散SQLを使用した透過的なリモート・データ・アクセスによって、グリッド・ユーザーは、アプリケーションのコードを変更しなくても、他のデータベースに対してアプリケーションを実行できます。複数のデータ・ストアにまたがるデータの統合やトランザクションを管理する一方で、Oracle Databaseによって、最も効率的な方法でデータにアクセスできるように実行計画が最適化されます。
関連項目:
-
分散SQLの詳細は、『Oracle Database管理者ガイド』を参照
-
Oracle Database Gatewayの詳細は、『Oracle Database Heterogeneous Connectivity管理者ガイド』を参照