Oracle® Application Server CDC Adapters for SQL Serverユーザーズ・ガイド 11g リリース1(11.1.1) B61404-02 |
|
前 |
次 |
チェンジ・データ・キャプチャ(CDC)は、エンタープライズ・データソースに加えられた変更内容を取得し、Oracle Fusion Middlewareなどの統合ミドルウェアに送信して処理することによって、リアルタイムに近い効率的な統合を可能にする統合テクノロジです。
Oracle CDC Adapter for SQL Serverには、SQL Server 2000および2005用のこれらの機能が備えられており、SQL Serverトランザクション・ログ(TLOG)を活用した非侵入型でのチェンジ・キャプチャが実行されます。CDCアダプタは、Oracle SOA Suite(BPEL、ESB)およびOracle Data Integrator(ODI)で使用できます。
この章では、OracleAS CDC Adapter for SQL Serverの機能とアーキテクチャの概要について説明します。ここの内容は、次のとおりです。
OracleAS CDC Adapter for SQL Serverでは、SQL Server 2000および2005の表に加えられた変更内容(挿入操作、更新操作、削除操作など)が取得されて配信されます。CDCアダプタを使用すると、SQL Serverデータを使用する効率的なデータ統合ソリューションの構築、システムを同期化することによるデータの整合性の保証、データ・ウェアハウスおよび運用データ・ストアのリアルタイムに近い更新、ビジネス・アクティビティのイベント・ドリブンの監視や処理が可能になります。
OracleAS CDC Adapter for SQL Serverには、次の機能があります。
非侵入型のチェンジ・キャプチャ: OracleAS CDC Adapter for SQL Serverは、ログ・ベースのCDCテクノロジです。変更の特定にはSQL Serverトランザクション・ログ(TLOG)が使用され、トリガーまたは表がデータベースに追加されません。
CDCエージェントは、ログ・ストリームをポーリングして、変更内容にアクセスします。エージェントによるポーリングは、ストリーム位置(またはエージェント・コンテキスト)と呼ばれる特定のポイントから開始されます。最後に読み取られた位置がストリーム位置として保存されます。次回、情報を取得するためにエージェントによってログ・ストリームがポーリングされるときは、保存されたストリーム位置から開始されます。
リアルタイムのデータ・キャプチャ: OracleAS CDC Adapter for SQL Serverでは、待機時間をゼロにする必要があり、最新のデータを必要とするアプリケーション用に、リアルタイムに近いチェンジ・データ・キャプチャが行われます。スケジュールされたCDCソリューションとは異なり、リアルタイムに近いデータ・キャプチャによって、変更イベントを変更後数秒でコンシューマが利用できることが保証されます。非アクティブ期間後に数秒たつと変更内容が利用可能になるため、リアルタイムに近いデータ・キャプチャという表現を使用しています。
変更内容の保存: Oracle CDC Adapter for SQL Serverには、取得された変更内容がアクセスおよび処理しやすい形式で保存されるステージング領域が用意されています。ステージング領域によって、変更内容が処理されるまではそれらが永続的に保存されることが保証されます。また、ステージング領域には、古い変更レコードをクリーンアップする機能が備わっています。
変更内容のアクセスおよび配信: Oracle CDC Adapter for SQL ServerにはJCAリソース・アダプタが含まれています。このアダプタは、BPELおよびESBでインバウンド・エンドポイントとして構成でき、XML形式で変更内容を配信します。
フィルタリング: OracleAS CDC Adapter for SQL Serverでは、操作のタイプ(INSERT、UPDATE、DELETE)、列選択、特定の列値に基づいて、取得されたデータをフィルタリングできます。
信頼性のある配信とリカバリ: Oracle CDC Adapter for SQL Serverでは、変更内容は信頼性のある永続記憶域に保存され、正常に移動および処理された変更ストリーム内の場所を示すストリーム位置という概念が使用されます。ストリーム位置を保存することによって、CDCアダプタは常に停止位置から障害後の再開、リカバリ、変更内容の移動と配信を行うことができます。
使いやすさ: OracleAS CDC Adapter for SQL Serverには、Oracle Studioを使用して直観的に理解できる簡単な方法でCDCソリューションを構成することができます。
OracleAS CDC Adapter for SQL Serverを使用すると、ETL(抽出、変換、ロード)処理がより効率的になります。また、従来必要であったETLのための停止時間が不要になるため、ソース・データベース・システムの操作を中断することが少なくなります。
OracleAS CDC Adapter for SQL Server CDCエージェントは、通常のSQL Serverトランザクション・ログ(TLOG)およびTLOG Minerを使用して必要なデータを抽出し、BPEL/ESBによる使用のためのステージング領域に配置します。次のダイアグラムに、このプロセスを示します。
エージェントは、「OracleAS Adapter for SQL Server CDCエージェントのアーキテクチャ」で説明されているOracleASアダプタのアーキテクチャ全体の一部です。ダイアグラムに示すコンポーネントの説明は、次のとおりです。
SQL Server: Microsoft SQL Serverは、リカバリ目的で、サーバーのアクティビティを記録するトランザクション・ログを作成します。レプリケーションを使用している場合、ログに、OracleのCDCエージェントが使用するフォーマットで情報が保持されます。
TLOGのアクティブなセクションには、現在アクティブなトランザクションに加えられた変更が含まれます。
再利用可能なセクションまたは非アクティブなセクションには、MS SQL Serverによる追加処理を必要としない、古いトランザクションの情報が含まれます。この領域は再利用可能です。データはバックアップ可能であり、バックアップしない場合は、領域を増やすためにMS SQL Serverによってログが切り捨てられることがあります。TLOGが切り捨てられると、データの一部が削除され、CDCエージェントではそのデータを使用できなくなります。MS SQL ServerのOracle CDCソリューションは、データ損失の可能性を回避できるように設計されています。
TLOG Miner(LGR): このコンポーネントは、スタンドアロンのMicrosoft Windowsサービスとしてインストールされます。これは、TLOGファイルを読み取り、変更データを抽出またはマイニングし、一時記憶域に格納します。これは2つの部分に分かれています。
TLOG Detainer: Microsoft SQL Serverの管理ポリシーによって、ログ・ファイルは必要に応じて定期的に再編成されます。このとき、そのデータがアクティブでなくなっている場合は、ログ・ファイルが切り捨てられます。切り捨てられたデータはシステムから消去され、使用できなくなります。トランザクション・ログを不定期に切り捨てると、LGRにとってデータ損失が生じることがあります。TLOG Detainerを使用すると、TLOG Minerが読み取るまではTLOGファイルが切り捨てられないようになります。
切捨ては、TLOGの非アクティブなセクションでのみ行われます。保留トランザクションは、読取り対象の記録済レコードの後ろに配置されます。これにより、TLOGのアクティブな部分に対する制限が作成されて、レコードが読み取られるまで切り捨てられないようになります。
TLOG Parser: TLOG情報を解析し、一時記憶域に書き込みます。
一時記憶域: 指定された作業ディレクトリに配置されるバイナリ・ファイルのセットで、LGRでは、TLOGからマイニングするデータを一時記憶域に格納します。ログ・レコードは、LGRクリーンアップ・ポリシーおよび構成時に指定した最大サイズの制限に基づいて、一時記憶域に保持されます。
OracleAS CDC Adapter for SQL Server CDCエージェントでは、一時記憶域から変更を読み取って解析し、コミットされたトランザクションの順序に並べ替え、BPELおよびESBが使用できるステージング領域に配置します。
詳細は、「OracleAS CDC Adapter for SQL Serverでのチェンジ・データ・キャプチャの設定」を参照してください。
SQL Server CDCエージェント: 「OracleAS Adapter for SQL Server CDCエージェントのアーキテクチャ」の一部です。
BPEL/ESB: 「OracleAS Adapter for SQL Server CDCエージェントのアーキテクチャ」の一部です。
ステージング領域: 「OracleAS Adapter for SQL Server CDCエージェントのアーキテクチャ」の一部です。
次の図に、OracleAS CDC Adapter for SQL Serverを使用したチェンジ・データ・キャプチャに使用されるシステム・コンポーネントを示します。
OracleAS CDC Adapter for SQL Serverのコンポーネント・アーキテクチャには、次のコンポーネントが含まれます。
データベース・プラットフォーム: データベース・プラットフォームは、取得するデータを含むデータソースです。
データベース・ログ: データベース・ログは、生の変更データを含むログ・ストリームです。
Oracle Connect: Oracle Connectはバックエンド・システム上で実行され、Oracle Application Server上で実行される特別なJ2CAアダプタを通して処理を行います。
CDCエージェント: これはOracleAS CDC Adapter for SQL Serverのコンポーネントであり、バックエンド・データが存在するコンピュータ上のデーモン(リスナー・プロセス)の制御下で実行されます。キャプチャ・エージェントによって、変更ルーターからトランザクション・ログ内の変更イベントへのアクセスが可能になります。
エージェントは、取得する変更と同じコンピュータ上に配置されます。これによってジャーナル内の最後の読取り位置(ストリーム位置またはコンテキスト)が管理され、ジャーナルの次回ポーリング時にはこのポイントからポーリングが開始されます。コンテキストは、アダプタ定義が保存されているリポジトリに保存されます。アダプタ定義には、適切なジャーナルにアクセスするために使用される単一の主要な相互作用および変更を監視するための表のリストが含まれています。
BPELおよびESB: ESBまたはBPELで構成されたエンドポイントに変更レコードを送信するJCAプロバイダを通して変更イベントが利用される場所です。
JC2Aリソース・アダプタ: J2CA 1.5 SQL Serverアダプタの特別なバージョンであり、ステージング領域から変更レコードを読み取ることができます。変更イベントをステージング領域から取得し、XML変更文書として配信する、BPELおよびESBのインバウンド・エンドポイントを実装します。各エンドポイントでは、ソース・データベースにおける単一の取得対象の表に対する変更レコードが処理されます。
J2CAアダプタでは、複数の表の変更内容を並列して処理するために、ステージング領域への複数の接続が使用されます。
JDBCドライバ: SQLクエリーを使用した、ステージング領域内の変更へのアクセスを可能にします。
WebLogicおよびBPELコンポーネント: JC2Aアダプタからのメッセージをホストおよび取得するOracleASコンポーネントです。
ステージング領域: BPELまたはESBに送信される前に変更レコードが保存される、変更表のセットです。ステージング領域の古いレコードは、指定されたエージング・ポリシーに基づいて削除されます。
ステージング領域には、SQLアクセスのためのDISAMデータソース、およびXMLアクセスのためのデータベース・イベント・アダプタが含まれています。
詳細は、「ステージング領域」を参照してください。
ステージング領域には、次のコンポーネントが含まれています。
変更ルーター: これは、Oracleプラットフォーム上のデーモン(リスナー・プロセス)の制御下で実行されるOracleAS CDC Adapter for SQL Serverサービスです。変更ルーターでは、CDCエージェントから変更ストリームが読み取られ、それらがトランザクションおよびコミットの順序にソートされて、変更内容が様々な変更表に配信されます。
取得対象のデータベースに対して、同時に1つの変更ルーターのインスタンスのみがアクティブになります。また、変更ルーターでは、構成可能なエージング・ポリシーに従って、変更表から古い変更内容が削除されます。エージング・ポリシーのデフォルトは48時間です。つまり、ステージング領域に48時間を超えて存在するレコードは削除されます。
変更表: ステージング領域は、変更表で構成されています。各変更表には、ソース・データベース内の1つの取得対象の表に対する変更内容が含まれています。これらの各変更表では、トランザクションの順序で取得対象の各表の変更イベントが管理されています。トランザクション内では発生順に変更イベントが管理されます。変更表はDISAMファイルです。このファイルは変更データに迅速にアクセスできるように索引が作成されており、ストリーム位置を使用して直接アクセスできます。
変更アクセス・サービス: これは、BPELやESBとは異なるコンピュータまたは同じコンピュータ上にインストールされるOracle Connectのインスタンスであり、変更表へのアクセスを可能にします。このOracle Connectのインスタンスは、ステージング領域として構成されます。
Oracle Studio: 直観的に理解できるウィザードを使用して開発者または管理者がCDCエージェントおよびステージング領域を設定できる、グラフィカル・ユーザー・インタフェースを備えています。Oracle Studioは、Linux、UNIXまたはWindowsにインストールできます。
ステージング領域はOracle Connectによって使用され、ジャーナルから取得したデータが保存されます。ジャーナルは1回のみスキャンされ、そのスキャン中に読み取られたすべての対象表に対する変更内容がステージング領域に渡されて保存されます。つまり、ジャーナルは、ポーリングされるたびに1回のみスキャンされます。変更内容がステージング領域に書き込まれた後、これらの変更内容の処理は、ジャーナルとは独立して実行されます。
ステージング領域は、トランザクションを使用している場合に役立ちます。変更データは、トランザクションがコミットされるまでは変更キューに書き込まれません。したがって、トランザクションが失敗した場合でも、失敗したトランザクションの手順について行われた処理を取り消すオーバーヘッドは発生しません。
ステージング領域は、Oracle Application Serverが実行されている任意のコンピュータ(Windows、LinuxまたはUNIXオペレーティング・システム)に配置でき、SQL Server CDCアダプタと同じサーバー上で実行する必要はありません。ジャーナルから情報が抽出されて、ステージング領域に書き込まれた後、ステージング領域上でのみ変更内容の処理が行われます。したがって、ステージング領域は、ネットワーク構成およびコンシューマ・アプリケーションの実行場所を考慮して設定する必要があります。
ステージング領域では、コンシューマ・アプリケーションによって読み取られた最後の位置(ステージング領域コンテキスト)が管理されて、次にコンシューマ・アプリケーションからのリクエストを受信したときには、このポイントから読取りが開始されます。コンテキストは、ステージング領域が管理されているリポジトリに保存されます。
ステージング領域には索引が作成されているため、特定のストリームを目的としてステージング領域に迅速にアクセスできます。
ステージング領域は、デフォルトで48時間ごとに消去されます。ステージング領域に48時間を超えて存在するすべてのイベントは削除されます。