1 XStreamの概要
XStreamは、卓越したパフォーマンスおよびユーザビリティで情報共有を可能にします。
- XStreamについて
XStreamは、クライアント・アプリケーションがOracleデータベースからのデータ変更を受信しOracleデータベースにデータ変更を送信できるようにするOracle Databaseコンポーネントおよびアプリケーション・プログラミング・インタフェース(API)で構成されています。 - XStreamの目的
一部の顧客(特に独立系ソフトウェア・ベンダー(ISV)やパートナなど)は、ファイルレベルのレプリケーションや中間層のキャッシュ、あるいはOracleとOracle以外のデータ・ストア間のレプリケーションをサポートするために、独自の情報共有製品のプラットフォームとしてOracleデータベースにアクセスできる必要があります。XStreamは、Oracleデータベース内で行われた変更に対する高速かつリアルタイムなアクセスをお客様に提供します。 - XStreamの使用例
XStreamには、一般的ないくつかの使用例があります。 - XStreamの前提条件
XStreamを使用する前に満たす必要がある前提条件があります。 - XStreamセキュリティ・モデル
XStream APIを使用し、XStream構成を管理するには、XSTREAM_CAPTURE
またはXSTREAM_APPLY
ロールが付与されている必要があります。 - XStreamのタスクとツール
XStreamを使用して一般的なタスクを実行し、一連のツールを使用してこれらのタスクを完了します。
親トピック: XStreamの一般的な概要およびユースケース
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、
LONG
、LONG
RAW
、JSON
、BOOLEAN
、XMLType
などのデータベース内のほとんどのデータ型をサポート -
1つのデータベース・インスタンスへの複数のインバウンド・ストリーム、1つのデータベース・インスタンスから複数のアウトバウンド・ストリーム、1つの取得プロセスから複数のアウトバウンド・ストリームなどのカスタマイズされた構成
-
最適なパフォーマンスのための並列性の適用、SQL生成、競合の検出と解消、エラー処理、適用ハンドラの使用によるカスタマイズされた適用などのXStream Inに対するあらゆる機能の適用
ノート:
XStream OutおよびXStream Inのいずれの構成においても、クライアント・アプリケーションは専用サーバー接続を使用する必要があります。
XStreamの目的
一部のお客様(特に独立系ソフトウェア・ベンダー(ISV)やパートナなど)は、ファイルレベルのレプリケーションや中間層のキャッシュ、あるいはOracleとOracle以外のデータ・ストア間のレプリケーションをサポートするために、独自の情報共有製品のプラットフォームとしてOracleデータベースにアクセスできる必要があります。XStreamは、Oracleデータベース内で行われた変更に対する高速かつリアルタイムなアクセスをお客様に提供します。
XStreamは、クライアント・アプリケーションがOracleデータベースに接続してデータベースの取得または適用プロセスに直接連結することを可能にするプログラム・インタフェースです。クライアント・アプリケーションは、Oracleデータベースからの変更のストリームに直接アクセスするXStreamアウトバウンド・サーバーに連結することで、高パフォーマンスの取得メカニズムを利用できます。XStream Outはコミットされたトランザクション順に論理変更レコード(LCR)をクライアント・アプリケーションにストリームします。
Oracleデータベースに変更を適用するために、クライアント・アプリケーションはXStreamインバウンド・サーバーに直接連結できます。このアプリケーションはトランザクション順でインバウンド・サーバーにLCRを提供するため、Oracleデータベースに変更を適用する高パフォーマンスのデータベース適用エンジンを利用できます。
親トピック: XStreamの概要
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を処理することもできます。
クライアント・アプリケーションがデータ変更を収集する方法はユースケースによって異なります。
- Oracle以外のデータベースによるデータ変更のレプリケーション
レプリケーションは通常、ネットワーク負荷を複数の領域とサーバーに分散させることによって、可用性を高めてパフォーマンスを向上させるために使用されます。 - ファイルを使用したデータ変更の保存
環境によってはファイルを使用してデータ変更を保存します。 - クライアント側のメモリー・キャッシュとのデータ変更の共有
環境によってはパフォーマンスを向上させるためにメモリー内にデータをキャッシュします。
関連項目:
親トピック: XStreamの概要
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のドキュメントを参照してください。
親トピック: XStreamのユースケース
ファイルを使用したデータ変更の保存
環境によってはファイルを使用してデータ変更を保存します。
通常、ファイルは次の理由によりデータ変更を保存します。
-
物理ネットワークが存在しない、または物理ネットワークが制限されている環境でデータ変更を処理する場合。たとえば、セキュリティ上の理由で物理ネットワークを持たないロケーションもあります。
-
切り離されたコンピューティングを使用する環境でデータ変更を処理する場合。たとえば営業担当員は、ネットワーク接続がない様々な場所でラップトップから注文を入力し、ネットワーク経由で1日1回プライマリ・データベースを更新します。
-
衛星通信を使用する環境でデータ変更を処理する場合。この場合、ファイルの一括転送の方がネットワークを介した増分変更よりも効率的です。
XStream Outはファイル・システム内のファイルにOracle Databaseの変更を送信できます。具体的には、クライアント・アプリケーションがLCR内のデータ変更をファイルに書き込みます。クライアント・アプリケーションはLCRをファイルに書き込む前に、カスタマイズされた方法でLCRを処理でき、ファイルはクライアント・アプリケーションを実行するコンピュータ・システム上または異なるコンピュータ・システム上に配置できます。SQL生成を使用することによって、クライアント・アプリケーションは行LCRにカプセル化された変更を実行するために必要なSQL文をファイルに記述することもできます。
XStream Inは、ファイルからOracleデータベースにデータ変更を送信できます。具体的には、クライアント・アプリケーションはファイルからデータ変更を読み取り、変更をLCR形式でインバウンド・サーバーに送信します。
関連項目:
- ファイルを使用してデータベース変更をレプリケートするXStreamのデモ
XStream APIを使用してファイルベースのレプリケーションを実行するサンプル・クライアント・アプリケーションを作成するデモを利用できます。
親トピック: XStreamのユースケース
ファイルを使用してデータベース変更をレプリケートするXStreamのデモ
XStream APIを使用してファイルベースのレプリケーションを実行するサンプル・クライアント・アプリケーションを作成するデモを利用できます。
具体的には、デモによって1つのデータベース上で、データベース変更を取得してLCRをアウトバウンド・サーバーに送信するXStream Out構成が作成されます。クライアント・アプリケーションがアウトバウンド・サーバーに連結し、データベース変更をファイルに書き込みます。
別のデータベースでは、デモによって、インバウンド・サーバーに連結するXStream Inクライアント・アプリケーションが作成され、ファイル内の変更が読み取られ、変更内容がLCR形式でインバウンド・サーバーに送信されます。インバウンド・サーバーは、宛先データベース上のデータベース・オブジェクトに変更を適用します。
このデモは、次の場所にあります。
$ORACLE_HOME/rdbms/demo/xstream/fbr
親トピック: ファイルを使用したデータ変更の保存
クライアント側のメモリー・キャッシュを使用したデータ変更の共有
環境によってはパフォーマンスを向上させるためにメモリー内にデータをキャッシュします。
キャッシュされたデータは、実現可能な最高のパフォーマンスを必要とするシステムで、短いレスポンス時間と高いスループットを実現できます。XStreamは、クライアント側のメモリー・キャッシュを使用して、データ変更を増分的に共有できます。
XStream Outはメモリー・キャッシュにOracleデータベースの変更を送信することによって、クライアント側のメモリー・キャッシュを増分的にリフレッシュできます。具体的には、クライアント・アプリケーションはLCR内のデータ変更をメモリー・キャッシュに適用します。クライアント・アプリケーションはそれらを適用する前に、カスタマイズされた方法でLCRを処理でき、メモリー・キャッシュはクライアント・アプリケーションを実行するコンピュータ・システム上または異なるコンピュータ・システム上に配置できます。
XStream Inではメモリー・キャッシュからデータ変更を増分的に取り出すことができます。具体的には、クライアント・アプリケーションはデータ変更を取得し、変更をLCR形式でインバウンド・サーバーに送信します。メモリー・キャッシュはクライアント・アプリケーションを実行するコンピュータ・システム上または異なるコンピュータ・システム上に配置できます。
親トピック: XStreamのユースケース
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と通信するクライアント・アプリケーションを作成します。
関連項目:
-
OCI APIの詳細は、『Oracle Call Interface開発者ガイド』を参照
-
Java APIの詳細は、『Oracle Database Java開発スタート・ガイド』および『Oracle Database Java開発者ガイド』を参照
-
ノート:
XStream APIを使用するには、Oracle GoldenGate製品のライセンスを購入する必要があります。詳細は、Oracle GoldenGateのドキュメントを参照してください。
親トピック: XStreamの概要
XStreamのセキュリティ・モデル
XStream APIを使用し、XStream構成を管理するには、XSTREAM_CAPTURE
またはXSTREAM_APPLY
ロールが付与されている必要があります。
ユーザーに必要なロールは、その管理対象の構成のタイプ(XStream OutまたはXStream In)によって異なります。各ユーザーは、所有するXStreamコンポーネントのみを管理できます。
親トピック: XStreamの概要
XStreamに関するタスクおよびツール
XStreamを使用して一般的なタスクを実行し、一連のツールを使用してこれらのタスクを完了します。
- XStreamのタスク
XStreamを使用して一般的なタスクを完了します。 - XStreamのツール
一連のツールを使用してXStreamでのタスクを完了します。
親トピック: XStreamの概要
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の監視を参照
親トピック: XStreamのタスクとツール
XStreamのツール
一連のツールを使用してXStreamでのタスクを完了します。
次のツールを使用してXStreamのタスクを完了できます。
-
SQLおよびPL/SQL
SQLおよびPL/SQLを使用して、XStreamを構成、管理および監視できます。SQLによって、XStream管理者を作成し、データ・ディクショナリ・ビューを使用してXStreamを監視できます。オラクル社が提供するいくつかのPL/SQLパッケージによって、XStreamを構成および管理できます。
-
Oracle Enterprise Manager Cloud Control
Oracle Enterprise Manager Cloud Controlを使用してXStreamコンポーネントを管理および監視できます。また、Oracle Enterprise Manager Cloud Controlを使用して、XStream構成でストリーミングされるLCRに関する情報を表示できます。
このトピックの詳細は、Oracle Enterprise Manager Cloud Controlのオンライン・ヘルプを参照してください。
-
OCI APIおよびJava API
XStream OCI APIおよびXStream Java APIを使用して、XStreamと通信するクライアント・アプリケーションを作成できます。これらのアプリケーションはXStream Outと連携して、Oracle DatabaseからLCRをストリームすることができます。また、これらのアプリケーションはLXStream Inと連携して、LCRをOracle Databaseにストリームすることができます。
関連項目:
-
OCI APIの詳細は、『Oracle Call Interface開発者ガイド』を参照
-
XStream Java APIについては、Oracle Database XStream Java APIリファレンスを参照してください
-
Java APIの詳細は、『Oracle Database Java開発スタート・ガイド』および『Oracle Database Java開発者ガイド』を参照
-
親トピック: XStreamのタスクとツール