最適なパフォーマンスと管理性を得るには、トランスポータブル・モジュールを使用して事前処理を設計し、高速レプリケーションおよびエンタープライズ・データのロードを可能にします。この章の内容は次のとおりです。
Oracle Warehouse Builderを使用すると、エンタープライズ・データ・ウェアハウスを段階的に作成および公開できます。パーティション化方針と同様に、細分化方針に従ってデータ・ウェアハウスを作成することで、パフォーマンスと管理性の両方が潜在的に最大化されます。
処理のオーバーヘッドとネットワークの遅延により、データベース・リンクを介してリモート・データにアクセスするWarehouse Builderマッピングは、ローカルでデータにアクセスする場合よりも実行に非常に時間がかかる場合があります。この場合、プロセスを迅速化するために、次の2つのオプションを検討してください。
Warehouse Builderトランスポータブル・モジュールを作成して、ソース・データベースからターゲット・データベースにリモート・オブジェクト(表、ビュー、マテリアライズド・ビューなど)を高速にコピーします。これにより、ターゲット・データ・ウェアハウスのマッピングはローカルでデータにアクセスできます。
ローカル・アクセスのパフォーマンスを活用するために、ソース・データベースでデータの一部を処理した後、トランスポータブル・モジュールを使用して、ソース・データベースからターゲット・データベースに事前処理されたデータをコピーし、最終的にデータ・ウェアハウスにロードします。
どちらの方針でも、トランスポータブル・モジュールは、できるかぎり速くある場所から別の場所に商品のパッケージを移動する出荷サービスと同様に機能します。
注意: トランスポータブル・モジュールを使用するには、Warehouse Builder Enterprise ETLオプションが必要です。 |
トランスポータブル・モジュールの基本的な機能は、可能なかぎり最も速いメカニズムを使用して、あるデータベースから別のデータベースに関連するデータベース・オブジェクトのグループをコピーすることです。
Warehouse Builderデザイナを使用する場合、Warehouse Builderではトランスポータブル・モジュールが作成された後、ソース・データベース・ロケーションおよびターゲット・データベース・ロケーションが指定されます。次に、トランスポータブル・モジュールに含めるデータベース・オブジェクトを選択します。選択したオブジェクトのメタデータがソース・データベースからトランスポータブル・モジュールにインポートされ、Warehouse Builderのデザインタイム・リポジトリに格納されます。データおよびメタデータをソースからターゲットに実際に移動するには、トランスポータブル・モジュールを構成し、ターゲット・ロケーションに配布する必要があります。配布時にデータとメタデータの両方がソース・データベースから抽出され、ターゲット・データベースに作成されます。
現在のリリースでは、データとメタデータの移動の実装は、Oracle Data Pump、トランスポータブル表領域、DBMS_FILE_TRANSFER、バイナリFTP、ローカル・ファイル・コピーおよびWarehouse Builderのコード生成とコード配布の組合せによって行われます。Warehouse Builderユーザーはトランスポータブル・モジュールを構成して、起動される実装テクノロジを指定できます。サーバー・テクノロジの進歩に合わせて、今後のリリースでは高速の実装方法が追加される予定です。
現在のリリースでは、次のソース・オブジェクトをトランスポータブル・モジュールに追加できます。
表領域
スキーマ
表
ビュー
順序
マテリアライズド・ビュー
外部表(データも含む)
PL/SQLファンクション
PL/SQLプロシージャ
PL/SQLパッケージ
オブジェクト・タイプ
可変長配列型
ネストした表のタイプ
将来のテクノロジの進歩により、他のオブジェクト・タイプも使用できるようになります。
トランスポータブル・モジュール・テクノロジにより、企業全体のデータ・ウェアハウスを段階的に構築する新たな可能性が広がり、高パフォーマンスと管理性の向上の可能性が高まります。図23-1に示すように、従来のETLプロセスでは、データベース・リンクを使用した複数のリモート・アクセスによってリモート・データベースからデータが抽出されます。
図23-1 データベース・リンクを使用した複数のリモート・アクセスによるリモート・データベースからのデータの抽出
データベース・リンクを使用したリモート・アクセスでは、シリアル・キューとシリアルDMLおよびネットワークの待機時間により、パフォーマンスが大幅に低下します。同じソース表に複数回アクセスする場合、パフォーマンスの低下により無駄が多くなります。
トランスポータブル・モジュール・テクノロジは、図23-2に示すように機能します。この新しいアーキテクチャでは、マッピングで必要なすべてのソース・オブジェクトがまとめられ、1回の配布でターゲットに移動されます。OWBのTMの配布では、高速のOracle Data Pump、FTPおよびOracle TTSを使用して、高速のトランスポート・パフォーマンスが実現されます。このトランスポートにより、ネットワーク遅延のコストが1回のみ吸収されます。その後、マッピングがデータにローカル・アクセスすることで、パラレル問合せとパラレルDMLが有効になります。同じデータに繰返しアクセスすることで、トランスポータブル・モジュールのパフォーマンス上の利点が増えます。
トランスポータブル・モジュールを使用すると、Warehouse Builderのトランスポータブル・モジュールが配布を完了するには、ソース・データベースを短時間停止するだけで済むので、データ・ウェアハウスのロードが管理しやすくなります。ソース・データベースのユーザーは、データ全体がデータ・ウェアハウスにロードされるのを待機する必要はありません。たとえば、トランスポータブル表領域の実装を使用している場合、Warehouse Builderのトランスポータブル・モジュールでは、20GBの表領域を約5分でコピーできるため、ソース・データベースの停止時間が5分で済みます。
ターゲット・データベースにコピーされるデータは、ソース・データベースに存在したデータのスナップショットです。これにより、データ・バージョニング・メカニズムを作成できます。上級のOracleユーザーは、ソースからリアルタイムの変更を取得するために、トランスポートされたテーブル上にストリームを作成できます。トランスポートされたテーブルを、1つのパーティションとして大きい表に変更することもできます。
最後に、複数の部門が存在するエンタープライズ環境では、図23-2に示すように、ターゲット・データベースは、実際には中間レポートおよび更新の目的を果すオペレーショナル・データ・ストアである場合もありますが、最終的なデータ・ウェアハウスではありません。その後、このターゲットは、データ収集の次の段階へのソースとして機能します。トランスポータブル・モジュール・テクノロジは、データが最終的にデータ・ウェアハウスに収集されるまで繰返し適用できます。
トランスポータブル・モジュールを使用して、データ・マートを公開することもできます。通常、データ・マートは、1つのサブジェクトまたは1つの部門アクセスの大規模なデータ・ウェアハウスの一部です。データ・マートを作成すると、データ・ウェアハウスですでに収集および処理されたものがコピーされることがあります。Warehouse Builderのトランスポータブル・モジュールを作成すると、図23-3に示すように、このタスクを実行できます。この図は、同じトランスポータブル・モジュールを使用して、データ・マートを複数のロケーションに配布できることも示しています。
Warehouse Builderのトランスポータブル・モジュールは、ソース・データベース・オブジェクトのスナップショットを配布するため、配布時間(Warehouse Builderのランタイム配布サービスで追跡されます)は、データ・マートのバージョンとして機能します。
トランスポータブル・モジュールは、Warehouse BuilderのテクノロジとOracleデータベースのテクノロジを利用することで機能します。トランスポータブル・モジュールは、ソース・データベースの各部をターゲット・データベースにレプリケートします。レプリケートできるソース・データベースの各部には、表領域、表、索引、制約およびその他のリレーショナル・オブジェクトがあります。
Oracleデータベースが表領域をレプリケートする方法は、データベースのバージョンによって異なります。2つの8iデータベース間、または2つの9iデータベース間でトランスポートする場合は、Oracleトランスポータブル表領域機能が起動されます。2つのOracle 10gデータベース間でトランスポートする場合は、Oracleデータ・ポンプ機能が起動されます。
10gデータベースとOracleデータ・ポンプの場合、表領域までトランスポートしなくても、表のみをトランスポートできます。たとえば、表が100KBで表領域のサイズが10MBの場合、表全体を配布しなくても表のみを配布できます。また、スキーマ全体をコピーできるのは、データ・ポンプのみです。10gデータベースの場合、「トランスポータブル・モジュールの構成」で説明するように、構成中にデータ・ポンプまたはトランスポータブル表領域を指定します。
トランスポータブル表領域とデータ・ポンプの詳細は、Oracle Database 10gのマニュアルを参照してください。
トランスポータブル・モジュールが導入されるまで、最もスケーラブルなデータ・トランスポート・メカニズムは、生データを含むフラット・ファイルの移動に依存していました。このメカニズムでは、ソース・データベースからファイルにデータをアンロードまたはエクスポートする必要があり、その後で、これらのファイルはターゲット・データベースにロードまたはインポートされていました。トランスポータブル・モジュールは、アンロードおよびリロードの手順を完全にバイパスし、Oracleサーバー・テクノロジのトランスポータブル表領域およびデータ・ポンプにアクセスできるようにします。
高パフォーマンス・データ抽出
トランスポータブル・モジュールにより、リモートでデータにアクセスする際のWarehouse Builderマッピングの使用を少なくすることができます。リモート・マシン上に大量のデータがある場合、トランスポータブル・モジュールを使用して、ソースをOracleターゲット・データベースに簡単にレプリケートできます。これにより、Warehouse Builderマッピングはデータのローカル・コピーに直接アクセスできます。また、ソースがターゲットの一部になったため、ソース・データで直接ETL操作を実行できます。
データマートの配布とアーカイブ
通常、中央のデータ・ウェアハウスがETL処理を実行し、依存データ・マートは読取り専用です。トランスポータブル・モジュールを使用すると、読取り専用データ・マートから複数の部門データベースにコピーできます。このように、中央のデータ・ウェアハウスを使用すると、新しいデータマートを定期的に公開し、古い表領域を削除して新しい表領域をインポートすることで、古いデータマートを置換できます。この迅速な複製と配布により、データマートを公開および配布して、日常の分析操作または業務を実行できます。
ソースのアーカイブ
ソース表領域を読取り専用モードに設定した後、ターゲットにエクスポートできます。すべてのデータファイルがコピーされ、ある時点でソース・データベースの一貫したスナップショットが作成されます。その後、このコピーをアーカイブできます。この方法の利点は、ソース・データベースとターゲット・データベースの両方で、アーカイブされたデータをリストアできる点です。
前提作業
「トランスポート・モジュールの使用に必要なロールと権限」で説明するように、必要なロールと権限を持つユーザーとして、ソース・データベースとターゲット・データベースに接続できることを確認します。
所属する組織がWarehouse Builder Enterprise ETLオプションのライセンスを所有していることを確認します。
Warehouse Builderでトランスポータブル・モジュールを使用する場合は、次の項を参照してください。
データベース管理者への注意: 手順1を実行するには、強力なデータベース・ロールと権限が必要です。手順3を実行するには、スキーマ・パスワードの知識が必要です。プリファレンスに応じて、手順3の実行をWarehouse Builder開発者にも許可するか、データベース管理者のみに制限するかを選択できます。
トランスポータブル・モジュール・ソース・ロケーションを作成する場合、ソース・ロケーション・ユーザーは、ソース・データベースのバージョンに応じて、特定のロールまたは権限(あるいはその両方)を持っている必要があります。
ソース・データベースがOracle Database 10gより前のバージョンの場合、ソース・ロケーション・ユーザーにはSYSDBAロールが必要です。
ソース・データベースがOracle Database 10gの場合、SYSDBAは不要ですが、次のものをソース・ロケーション・ユーザーに割り当てる必要があります。
CONNECTロール
EXP_FULL_DATABASEロール
ALTER TABLESPACE権限
トランスポータブル・モジュール・ターゲット・ロケーションを作成する場合、ターゲット・ロケーション・ユーザーは、ターゲット・データベースのバージョンに応じて、特定のロールまたは権限(あるいはその両方)を持っている必要があります。
ターゲット・データベースがOracle Database 10gより前のバージョンの場合、ターゲット・ロケーション・ユーザーにはSYSDBAロールが必要です。
ターゲット・データベースがOracle Database 10gの場合、SYSDBAロールは不要ですが、次のものをターゲット・ロケーション・ユーザーに割り当てる必要があります。
管理者オプションを持つCONNECTロール
管理者オプションを持つRESOURCEロール
IMP_FULL_DATABASEロール
ALTER TABLESPACE権限
管理者オプションを持つEXECUTE_CATALOG_ROLE
管理者オプションを持つCREATE MATERIALIZED VIEW権限
CREATE ANY DIRECTORY権限
注意: トランスポータブル・モジュールがソース・データベースからオブジェクトを読み取り、ターゲット・データベースでオブジェクトを作成するには、トランスポータブル・モジュール・ソース・ロケーション・ユーザーとターゲット・ロケーション・ユーザーに複数の強力なロールと権限を割り当てる必要があります。本番環境では、DBAは、(Warehouse Builderの「接続エクスプローラ」を使用して)データ・ウェアハウス開発者用のトランスポータブル・モジュール・ソース・ロケーションとターゲット・ロケーションを作成し、パスワードを隠すかどうかを必要に応じて選択できます。 |
DBAがソース・ロケーション・ユーザーにソース・データベースで必要なロールと権限を割り当てるためのSQLスクリプトを次に示します。
grant connect to <TM src location user>;
grant exp_full_database,alter tablespace to <TM src location user>;
DBAがターゲット・ロケーション・ユーザーにターゲット・データベースで必要なロールと権限を割り当てるためのSQLスクリプトを次に示します。
grant connect,resource to <TM tgt location user> with admin option;
grant imp_full_database,alter tablespace to <TM tgt location user>;
grant execute_catalog_role to <TM tgt location user> with admin option;
grant create materialized view to <TM tgt location user> with admin option;
grant create any directory to <TM tgt location user>;
Warehouse Builderでトランスポータブル・モジュールを作成する前に、「接続エクスプローラ」でソース・ロケーションとターゲット・ロケーションを定義します。各トランスポータブル・モジュールのソース・ロケーションとターゲット・ロケーションはそれぞれ1つのみ指定できます。
トランスポータブル・モジュールのロケーションを指定する手順は、次のとおりです。
「接続エクスプローラ」で「ロケーション」ノードを拡張します。
「データベース」ノードを拡張します。
「トランスポータブル・モジュール・ソース・ロケーション」または「トランスポータブル・モジュール・ターゲット・ロケーション」ノードのいずれかを右クリックし、「新規」を選択します。
Warehouse Builderにより、ソースまたはターゲット・ロケーションの接続情報を指定するダイアログが表示されます。
ソースとターゲットのロケーションを定義する手順は同じですが、ターゲットの場合はオプションのFTP接続詳細は指定しません。「トランスポータブル・モジュールのロケーション情報」の指示に従って接続情報を指定し、接続をテストします。
Warehouse Builderでは、最初にこの接続情報を使用して、ソース・マシンからWarehouse Builderリポジトリにトランスポータブル・モジュールのメタデータがインポートされます。次の配布時には、Warehouse Builderではこの接続情報を使用してデータをソースからターゲットに移動します。
名前
ソース・データベースまたはターゲット・データベースのロケーション名。
説明
ロケーションの説明(オプション)。
ユーザー名/パスワード
Warehouse Builderでは、データベース・ユーザー名とパスワードを使用して、トランスポータブル・モジュールに組み込むソース・オブジェクトのメタデータを取得します。また、Warehouse Builderでは、配布時にも、トランスポータブル表領域またはデータ・ポンプ操作を実行するためにこの情報を使用します。
トランスポータブル・モジュールとともに使用するデータベースにアクセスするには、「トランスポータブル・モジュールの使用に必要なロールと権限」で説明するように、ユーザーが必要なデータベース・ロールと権限を持っていることを確認します。
ホスト
データベースが置かれているマシンのホスト名。
ポート
マシンのポート番号。
サービス
マシンのサービス名。
バージョン
リストからOracleデータベースのバージョンを選択します。
FTPユーザー名/パスワード(オプション)
データをトランスポートするメカニズムとしてOracle Transportable Tablespaceを起動する場合、FTP資格証明を指定します。トランスポータブル表領域メカニズムを構成しない場合は、FTP資格証明は不要です。
トランスポータブル表領域を使用するように構成する場合でも、ソース・データベースとターゲット・データベースの両方が同じマシン上にあるか、ソース・マシンとターゲット・マシンの両方が共有ディスク・ボリュームにアクセスできる(NFSによって可能になる場合など)ときには、FTP資格証明を空白にすることができます。Warehouse Builderでは、FTP資格証明がない場合でも、ソース・ディレクトリからターゲット・ディレクトリへのソース・ファイルの単純なコピーが試行されます。
テスト接続
「テスト接続」をクリックして、接続情報を検証します。Warehouse Builderにより、ソース・データベースへの接続、およびソース・マシン上のFTPサービスへの接続(該当する場合)が試行されます。両方の資格証明が検証された後にのみ、Warehouse Builderにより、成功メッセージが表示されます。
ターゲット・データベースにコピーするスキーマ・オブジェクトを選択するには、トランスポータブル・モジュールの作成ウィザードを使用します。
トランスポータブル・モジュールを作成する手順は次のとおりです。
プロジェクト・エクスプローラで、「データベース」ノードを拡張します。
「トランスポータブル・モジュール」ノードを右クリックし、「新規」を選択します。
トランスポータブル・モジュールの作成ウィザードのようこそページが表示されます。
ウィザードは、次の作業を行うために使用します。
名前と説明ページに、トランスポータブル・モジュールの名前と説明(オプション)を入力します。
ウィザード・ページから新しいソース・ロケーションを作成できますが、「トランスポータブル・モジュールのソース・ロケーション情報」で説明するように、ウィザードを起動する前に、トランスポータブル・モジュールのロケーションを定義することをお薦めします。
既存のロケーションを選択すると、ウィザードにより接続がテストされ、有効な接続を持つロケーションを指定するまでウィザードを続行することはできません。
ウィザード・ページの左側にあるリストからターゲット・ロケーションを選択します。ターゲット・ロケーションが表示されない場合は、「トランスポータブル・モジュール・ソースのロケーション情報」で説明されているように、「新規」をクリックしてターゲット・ロケーションを定義します。
内容の定義ページを使用して、トランスポータブル・モジュールに組み込む表領域とスキーマ・オブジェクトを選択します。左パネルの「使用可能なデータベース・オブジェクト」に、すべてのソース表領域、スキーマおよび使用可能なスキーマ・オブジェクトがリストされます。オブジェクトを選択して移動すると、そのオブジェクトが右パネルの「選択されたデータベース・オブジェクト」に表示されます。
表領域を拡張するには、ツリー・ノードをクリックして各表領域内のスキーマと各スキーマ内のオブジェクトを表示します。ビューや順序のような表領域以外のスキーマ・オブジェクトは、表領域に格納されていない場合も、それぞれのスキーマ所有者の下にリストされます。同時に複数のオブジェクトを選択するには、[Ctrl]キーを押しながら選択します。トランスポータブル・モジュールには、次のタイプのオブジェクトを組み込むことができます。
表
ビュー
マテリアライズド・ビュー
順序
外部表
PL/SQLファンクション、プロシージャおよびパッケージ
オブジェクト・タイプ、可変タイプおよびネストした表のタイプ
「使用可能なデータベース・オブジェクト」フィールドで表領域とスキーマ・オブジェクトを選択し、中央の矢印ボタンをクリックして「選択されたデータベース・オブジェクト」フィールドに移動します。
通常、ソース・データベースには複数のスキーマと多数のオブジェクトが含まれているため、オブジェクトの検索と選択に役立つ複数のツールが用意されています。マウスをノードの上に置くと、データファイルの数とその合計サイズが表示されます。図23-4に示すように、ウィザードではポップアップに情報が表示されます。
懐中電灯のアイコンをダブルクリックして、タイプまたは名前によってソース・データ・オブジェクトを検索します。「オブジェクト」フィールドで、検索のフィルタリングに使用する名前または文字を入力します。「タイプ」リストから、検索するオブジェクト・タイプを指定します。名前または説明によって検索を実行するには、該当するチェック・ボックスを選択します。
たとえば、「オブジェクト」フィールドに「T%」と入力し、「タイプ」フィールドから表領域を選択して「次を検索」をクリックします。「使用可能なデータベース・オブジェクト」ナビゲーション・ツリー内のカーソルによって、「T」で始まる最初の表領域の名前が選択されます。この表領域が選択対象の表領域でない場合は、「次を検索」をクリックし、次の表領域を検索します。この検索プロセスで、ナビゲーション・ツリーによってすべてのスキーマ名が展開され、すべての表領域が表示されます。
図23-5に示されているように、スキーマ・ノードまたはスキーマ内のいずれかのノードをダブルクリックして、フィルタ・パターンに入力できます。たとえば、T%を入力して「OK」をクリックした場合、ナビゲーション・ツリーには、文字Tで始まるオブジェクトのみが表示されます。
サマリー情報を確認し、「終了」をクリックして選択した表領域とスキーマ・オブジェクトのメタデータをインポートします。
Warehouse Builderによりリポジトリにトランスポータブル・モジュールが作成されると、それを「プロジェクト・エクスプローラ」の「トランスポータブル・モジュール」ノードの下に配置できます。ツリーを拡張すると、インポートされた定義が表示されます。
Warehouse Builderでは、スキーマごとに個別のモジュールが作成されます。「プロジェクト・エクスプローラ」でのスキーマ名には、ソース・データベースでのスキーマ名が反映されます。
トランスポータブル・モジュールに含まれるオブジェクトはソース・データベースを反映しているため、これらのオブジェクトはこのユーザー・インタフェースを使用して編集できません。ソース・データベースに変更があった場合は、オブジェクトを再インポートできます。トランスポータブル・モジュールからオブジェクトを削除する場合は、そのオブジェクトを右クリックして「削除」を選択します。この操作により、トランスポータブル・モジュールの定義からオブジェクトが削除されますが、基礎となるソース・データベースには影響しません。
「プロジェクト・エクスプローラ」で、トランスポータブル・モジュールを右クリックし、「構成」を選択してターゲット・データベースへの配布用に構成します。構成プロパティを次のレベルで設定します。
ほとんどのユースケースで、すべての構成プロパティのデフォルト設定を受け入れることができますが、「パスワード」設定は例外です。ターゲット・スキーマごとにパスワードを指定する必要があります。ターゲット内にスキーマがすでに存在する場合は、既存のパスワードを指定します。スキーマが存在しない場合は、Warehouse Builderにより指定したパスワードを使用してスキーマが作成されます。
会社のセキュリティ・ポリシーに応じて、スキーマ・パスワードはデータベース管理者のみに通知される可能性があります。その場合、データベース管理者はスキーマごとにパスワードを指定する必要があります。ソース・スキーマと一致する既存のスキーマがターゲットにない場合は、開発者が新しいパスワードを定義することもできます。
トランスポータブル・モジュールの次のランタイム・プロパティを設定します。
ターゲットOSタイプ
ターゲットのオペレーティング・システムのタイプを選択します。Oracle Database 10gより前のバージョンの場合、ターゲット・マシンのオペレーティング・システムのタイプは、ソース・マシンと同じである必要があります。Oracle Database 10g以上のバージョンの場合、すべてのオペレーティング・システム間で配布できます。
作業ディレクトリ
ターゲット・マシン上に、トランスポータブル・モジュールの配布専用のディレクトリを作成する必要があります。この専用ディレクトリには、一時ファイル、スクリプト、ログ・ファイル、トランスポータブル表領域データファイルなど、実行時に生成されたファイルが格納されます。専用ディレクトリを作成せずに、「作業ディレクトリ」としてフルパスを入力すると、生成されたファイルはランタイム・ホーム・ディレクトリの下に保存されます。
配布対象
Warehouse Builderを使用すると、トランスポータブル・モジュール内の表のみを配布するか、ビューや順序など、関連するすべてのカタログ・オブジェクトも配布するかを選択できます。表のみを配布する場合はTABLES_ONLYを選択し、それ以外の場合は ALL_OBJECTSを選択します。
トランスポータブル・モジュール内のデータをリフレッシュするには、TABLES_ONLYオプションを使用します。以前にALL_OBJECTSオプションを使用してトランスポータブル・モジュールを配布し、同じソースからの表領域のみを置換する場合は、TABLES_ONLYオプションを使用してトランスポータブル・モジュールを再配布します。配布によりターゲット内の既存の表領域が削除され、新しい表領域が挿入された後、以前に配布したメタデータが再コンパイルされます。
同様に、以前にデータ・ポンプを使用してトランスポータブル・モジュールを配布した場合は、再配布によりトランスポータブル・モジュール内の表のみが変更されます。
表領域のトランスポート
この設定はデフォルトで有効になっており、Warehouse Builderにより表領域がトランスポートされます。この設定を有効にした場合は、「ターゲット・データファイル構成プロパティ」でも設定を指定します。
ソース・データベースとターゲット・データベースの両方がOracle 10g以上の場合は、この設定を無効にすることを検討してください。たとえば、表が100KBで表領域のサイズが10MBの場合、表領域全体を配布しなくても、表のみを配布できます。「表領域のトランスポート」を無効にすると、Warehouse BuilderではOracle Data Pumpを使用して表が配布され、ユーザーは「表が存在する場合のアクション」を設定できます。
ソース・ロケーションまたはターゲット・ロケーションがOracle Database 10gではない場合、「表領域のトランスポート」オプションがデフォルトで選択されることにも注意してください。その場合は、トランスポータブル表領域が、データを移動するための唯一の実装方法です。ソース・ロケーションとターゲット・ロケーションの両方がOracle Database 10gの場合は、「表領域のトランスポート」の選択を解除できるため、データ・ポンプを使用できます。
「表領域のトランスポート」が選択されている場合は、表23-1で説明するように、ソース・ロケーションとターゲット・ロケーションのバージョンに応じて、さらに制限があります。データ・レプリケーションを計画するときに、これらの制限を考慮してください。通常、Oracle10g、特にOracle10gリリース2は、優先されるターゲット・データベースになります。
表23-1 データベース・バージョン間でデータをレプリケートするための要件
ソース・ロケーション | ターゲット・ロケーション |
---|---|
10g |
別のOracle 10gロケーションをターゲットにするには、両方のデータベースに同じキャラクタ・セットおよび各国語キャラクタ・セットが必要です。 Oracle8iまたは9iロケーションをターゲットにすることはできません。 |
9i |
Oracle9iまたは10gロケーションをターゲットにするには、両方のデータベースに同じキャラクタ・セットおよび各国語キャラクタ・セットが必要であり、両方のデータベースが同じオペレーティング・システム・プラットフォーム上に存在している必要があります。 Oracle8iまたは9iロケーションをターゲットにすることはできません。 |
8i |
Oracle 8i、 9iまたは 10gをターゲットにするには、次のすべてに該当する必要があります。 ソース・データベースとターゲット・データベースの両方に同じキャラクタ・セットが必要です。 ソース・データベースとターゲット・データベースの両方に同じナショナル・キャラクタ・セットが必要です。 ソース・データベースとターゲット・データベースの両方が同じオペレーティング・システム・プラットフォーム上に存在している必要があります。 ソース・データベースとターゲット・データベースの両方に同じブロック・サイズが必要です。 表領域のトランスポート中にスキーマ名を変更することはできません。 表領域のトランスポート中に表領域名を変更することはできません。 |
10g |
別のOracle 10gロケーションをターゲットにするには、両方のデータベースに同じキャラクタ・セットおよび各国語キャラクタ・セットが必要です。 Oracle 8iまたは 9iロケーションをターゲットにすることはできません。 |
トランスポータブル・モジュールの次のスキーマ・プロパティを設定します。
ターゲット・スキーマ名
このプロパティを使用すると、ソース・スキーマをターゲットに配布するときに名前を変更できます。DEFAULTを選択するか、省略記号のボタンをクリックして、ターゲットにスキーマの新しい名前を入力し、「OK」をクリックします。たとえば、SCOTTをSCOTT1に変更できます。
パスワード
既存のスキーマの場合、スキーマの有効なパスワードを入力します。新規に作成されるスキーマの場合、指定したパスワードを使用してWarehouse Builderによりスキーマが作成されます。
デフォルト表領域
Warehouse Builderによりターゲット・スキーマが作成されるときに使用されるデフォルト表領域を指定します。この設定を空白にすると、ターゲットで指定したデフォルトが使用されます。
スキーマが存在する場合のアクション
ターゲットにスキーマがすでに存在する場合、Warehouse Builderで実行する必要があるアクションを指定します。デフォルト値はスキップです。
スキーマが存在しない場合のアクション
ターゲットにスキーマが存在しない場合、Warehouse Builderで実行する必要があるアクションを指定します。デフォルト値は作成です。
表が存在する場合のアクション
「表領域のトランスポート」が無効になっている場合、このプロパティを使用して、ターゲットに表が存在する場合にWarehouse Builderで実行する必要があるアクションを指定します。デフォルト値はスキップです。
ソース・スキーマのコピー
「表領域のトランスポート」の選択を解除して、データ・ポンプを使用する場合、このオプションを選択して、ソース・スキーマ全体をターゲットにコピーできます。
パラレル
「表領域のトランスポート」の選択を解除して、データ・ポンプを使用する場合、Oracleデータベースがデータ転送の実行に使用するプロセスの最大数を指定します。
トランスポータブル・モジュールの次のデータファイル・プロパティを設定する必要があります。
ディレクトリ
ターゲット・マシン上でデータファイルを格納するディレクトリを指定します。ディレクトリを指定しないと、データファイルは「作業ディレクトリ」に格納されます。
ファイル名
ターゲット・マシンで作成されるデータファイルの名前を指定します。このパラメータを使用すると、データファイルの名前を変更できます。DEFAULTを受け入れてソース・データベースからのデータファイル名を保持するか、省略記号のボタンをクリックしてデータファイルの新しい名前を入力し、「OK」をクリックします。
上書き
このパラメータを選択すると、Warehouse Builderにより既存のデータファイルが上書きされます。それ以外の場合、既存のデータファイルが見つかったときに配布が中止されます。
「表領域のトランスポート」を有効にした場合は、トランスポータブル・モジュールの次の表領域プロパティを設定します。
表領域名
10gより前のバージョンのOracleデータベースを使用している場合、ターゲット表領域名はソース表領域名と同じである必要があります。その場合、このフィールドは読取り専用になります。ターゲット・データベースに同じ名前の表領域がすでに存在する場合、ランタイム操作により既存の表領域が削除された後、新しい表領域に置換されます。
Oracleデータベース・バージョン10g以上を使用している場合、ターゲット表領域名を変更できます。
既存の表領域の削除
この設定を選択すると、Warehouse Builderによりターゲット内の既存の表領域が削除された後、再作成されます。デフォルトでは、この設定は選択されていないため、同じ名前の表領域がすでに存在する場合、ターゲット内の表領域を削除することはできません。この場合、配布プロセスはエラーとともに終了します。
トランスポータブル・モジュールを配布するときに、「コントロール・センター」ではトランスポータブル・モジュールがすべての表を含むものとして表示され、ビューなどの他のカタログ・オブジェクトは個別に表示されます。トランスポータブル・モジュールの配布アクションを選択すると、「コントロール・センター」により関連するカタログ・オブジェクトが同じ配布アクションに設定されます。
トランスポータブル・モジュールを配布するときに、配布の進行状況を監視する2つの方法があります。最初の方法では、図23-7に示すように、「ジョブの詳細」ウィンドウを使用します。ステータス行は、最新のステータスでただちにリフレッシュされます。ステータス行のすぐ上のメッセージ・ボックスには、それまでに記録されたすべてのメッセージが表示されます。
進行状況を監視するもう1つの方法は、トランスポータブル・モジュール配布プロセスで生成されるログ・ファイルを監視することです。トランスポータブル・モジュール・ログ・ファイルは、ユーザーが構成した「作業ディレクトリ」に作成されます。ファイル名は常に<The TM Name>.logです。たとえば、トランスポータブル・モジュールの名前がTM1の場合はTM1.logになります。このファイルは、「ジョブの詳細」ウィンドウのメッセージ・ボックスに表示されるものと同じメッセージを含む、プレーン・テキスト・ファイルです。例23-1は、トランスポータブル・モジュール・ログ・ファイルの内容を示しています。
現在、合計16の手順があります。ユーザー構成に応じて、スキップされる手順もあれば、参照表でエラーが見つからないために参照制約を作成できないなど、トランスポータブル・モジュールが無視できるとみなしたエラー・メッセージを含む手順もあります。このログ・ファイルには、重要な情報が含まれています。トランスポータブル・モジュールの配布中および配布の終了後に、慎重に調べる必要があります。
例23-1 重要な情報を含むログ・ファイル
step1 begin: making connection to target db ... step1 end: connected to target Target ORACLE_HOME = /data/oracle/ora1010 step2 begin: making connection to source db... step2 end: skipped. step3 begin: making source tablespaces read only... step3 end: skipped. step4 begin: exporting tts... step4 end: skipped. step 5 begin: checking for existing datafiles on target... step5 end: skipped. step 6 begin: drop existing tablespaces step6 end: skipped. step7 begin: transporting datafiles... step7 end: skipped. step8 begin: managing schemas/users ... step8 end: completed setting up target schemas step9 begin: drop non-table schema objects... step9 end: nothing to drop. step10 begin: converting datafiles... step10 end: skipped. step 11 begin: importing tts ... find or create a useable dblink to source. step11 end: importing tts is not requested by user. step 11 end: import tts is successful step 12 begin: restore source tablespaces original status ... step12 end: skipped. step13 end: skipped. step14 begin: non-tts import ... Import: Release 10.1.0.4.0 - Production on Tuesday, 04 April, 2006 10:43 Copyright (c) 2003, Oracle. All rights reserved. Username: Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - Production With the Partitioning, OLAP and Data Mining options Starting "TMTGT_U"."SYS_IMPORT_TABLE_02": TMTGTU/********@(DESCRIPTION=(ADDRESS=(HOST=LOCALHOST)(PROTOCOL=tcp)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=ORA1010.US.ORACLE.COM))) parfile=/home/ygong/tmdir/TM1_imptts.par Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATA Total estimation using BLOCKS method: 64 KB Processing object type TABLE_EXPORT/TABLE/TABLE . . imported "TMU1"."TA" 2 rows Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT ORA-39083: Object type REF_CONSTRAINT failed to create with error: ORA-00942: table or view does not exist Failing sql is: ALTER TABLE "TMU1"."TA" ADD CONSTRAINT "TA_T1_FK" FOREIGN KEY ("C") REFERENCES "TMU1"."T1" ("C") ENABLE Job "TMTGT_U"."SYS_IMPORT_TABLE_02" completed with 1 error(s) at 10:44 step14: import has failures. step14 end: non-tts import completed with warnings step15 end: create flat file directories skipped. step16 end: transporting flat files skipped.
トランスポータブル・モジュールの配布に成功すると、ETL設計でトランスポータブル・モジュール内のオブジェクトを使用できます。「リポジトリ・オブジェクトにバインドする演算子の追加」で説明するように、ソース演算子とターゲット演算子をマッピングに追加すると、トランスポータブル・モジュール・フォルダからオブジェクトを選択できます。
トランスポータブル・モジュールは、Warehouse Builderのプロジェクト・エクスプローラの「データベース」ノード内にある「トランスポータブル・モジュール」ノードの下にあります。
Warehouse Builderの「プロジェクト・エクスプローラ」からトランスポータブル・モジュールの名前を右クリックし、ポップアップ・メニューから「エディタを開く」を選択することで、トランスポータブル・モジュールを編集できます。Warehouse Builderにより、4つのタブを含む「トランスポータブル・モジュールの編集」ダイアログが表示されます。
Warehouse Builderでは、この接続情報を使用してソース・マシンにアクセスし、メタデータをリポジトリにインポートします。また、この情報は、実行時にソースからターゲットに表領域データを移動する際にもWarehouse Builderで使用されます。
「ソース・データベース」タブは読取り専用です。ソース・マシンから表領域定義をインポートすると、ロケーション情報は変更できません。
「表領域」タブには、トランスポート対象の表領域とそのサイズが表示されます。このタブは読取り専用です。表領域内の各データファイルの表領域サイズも表示できます。詳細は、「表領域プロパティの表示」を参照してください。
使用可能なターゲット・ロケーションおよび選択されたターゲット・ロケーションを表示します。「使用可能なロケーション」から「選択されたロケーション」にロケーションを移動したり、新しいロケーションを構成できます。
表領域のプロパティを表示するには、Warehouse Builderの「プロジェクト・エクスプローラ」で表領域名を右クリックし、ポップアップ・メニューから「エディタを開く」を選択します。Warehouse Builderの「表領域の編集」が開きます。このプロパティ・シートには、表領域内の各データファイルのサイズが表示されます。
Warehouse Builderで最後にトランスポータブル・モジュールを作成した後でソース・データに変更があった場合は、メタデータを再インポートしてリポジトリ定義を更新できます。「再インポート」ダイアログを開くと、トランスポータブル・モジュールの作成時に指定したソース・ロケーションがWarehouse Builderにより記憶され、ソース・オブジェクトが直接表示されます。
トランスポータブル・モジュール定義を再インポートする手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラで、トランスポータブル・モジュール名を右クリックして「再インポート」を選択します。
「トランスポータブル・モジュールの再作成」ダイアログが表示されます。
「使用可能なデータベース・オブジェクト」列から、再インポートするオブジェクトを選択します。
以前にリポジトリにインポートしたデータベース・オブジェクトは、太字でリストされます。新規の定義をインポートするように選択することもできます。
矢印ボタンを使用してオブジェクトを「選択されたデータベース・オブジェクト」列に移動し、「OK」をクリックします。
Warehouse Builderにより、既存の定義が再インポートされ、新規の定義が作成されます。「トランスポータブル・モジュール」には、再インポートの完了後に変更内容と更新内容が反映されます。