レプリケーション機能の利用シーン
レプリケーションとは、あるデータベース・サーバのデータと同じ内容の複製(レプリカ)を異なるデータベース・サーバに作成し、つねに内容を同期させる機能を指します。主に負荷分散や耐障害性の向上などを目的に利用します。
PPEEに実装されるxDB Replication Serverはテーブル単位でデータを複製する機能で、1つのマスタサーバと1つ以上のスレーブサーバで構成するシングルマスタレプリケーションと、複数のマスタサーバで構成するマルチマスタレプリケーションをサポートしています。シングルマスタレプリケーションは商用RDBMSとの連携もサポートしており、様々な用途で利用することができます。今回は、シングルマスタレプリケーションの利用シーンをいくつかご紹介します。
1)Web系サービス
インターネット系サービスのバックグラウンドは、図1のように3階層で処理を分散しながら、各階層が横にも展開できる構成になっているのが一般的です。WebサーバやAPサーバはデータを持たないため、ビジネスの成長に合わせてサーバを追加しシステム全体の処理能力を強化することが比較的簡単ですが、データベースはデータを保持するためサーバの追加は容易ではありません。Oracle Real Application Clusters(以下、RAC)のようなアクティブ‐アクティブ構成を採用できればデータベースは1つのままでデータを処理するサーバを追加可能ですが、システム規模などによっては採用が厳しい実情があります。
このような場合にAPサーバからの処理を一時的に引き受けるフロントデータベースを複数のPPEEで構築し、そのバックエンドにOracle Databaseを配置します。例えば、ショッピング系サイトで処理全体の約9割を占めるといわれる「商品検索」の参照系処理を顧客IDをキーにしてPPEEへ振り分けることで負荷分散し、「商品購入」の更新系処理はOracle Databaseで行います。Oracle Databaseで管理されている商品情報等をxDB Replication Serverを介してPPEEへリアルタイムに連携することで参照負荷を分散させた構成を実現します。
2)基幹システムからサブシステムへのデータ連携
マスタデータを管理する基幹システムと周辺システムとの間でデータを受け渡すといった複数システム間のデータ連携は多くのシステムで必要不可欠になっています。これまでは、基幹システムから周辺システムへのデータ取り込みは主に夜間バッチが中心だったため、担当者が最新データを確認できるのは最短で翌朝という状態でした。このタイムラグを抑えるために担当者が基幹システムに直接アクセスしてしまうと、基幹システムへの負荷の集中が課題になります。
図2のようにxDB Replication Serverを利用することで各支店などのサブシステムに必要なデータのみをリアルタイムに連携できるため、各システムで常に最新データの参照を可能にし、マスタデータへのアクセスも防止します。
3)DWH処理をオフロード
急激なデータ量増加とタイムリーで正確な情報分析への要求も増大し続ける中、これまで日単位から週単位で設定されていたデータウェアハウスへのデータロードのバッチ処理に可能な限り最新データが求められるようになり、オンライン処理と同一のサーバでデータウェアハウス処理が行われているケースも少なくありません。その場合、処理によってサーバ負荷が高くなるという課題があります。
図3のようにデータウェアハウス処理に必要なデータのみを切り出して参照用データベースへ配置し、xDB Replication Serverを介してデータ連携を行うことで、オンライン処理への影響を最小限に抑えながら最新データによる情報分析を可能にします。また、参照用データベースのテーブルデータはパーティション機能で複数の子テーブルへ分割配置することで、パーティション・プルニングによってアクセス対象のデータが絞り込まれディスクI/Oを抑制できます。さらに各子テーブルをそれぞれ異なるディスクへ配置することで検索性能の更なる向上を図ります。
4)災害対策
ITと事業そのものが切り離せない関係となっている現在、システムの継続性はそのまま事業の継続性に直結します。そのため事業やシステム規模に関わらず、多くの企業で災害対策が検討されています。
xDB Replication Serverではテーブル単位(またはフィルタリングした特定の行データ)で連携できるため、遠隔地のバックアップ・データベースに重要なデータを配置しxDB Replication Serverを介して差分データのみを適宜連携します。大掛かりな災害対策がすぐに実施できない企業ではデータ保全の有効策と言えます。
5)データベース移行
システムの中核であるデータベースを移行する場合、どのような方法で移行するか、システム停止時間を最小化するにはどうすればよいかなど多くの課題があります。
Oracle DatabaseからPPEEへ切り替える場合、PPEEで提供されているMigration Toolkit(以下、MTK)を利用します。MTKではストアドプログラムを含むOracle Databaseの主要オブジェクトが移行対象となっており、オブジェクト定義(DDL)とデータの一括移行に加え、定義またはデータのみの移行やスキーマ単位の移行など範囲を限定した移行も可能です。また、図5のように更新が行われないテーブルはMTKを利用して事前に移行しておき、切り替え直前まで更新処理が発生するテーブルはxDB Replication Serverで移行先へリアルタイムにデータを反映させることで、データ移行時のシステム停止時間を最小に抑えることができます。
次項では、データベース間でデータを連携できるxDB Replication Serverの仕組みをご紹介します。