目次


カンタン!DB2テクテク第1歩 拡張機能編

DPropR-第一話

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: カンタン!DB2テクテク第1歩 拡張機能編

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:カンタン!DB2テクテク第1歩 拡張機能編

このシリーズの続きに乞うご期待。

はじめに

データの複製(以下レプリケーションと記述します)は増大していくデータ管理の局面で重要な役割を果たします。基幹データを各ローカルサイトにレプリケーションして利用することは次のようなメリットを生み出します。

  1. 各ローカルサイトでのデータ制御を実現し、データの参照・加工における基幹システムへの影響を抑えることができる
  2. 中央サイトの基幹データにアクセスが集中することによる、ネットワークや、CPU・メモリーなどのさまざまなリソースのボトルネックを回避することができる。
  3. エンドユーザー指向の柔軟なデータ加工が可能。

レプリケーションのためのIBM製品にはいくつかのものがありますが、ここでは、リレーショナルデータベース用のレプリケーション製品であるDB2 DataPropagatorとDataJoinerについてとりあげます。

DB2 DataPropagatorはリレーショナルデータベース群のデータのコピー(レプリケーション)を自動的に実行する製品あるいはUDBの機能群です。プラットフォームがOS/390の場合、IBM DB2 DataPropagator、OS/400の場合、DB2 DataPropagator for AS/400という、DB2とは別の製品としての提供になります。その他のプラットフォームではDB2本体に付属する機能として無償で提供されます。

DataJoinerは他社製のリレーショナルデータベースとのレプリケーションの際に必要な製品です。DataJoinerを通して、非DB2のデータをあたかもDB2のデータであるかのように照会・更新の処理をすることができます。DataJoinerには、DataPropagatorの機能が含まれています。

DataPropagator(以下DpropRと記述します)の特長は主に次のようなものです。

  1. プラットフォーム共通の一貫したアーキテクチャ・インターフェース。
  2. 既存の表に変更を加えずに変更分の自動的なレプリケーションが可能。
  3. レプリケーションは非同期に行われる。
  4. レプリケーションのタイミングは数分から1年間隔まで、またはイベント起動のレプリケーションも可能。
  5. ソース表全体のみでなく、特定の列や行をレプリケーションすることが可能。
  6. レプリケーションの際にデータを加工することができる。
  7. 変更の差分反映も全件更新も可能。

DpropRの構成要素 − Capture

DpropRが提供するデータのレプリケーションは次の3つのコンポーネントからなります。

  1. ソースデータベースの表やビューから変更のあったデータを取り込むCapture
  2. ソース表から取り込んだ変更データを同じまたは別のデータベースのターゲット表(1つでも複数でも可)にコピーするApply
  3. レプリケーション環境の仕様を作成・管理するツール

Captureのしくみはソース表がDB2か非DB2かによって異なります。ソース表がDB2の場合、変更情報の取り込みはCaptureプログラムがソース表のログファイルを読み込んで、ソース表に加えられた全ての変更を収集します。DB2はすべてのトランザクション処理をログファイルに記録しているので、Captureプログラムはソース表に直接アクセスしなくとも、DB2のログファイルを監視することにより、ソース表から変更レコードを検出することができるのです。収集された変更情報は一時的に変更データ表またはCD(Change Data)表とよばれる表に保管されます。さらに、Captureプログラムはコミット済み作業単位に関する情報を作業単位表またはUOW(Unit Of Work)表とよばれる表に保管します。これらの表は、レプリケーション対象のソースを定義する時に自動的に作成されます。

ソース表がOracle/MS SQL Serverなどの非DB2の場合は、Captureプログラムはソース表のログファイルを読むことができません。そこで変更情報の取り込みはCaptureトリガーが行います。非DB2のデータベースをソース表として定義する際に各ソース表に対して3つのトリガー、すなわち、DELETE/UPDATE/INSERTが作成されます。Captureトリガーは、定義されたソース表に対して削除・更新・挿入操作が行われた時に、コミットされた変更データを整合性変更データ表またはCCD(Consistent Change Data)表とよばれる表に書き込みます。

Captureプログラムはソース表の存在するサーバーで、1つのソースサーバーに対して1つ稼動させます。DB2/390あるいはDB2/400がソースサーバーになる場合、Captureはサブシステム単位で稼動します。Unix/Windows/Linux上のDB2では、データベース単位でCaptureプログラムを稼動させます。

図1はCaptureのしくみを模式的にあらわしたものです。

図1.Captureのしくみ
図1.Captureのしくみ
図1.Captureのしくみ

DpropRの構成要素 − Apply

ApplyはApplyプログラムによって実行されます。差分更新を反映する場合は、ApplyプログラムはCD表あるいはCCD表から更新情報を読み取り、ターゲット表に反映させます。CCD表にはすでにコミット済みのデータが格納されているので、Applyプログラムは未反映の変更データを抽出し、そのままターゲット表にコピーします。CD表にはソース表に加えられた変更すべてが書き込まれるので、Applyプログラムはコミットされた情報を、UOW表とのJOINによって抽出します。全件データのリフレッシュ時には、ソース表またはソース表に対して作成されたビューからデータを直接読み、データをターゲット表に書き込みます。ターゲット表は1つでも複数でも可能です。ビューを作成して、複数の表に対して変更を反映させることもできます。

CD表・CCD表はソース表と同一データベース内に作成されます。たとえば、Oracleの表をソース表とする場合、CCD表はOracleのデータベース内に作成されます。ApplyプログラムからCCD表へのアクセスはDataJoinerを経由して行われます。

Applyプログラムはターゲット表が存在するサーバーで実行させるのが一般的ですが、ソース表・CD/CCD表などレプリケーションに必要なシステム制御表・ターゲット表にアクセスできる、任意のサーバーで実行可能です。

DB2 Server VSEおよびVM版にはApply機能は提供されていません。ターゲットサーバーがVSEあるいはVMになる場合は、別途Applyプログラム用のサーバーをたてる必要があります。

図2はApplyプログラムによる差分データ反映のしくみを模式的にあらわしたものです。

図2.Applyのしくみ
図2.Applyのしくみ
図2.Applyのしくみ

DpropRの構成要素 − 管理ツール

レプリケーション環境の仕様を作成・管理するツールはDB2ファミリー間のレプリケーションの場合は、DB2 コントロール・センターを使用します。非DB2とのレプリケーションを行う場合は、DJRA(DataJoinerReplicationAdministration)というツールを使用します。これらのツールで次のようなことができます。

  1. 表あるいはビューをレプリケーション対象のソースとして定義する。
  2. レプリケーションソース定義を削除する。
  3. レプリケーションに必要な各種制御表を作成する。
  4. レプリケーションのタイミング・頻度・起動のためのイベントを定義する。
  5. レプリケーション前後で実行するSQLステートメントあるいはストアードプロシージャーを定義する。
  6. レプリケーション処理を活動化・非活動化する。

Control CenterはUnix/Linux/Windowsの各プラットフォームで稼動できます。DJRAはWindowsプラットフォームのみのサポートになります。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Information Management
ArticleID=320553
ArticleTitle=カンタン!DB2テクテク第1歩 拡張機能編: DPropR-第一話
publish-date=11302005