1 XStreamの概要

XStreamは、卓越したパフォーマンスおよびユーザビリティで情報共有を可能にします。

1.1 XStreamについて

XStreamは、クライアント・アプリケーションがOracleデータベースからのデータ変更を受信して、Oracleデータベースにデータ変更を送信できるようにするOracle Databaseコンポーネントおよびアプリケーション・プログラミング・インタフェース(API)で構成されています。

これらのデータ変更は、Oracleデータベースと他のシステムで共有できます。他のシステムとは、Oracle以外のデータベース、非RDBMS Oracle製品、ファイルシステム、サード・パーティのソフトウェア・アプリケーションなどです。クライアント・アプリケーションは、固有の目的やユースケース向けにユーザーが設計します。

XStreamは、XStream OutおよびXStream Inの2つの主要な機能で構成されています。XStream Outには、Oracleデータベースでのデータ変更を他のシステムと共有可能にするOracle DatabaseコンポーネントおよびAPIがあります。XStream Outは、次の図に示すように、データ操作言語(DML)およびデータ定義言語(DDL)の変更をREDOログから取得し、APIを使用するクライアント・アプリケーションにこれらの変更を送信できます。

XStream Inには、他のシステムでのデータ変更をOracleデータベースと共有可能にするOracle DatabaseコンポーネントおよびAPIがあります。XStream Inでは、次の図に示すように、これらの変更をOracleデータベース内のデータベース・オブジェクトに適用できます。

XStreamは、Oracleデータベースの取得および適用機能を使用します。これらの機能によってXStreamの次の機能が有効になります。

  • データベース変更をストリームするための論理変更レコード(LCR)形式

    LCRは、データベース変更を説明する特定の形式のメッセージです。変更がデータ操作言語(DML)操作だった場合は、行LCRにより、DML操作の結果として発生した行変更がそれぞれカプセル化されます。1つのDML操作によって複数の行変更が発生する場合があるため、1つのDML操作によって複数の行LCRが発生することがあります。変更がデータ定義言語(DDL)操作だった場合、1つのDDL LCRがDDL変更をカプセル化します。

  • 包含ルールや除外ルールなどの動作を制御するルールおよびルール・セット

    ルールは、データベース・レベル、スキーマ・レベル、表レベル、および行/列レベルでのデータベース変更のフィルタリングを可能にします。

  • 取得されたデータ変更を変更するルールベースの変換

  • LOB、LONGLONG RAWXMLTypeなどのデータベース内のほとんどのデータ型をサポート

  • 1つのデータベース・インスタンスへの複数のインバウンド・ストリーム、1つのデータベース・インスタンスから複数のアウトバウンド・ストリーム、1つの取得プロセスから複数のアウトバウンド・ストリームなどのカスタマイズされた構成

  • 最適なパフォーマンスのための並列性の適用、SQL生成、競合の検出と解消、エラー処理、適用ハンドラの使用によるカスタマイズされた適用などのXStream Inに対するあらゆる機能の適用

ノート:

XStream OutおよびXStream Inのいずれの構成においても、クライアント・アプリケーションは専用サーバー接続を使用する必要があります。

1.2 XStreamの目的

一部のお客様(特に独立系ソフトウェア・ベンダー(ISV)やパートナなど)は、ファイルレベルのレプリケーションや中間層のキャッシュ、あるいはOracleとOracle以外のデータ・ストア間のレプリケーションをサポートするために、独自の情報共有製品のプラットフォームとしてOracleデータベースにアクセスできる必要があります。XStreamは、Oracleデータベース内で行われた変更に対する高速かつリアルタイムなアクセスをお客様に提供します。

XStreamは、クライアント・アプリケーションがOracleデータベースに接続してデータベースの取得または適用プロセスに直接連結することを可能にするプログラム・インタフェースです。クライアント・アプリケーションは、Oracleデータベースからの変更のストリームに直接アクセスするXStreamアウトバウンド・サーバーに連結することで、高パフォーマンスの取得メカニズムを利用できます。XStream Outはコミットされたトランザクション順に論理変更レコード(LCR)をクライアント・アプリケーションにストリームします。

Oracleデータベースに変更を適用するために、クライアント・アプリケーションはXStreamインバウンド・サーバーに直接連結できます。このアプリケーションはトランザクション順でインバウンド・サーバーにLCRを提供するため、Oracleデータベースに変更を適用する高パフォーマンスのデータベース適用エンジンを利用できます。

1.3 XStreamのユースケース

XStreamには、一般的ないくつかの使用例があります。

XStreamは、Oracleデータ・ソースとOracle以外のデータ・ソースの間で情報を共有するための柔軟なインフラストラクチャを提供します。XStreamを使用して、様々な組織のデータおよび情報共有のニーズを満たすことができます。

この項に記載されているXStreamのユースケースには次の3つの主要な要素が含まれています。

  • XStream OutとXStream Inの両方に適用されるユースケースの一般的な説明

  • XStream Outに固有のシナリオ

  • XStream Inに固有のシナリオ

XStream Outの各ユースケースでは、次のコンポーネントおよびアクションによってOracle Databaseの変更がクライアント・アプリケーションに送信されます。

  • 取得プロセスは、Oracleデータベースに加えられたデータ変更を取得します。

  • XStream Outはこれらの変更を、論理変更レコード(LCR)の形式でアウトバウンド・サーバーに送信します。

  • アウトバウンド・サーバーは、LCRをクライアント・アプリケーションに送信します。

クライアント・アプリケーションがLCRを処理する方法はユースケースによって異なります。

XStream Inの各ユースケースでは、次のコンポーネントおよびアクションによってOracle Databaseの変更がインバウンド・サーバーに送信されます。

  • クライアント・アプリケーションは外部データ・ソースからデータ変更を収集し、LCR形式でインバウンド・サーバーに送信します。

  • インバウンド・サーバーはクライアント・アプリケーションからのLCRを受信します。

  • インバウンド・サーバーは、Oracleデータベース内のデータベース・オブジェクトにデータ変更を適用できます。インバウンド・サーバーはカスタマイズされた方法でLCRを処理することもできます。

クライアント・アプリケーションがデータ変更を収集する方法はユースケースによって異なります。

1.3.1 Oracle以外のデータベースを使用したデータ変更のレプリケート

レプリケーションは通常、ネットワーク負荷を複数の領域とサーバーに分散させることによって、可用性を高めてパフォーマンスを向上させるために使用されます。

XStreamでは、Oracleデータベースに加えたデータ変更を、他のOracleデータベースおよびOracle以外のデータ・ソースでレプリケートできます。

XStreamを使用して、異機種間レプリケーション環境を構成できます。レプリケーションは通常、ネットワーク負荷を複数の領域とサーバーに分散させることによって、可用性を高めてパフォーマンスを向上させるために使用されます。異機種間レプリケーション環境では、データは異なるベンダーのデータベース間でレプリケートされます。

XStream OutはOracleデータベースに加えたデータ変更をOracle以外のデータベースに送信できます。具体的には、クライアント・アプリケーションはアウトバウンド・サーバーに接続し、Oracleデータベース内の表に対して行われた変更を受信します。次にクライアント・アプリケーションはLCR内のデータ変更をOracle以外のデータベースに適用します。LCRを適用する前に、クライアント・アプリケーションはカスタマイズされた方法でLCRを処理できます。

XStream Inは、Oracle以外のデータベースに加えられたデータ変更を受信できます。具体的には、クライアント・アプリケーションはOracle以外のデータベースに加えられたデータ変更を収集し、これらの変更をLCR形式にフォーマットし、これらのLCRをインバウンド・サーバーに送信します。インバウンド・サーバーは、LCR内の変更をOracleデータベースに適用します。

ノート:

Oracle GoldenGateはOracleデータベースとOracle以外のデータベースの間でデータをレプリケートするための包括的なソリューションです。詳細は、Oracle GoldenGateのドキュメントを参照してください。

1.3.2 ファイルを使用したデータ変更の保存

環境によってはファイルを使用してデータ変更を保存します。

通常、ファイルは次の理由によりデータ変更を保存します。

  • 物理ネットワークが存在しない、または物理ネットワークが制限されている環境でデータ変更を処理する場合。たとえば、セキュリティ上の理由で物理ネットワークを持たないロケーションもあります。

  • 切り離されたコンピューティングを使用する環境でデータ変更を処理する場合。たとえば営業担当員は、ネットワーク接続がない様々な場所でラップトップから注文を入力し、ネットワーク経由で1日1回プライマリ・データベースを更新します。

  • 衛星通信を使用する環境でデータ変更を処理する場合。この場合、ファイルの一括転送の方がネットワークを介した増分変更よりも効率的です。

    XStream Outはファイル・システム内のファイルにOracle Databaseの変更を送信できます。具体的には、クライアント・アプリケーションがLCR内のデータ変更をファイルに書き込みます。クライアント・アプリケーションはLCRをファイルに書き込む前に、カスタマイズされた方法でLCRを処理でき、ファイルはクライアント・アプリケーションを実行するコンピュータ・システム上または異なるコンピュータ・システム上に配置できます。SQL生成を使用することによって、クライアント・アプリケーションは行LCRにカプセル化された変更を実行するために必要なSQL文をファイルに記述することもできます。

    XStream Inは、ファイルからOracleデータベースにデータ変更を送信できます。具体的には、クライアント・アプリケーションはファイルからデータ変更を読み取り、変更をLCR形式でインバウンド・サーバーに送信します。

    関連項目:

    XStreamとSQL生成

1.3.2.1 ファイルを使用してデータベース変更をレプリケートするXStreamのデモ

XStream APIを使用してファイルベースのレプリケーションを実行するサンプル・クライアント・アプリケーションを作成するデモを利用できます。

具体的には、デモによって1つのデータベース上で、データベース変更を取得してLCRをアウトバウンド・サーバーに送信するXStream Out構成が作成されます。クライアント・アプリケーションがアウトバウンド・サーバーに連結し、データベース変更をファイルに書き込みます。

別のデータベースでは、デモによって、インバウンド・サーバーに連結するXStream Inクライアント・アプリケーションが作成され、ファイル内の変更が読み取られ、変更内容がLCR形式でインバウンド・サーバーに送信されます。インバウンド・サーバーは、宛先データベース上のデータベース・オブジェクトに変更を適用します。

このデモは、次の場所にあります。

$ORACLE_HOME/rdbms/demo/xstream/fbr

1.3.3 クライアント側のメモリー・キャッシュを使用したデータ変更の共有

環境によってはパフォーマンスを向上させるためにメモリー内にデータをキャッシュします。

キャッシュされたデータは、実現可能な最高のパフォーマンスを必要とするシステムで、短いレスポンス時間と高いスループットを実現できます。XStreamは、クライアント側のメモリー・キャッシュを使用して、データ変更を増分的に共有できます。

XStream Outはメモリー・キャッシュにOracleデータベースの変更を送信することによって、クライアント側のメモリー・キャッシュを増分的にリフレッシュできます。具体的には、クライアント・アプリケーションはLCR内のデータ変更をメモリー・キャッシュに適用します。クライアント・アプリケーションはそれらを適用する前に、カスタマイズされた方法でLCRを処理でき、メモリー・キャッシュはクライアント・アプリケーションを実行するコンピュータ・システム上または異なるコンピュータ・システム上に配置できます。

XStream Inではメモリー・キャッシュからデータ変更を増分的に取り出すことができます。具体的には、クライアント・アプリケーションはデータ変更を取得し、変更をLCR形式でインバウンド・サーバーに送信します。メモリー・キャッシュはクライアント・アプリケーションを実行するコンピュータ・システム上または異なるコンピュータ・システム上に配置できます。

1.4 XStreamの前提条件

XStreamを使用する前に満たすべき前提条件があります。

このドキュメントでは、ユーザーに次のスキルがあることを前提としています。

  • リレーショナル・データベースの概念およびOracle Databaseの概念に関する知識

    XStreamには、Oracleデータベース内で実行されるコンポーネントが含まれています。XStreamを正しく使用するには、Oracle Databaseを管理できる必要があります。

    関連項目:

    このトピックの詳細は、Oracle Database概要を参照

  • 分散データベースの知識

    XStream環境には、OracleデータベースやOracle以外のデータ・ソースなどの複数のデータ・ソースを含めることができます。XStreamを使用する前に、分散データベースの概念を理解する必要があります。

    関連項目:

    このトピックの詳細は、Oracle Database管理者ガイドを参照

  • SQLおよびPL/SQLの知識

    OracleデータベースとOracleデータベースで実行されているXStreamコンポーネントを管理するには、SQLおよびPL/SQLの使用方法を理解している必要があります。

  • アプリケーション・プログラミングの知識

    XStream Outは、処理の目的でデータ変更をクライアント・アプリケーションに送信します。XStream Inは、クライアント・アプリケーションからデータ変更を受け取ります。Oracle Call Interface (OCI) APIまたはJava APIを使用して、XStreamと通信するクライアント・アプリケーションを作成します。

ノート:

XStream APIを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。詳細は、Oracle GoldenGateのドキュメントを参照してください。

1.5 XStreamのセキュリティ・モデル

XStreamを使用して、組織の要件に最適なセキュリティ・モデルを実装できます。

XStreamでは、2種類のセキュリティ・モードがサポートされます。

  • XStreamの信頼できるユーザー・モデル

    信頼できるユーザー・モデルで構成されたXStream管理者は、すべてのXStream構成を管理でき、信頼されない管理者よりも多くのデータベース権限があり、DBA_ビューを使用してXStreamを監視できます。

    信頼できるユーザー・モデルは信頼されないユーザー・モデルよりも実装が簡単で、特に複数のXStream構成を持つ環境で容易に実装できます。

  • XStreamの信頼されないユーザー・モデル

    信頼されないユーザー・モデル(最小権限モデルとも呼ばれます)で構成されたXStream管理者は、信頼されないユーザー管理者が所有するXStream構成のみを管理できます。このモデルは、XStream環境の別々のリソースにアクセスするために別々の信頼されないユーザー管理者をユーザーが指定できるため、ファイングレイン管理セキュリティを提供します。XStreamの信頼されないユーザーを1人以上構成できます。また、これらの各ユーザーは、割り当てられたタスクに必要な最低限の権限のみ所有します。この方法により、特定のXStreamリソースへのアクセスおよび権限を分離する機能が提供されます。信頼されない管理者は、ALL_ビューを使用してXStreamを監視できます

    たとえば、クライアント・プロセスより多くの権限が取得プロセスに必要な状況で、信頼されないユーザー・モデルを使用することがあります。この場合はクライアント・プロセスに、必要な権限のみを持つ別のユーザーを割り当てることができます。

    政府機関および営利団体においては、データとアプリケーションを保護してアクセスを制御する、様々なソフトウェアおよびハードウェア・セキュリティ・アーキテクチャが実装されています。業界固有のサービス・レベル契約(SLA)、監査、セキュリティ法規制への遵守義務により、職務および職責の分離が求められ、データへのアクセスの制御が必要な場合もあります。これらのタイプのセキュリティ基準および制限は、リソースを保護するために別々のユーザーおよび権限を指定することができる、信頼されないユーザー・モデルに適しています。

1.6 XStreamに関するタスクおよびツール

XStreamを使用して一般的なタスクを実行し、一連のツールを使用してこれらのタスクを完了します。

1.6.1 XStreamのタスク

XStreamを使用して一般的なタスクを完了します。

XStreamの一般的なタスクは次のとおりです。

  • XStreamの構成

    XStreamの構成には、XStreamのためのOracle Databaseの準備、XStreamによって使用されるOracle Databaseコンポーネントの作成およびOracle Databaseと通信する1つ以上のクライアント・アプリケーションの作成があります。

    関連項目:

    このタスクの詳細は、XStream Outの構成およびXStream Inの構成を参照してください

  • XStreamの管理

    XStreamの管理には、XStreamによって使用されるOracle Databaseコンポーネントの管理があります。また、これらのコンポーネントで使用されるルールおよびルール・セットの管理も含まれます。さらに、クライアント・アプリケーションへの変更が必要になる場合もあります。

    関連項目:

    このタスクの詳細は、XStream Outの管理およびXStream Inの管理を参照してください

  • XStreamの監視

    XStreamの監視には、XStreamに関連するOracle Enterprise Manager Cloud Controlの各ページの表示およびXStreamに関連するデータ・ディクショナリ・ビューの問合せが含まれます。

    関連項目:

    このタスクの詳細は、Oracle Enterprise Manager Cloud Controlのオンライン・ヘルプ、XStream Outの監視およびXStream Inの監視を参照

1.6.2 XStreamのツール

一連のツールを使用してXStreamでのタスクを完了します。

次のツールを使用してXStreamのタスクを完了できます。