レプリケーション

ミッションクリティカルな分野のデータベースサービスは、どのような場合でもサービスが中断されてはいけません。データベースシステムの故障や、データベースメディア(ディスク)の破損により、サービスが中断された場合、提供できなかったサービスに対する経済的な損失を被るだけではなく、会社の信頼度も低下してしまいます。
このような問題を解決するための対策案が、データベースの二重化機能(レプリケーション)です。
![]()
レプリケーションとは、物理的に離れている複数のデータベースに対し、ローカルデータベースの変更された内容をリモートデータベースにコピーして管理することを言います。
ユーザは、一つのデータベースについてのみ作業を行ってもデータベースの二重化システムにつながっている他のデータベースにも作業内容が同様に適用され、複数のデータベースを同時に管理することができます。このようなデータベースの二重化は、データベースの無停止サービスを可能にします。
![]()
Altibaseは、データベースの変更ログを使用したPoint-to-Pointの二重化技法を使います。ローカルサーバーがデータベースの変更ログをXLOGという実行計画に置換えてリモートサーバーに転送し、リモートサーバーは、このXLOGをトランザクションを回復するのと同様な方法で反映します。
Altibaseは二重化したサーバーの独立性を保障するため、二重化トランザクションがローカルトランザクションに与える影響を最小化します。二重化はActive-Active、Active-Standbyのモードを提供しており、Altibase内部でReplication Manager、Replication Sender、Replication Receiverという二重化処理を実行する専用スレッドで処理を実行します。
![]()
- テーブル単位の二重化
- SQLと同様なユーザインターフェース
- 二重化オブジェクトを導入し、二重化の情報をデータベースに保存して運用
- サーバーの故障またはネットワーク切断の自動感知、及び対応
- サーバーの故障の際、二重化されたサーバーへの即時アクセスによる高い可用性の提供
- 二重化データの衝突に対する自動解決
- 二重化中も独立したシステムの性能の90%以上を維持
- データをコピーしても、AltibaseサーバーやDBに対する安定性を保障
- リモートサーバーの性能がローカルサーバーの性能に影響を与えないため、サーバー間の独立性を保障
- Active-Activeの運用形態による負荷分散を提供
- 相手サーバーのシャットダウン中に発生したDBの変更も復旧後、二重化を保障
![]()
Altibaseの二重化インターフェースは、SQLに同様な構文で提供されるため、対話型SQLツールまたはアプリケーションプログラムから、簡単に利用することができます。二重化のインターフェースは、次の通りです。
create replication rep1
with remotehost、portno
from localtableA to remotetableA、
from localtableB to remotetableB、…;
drop replication rep1;
alter replication rep1 start;
alter replication rep1 stop;
alter replication rep1 sync;
alter replication rep1 quickstart;
![]()
Altibaseは、N-WAy二重化を提供することにより、Networkの構造の二重化位相を提供します。
![]()
Altibaseの二重化は次のようなミッションを基に開発されています。
- High Availability
サービス中のシステムまたはS/Wが故障した場合、使用可能なシステムへ即時アクセスができるようにデータ二重化を提供します。また、複数のシステムにデータを二重化できるように水平的な拡張性をサポートします。
- Database Consistency
Active-Activeの環境でデータベースの二重化を行うと、一つのデータベースサーバー内で二重化トランザクションとローカルトランザクションが同時に同じデータにアクセスする場合があります。そのような場合、データの衝突が発生しますが、Altibaseはロールべースでデータの衝突を自動解決します。衝突した内容を特定のログファイルに記録しておくことにより、管理者がその内容を閲覧し、適切に対応することができます。
- High Performance
データベースを二重化することに伴うオーバーヘッドを最小化し、単独のシステムでトランザクションを処理する時の性能をほぼそのまま維持できるようにしています。ローカル サーバーのデータへのアクセスや二重化のための作業を最適化することにより、Altibaseのトランザクション処理にかかる負担を最小化します。具体的には、データベースの変更ログを二重化ログのXLOG構造に変換してリモートサーバーに転送し、このXLOGを利用してトラザクションを復旧するような方法で二重化を行います。この方法は少し複雑になりますが、ローカルサーバーの性能低下を最小化するだけでなく、二重化そのものの性能も最大化します。
- Load Balancing & Scalability
Altibaseのマルチサーバー運用環境でサービスするトランザクションを二つ以上のグループに分け、それぞれのトランザクションが該当サーバーで行われるようにし、各サーバーで変更されるデータベースの内容を他のサーバーに反映させることにより、サーバーにかかる負荷を分散させることができます。