技術ブログ
目次
Oracle ACE Proの渡部です。 差分レプリケーションの分類について説明します。
ある企業/団体ではたいてい複数のシステムを使用しており、それぞれのシステムにはたいてい何らかのデータベースが存在します。このような状況でシステムを効率的に運用する、データを有効に活用するには、それぞれのシステムのデータベース同士のデータを連携/同期させる必要がでてきます。
大量データの連携/同期においては、データ全件をまるまる連携/同期するのではなく、変更されたデータのみを連携/同期できることが求められます。これを実現する1つの方法が、差分レプリケーションです。
差分レプリケーションは、変更されたデータを識別する方法に応じて分類できます。 ここでは以下の2つの差分レプリケーションについて説明します。
ここでは、Change Data Capture(CDC)を、「なんらかのDBMSの機構を用いて、データベースで実行された変更処理を得ること」と定義します。
OracleロジカルレプリケーションCDC実装方式の分類
にまとめたとおり、CDCの実装方式は様々ですが、DBMSで実行される全ての変更処理はトランザクションログ(Oracleの場合はREDOログ)に記録されますので、基本的な考え方としては「トランザクションログを読出し、解析して変更処理を得る」ということになります。
方式の特性から、以下の利点が得られます。
クエリベースの差分レプリケーションでは、クエリ(SELECT文)を実行することでデータベース内の変更されたデータを得ます。
逆に言うと、クエリベースの差分レプリケーションを使用するためには、SELECT文を実行することで変更されたデータが得られるように、テーブルを設計しておく必要があります。典型的には、対象テーブルに「更新日時」列や「バージョン番号」列を設けておき、
SELECT * FROM テーブル1 WHERE 更新日時 > '2023-09-07 00:00:00'
や、
SELECT * FROM テーブル1 WHERE バージョン番号 > 1234
などのSELECT文で、前回のレプリケーション以後で変更されたデータを得られるようにするなどです。
方式の特性から、以下の利点が得られます。
方式の特性から、以下の制限が課せられます。
上記のとおり、クエリベースの差分レプリケーションには、CDC非対応のデータベースで差分レプリケーションを実現できるという利点の反面、いくつかの制限が課せられます。
これを、「CDCベース差分レプリケーションの優位性」という観点でまとめると以下のように言い換えられます。
弊社取扱い製品では、以下のロジカルレプリケーション製品がCDCベース差分レプリケーションに対応しています。
弊社取扱い製品では、以下のロジカルレプリケーション製品がクエリベース差分レプリケーションに対応しています。
"CDC"という用語の意味は厳格に統一されていません。
この記事では、Change Data Capture(CDC)を「なんらかのDBMSの機構を用いて、データベースで実行された変更処理を得ること」と定義していますが、「クエリベースを含めた様々な方法で、データベースで実行された変更処理を得ること」と定義される場合もあります。
ロジカルレプリケーションは非常に複雑な技術です。お客様に最適なロジカルレプリケーション製品をご案内できるよう、コーソルでは複数のロジカルレプリケーション製品を取り扱っています。
これらすべての製品について、製品を熟知したエンジニアが設計・導入作業を担います。 Oracleのロジカルレプリケーションをご検討の際はぜひコーソルにお声がけください。
ロジカルレプリケーションの動作の仕組みから見るOracleレプリケーション3製品のイチオシポイント
Oracle GoldenGateのライセンス費用試算とSE2環境におけるコスト削減策
Oracle 19cへの移行/アップグレードにSharePlexをお勧めする理由
Oracle Databaseレプリケーションとサポート状況/対応製品
ロジカルレプリケーションを用いてDB移行に伴うダウンタイムを最小化する